Atitit. atiOrder   Order 订单管理框架的设计

1. Order 订单处理流程1

2. code2

3. Ref7

1. Order 订单处理流程

if(userSvr.isNotLogin())

{

throw new RuntimeException(" not login 没登录,请先登录..#not_login");

}

User u=userSvr.getLoginUser();

Acc a=accSvr.getAcc(u.id);

BigDecimal needMoney=amoutCalcSvr.calc(order);

if(new ADecimal(needMoney ).biggerEqualThan(a.amount))

throw new RuntimeException("  amount not enough 金额不足够 ..#amount_not_enough ");

///...insert

storeSvr.insert(order);

orderlogSvr.log(order);

return accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2. code

package com.attilax.order;

import java.math.BigDecimal;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import aaaCfg.IocX4casher;

import com.attilax.acc.Acc;

import com.attilax.acc.AccService;

import com.attilax.bet.AmountCalcService;

import com.attilax.db.DBX;

import com.attilax.io.filex;

import com.attilax.json.AtiJson;

import com.attilax.math.ADecimal;

import com.attilax.orm.AOrm;

import com.attilax.store.StoreService;

import com.attilax.user.User;

import com.attilax.user.UserService;

import com.google.inject.Inject;

public class OrderServiceV2 extends absService {

public static void main(String[] args) {

//final long time_intFmt = new Date().getTime() / 1000;

//System.out.println(time_intFmt);

//OrderServiceV2 os = IocX4casher.getBean(OrderServiceV2.class);

//os.insert(new HashMap() {

//{

//this.put("good_amount", 12.50);

//this.put("add_time", time_intFmt);

//this.put("confirm_time", time_intFmt);

//this.put("order_sn",filex.getUUidName());

//}

//});

//System.out.println("--f");

}

@Inject

StoreService storeSvr;

@Inject

UserService userSvr;

@Inject

AccService accSvr;

@Inject

AmountCalcService amoutCalcSvr;

@Inject

OrderLogService orderlogSvr;

public int insert(Map order) {

if(userSvr.isNotLogin())

{

throw new RuntimeException(" not login 没登录,请先登录..#not_login");

}

User u=userSvr.getLoginUser();

Acc a=accSvr.getAcc(u.id);

BigDecimal needMoney=amoutCalcSvr.calc(order);

if(new ADecimal(needMoney ).biggerEqualThan(a.amount))

throw new RuntimeException("  amount not enough 金额不足够 ..#amount_not_enough ");

///...insert

storeSvr.insert(order);

orderlogSvr.log(order);

return accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

}

public List<Map> query(Map order) {

if(userSvr.isNotLogin())

{

throw new RuntimeException(" not login 没登录,请先登录..#not_login");

}

User u=userSvr.getLoginUser();

return null;

///...insert

//return accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

}

public String query2json(Map order) {

return AtiJson.toJson(query(order));

///...insert

//return accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

}

}

3. Ref

Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构

Atitit. atiOrder   Order 订单管理框架的设计的更多相关文章

  1. SAP CRM系统订单模型的设计与实现

    SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对S ...

  2. Atitit.cateService分类管理新特性与设计文档说明v1

    Atitit.cateService分类管理新特性与设计文档说明v1 1. V2 新特性规划1 2. 分类管理1 3. 分类增加与修改维护2 4. Js控件分类数据绑定2 1. V2 新特性规划 增加 ...

  3. atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性

    atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性 1. 新特性如下 支持生成sql在无数据库连接的情况下 2. Orm设计 主要的俩个以来service ...

  4. Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net

    Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net 1. -catalog与schema的设计区别1 ...

  5. Atitit.加密算法ati Aes的框架设计

    Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...

  6. Atitit.加密算法ati Aes的框架设计v2.2

    Atitit.加密算法ati Aes的框架设计v2.2 版本进化1 V2.2   add def decode key api1 v1版本1 Aes的历史2 Atitit.加密算法 des  aes  ...

  7. Atitit 修改密码的功能流程设计 attilax总结

    Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...

  8. atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.

    atitit. 日志系统的原则and设计and最佳实践总结. 1. 日志系统是一种不可或缺的单元测试,跟踪调试工具 1 2. 日志系统框架通常应当包括如下基本特性 1 1. 所输出的日志拥有自己的分类 ...

  9. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

随机推荐

  1. POJ1861 Network(Kruskal)(并查集)

    Network Time Limit: 1000MS     Memory Limit: 30000K Total Submissions: 16047   Accepted: 6362   Spec ...

  2. C++—揭秘大牛博客一些不同凡人的写法

    天下之大,无奇不有,C++也是这样,今天小编来盘点几个有意思的代码,看看你认识几个?以后见到之后千万别装不认识. 一.基础篇——不一样的输出 1.cerr 输出 cout和cerr究竟有什么不同?这也 ...

  3. Dumpzilla工具第615行bug的解决办法

    Dumpzilla工具第615行bug的解决办法   在Dumpzilla使用选项frequency时,会提示SQL语法错误.这是由于其中SQL语句编写错误.需要将615行中: where url l ...

  4. Hnoi2013题解 bzoj3139~3144

    话说好久没写题(解)了.. 先贴份题解:http://wjmzbmr.com/archives/hnoi-2013-%E9%A2%98%E8%A7%A3/(LJ神题解..Lazycal表示看不懂..) ...

  5. small test on 5.30 night T2

    (题面写错了,应该是一条从b -> a 的边) 让我们设状态 (a,b,c) 表示存在一个点k,使得  dist(k,b) - dist(k,a) * 2 + 3 = c,显然这里的第三维可以压 ...

  6. [POI2005]Toy Cars

    题目大意: 有n种物品,地上有k个格子,p次操作. 每次操作要求将某一个指定的物品移动到任意一个格子中,同时你可以选择是否将格子中的某一个物品收起来,并消耗1的代价. 如果下达指令时,这个物品刚好在格 ...

  7. iOS计算富文本(NSMutableAttributedString)高度

    有时候开发中我们为了样式好看, 需要对文本设置富文本属性, 设置完后那么怎样计算其高度呢, 很简单, 方法如下: - (NSInteger)hideLabelLayoutHeight:(NSStrin ...

  8. javascript(JQuery)元素操作

    html代码如下: <div id="picK"> <ul> <li style="float:left;width:90px;" ...

  9. @import url(../image/css)的用法

    1.@import url(../image/css);可以加载css文件2.@import url(../image/css);可以写在html里加载css文件,也可以写在css文件里加载css文件 ...

  10. 安装Node.js、npm和环境变量的配置

    由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境. 一.安装Node.js 首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像 ...