Atitit. atiOrder Order 订单管理框架的设计
Atitit. atiOrder Order 订单管理框架的设计
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 订单管理框架的设计的更多相关文章
- SAP CRM系统订单模型的设计与实现
SAP成都研究院的一个部门领导让我给他的团队做一个SAP CRM One Order框架的培训,这是我准备的培训内容. 在Jerry之前的文章 基于SAP Kyma的订单编排增强介绍,我表达了自己对S ...
- Atitit.cateService分类管理新特性与设计文档说明v1
Atitit.cateService分类管理新特性与设计文档说明v1 1. V2 新特性规划1 2. 分类管理1 3. 分类增加与修改维护2 4. Js控件分类数据绑定2 1. V2 新特性规划 增加 ...
- atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性
atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性 1. 新特性如下 支持生成sql在无数据库连接的情况下 2. Orm设计 主要的俩个以来service ...
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net 1. -catalog与schema的设计区别1 ...
- Atitit.加密算法ati Aes的框架设计
Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...
- 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 ...
- Atitit 修改密码的功能流程设计 attilax总结
Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...
- atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.
atitit. 日志系统的原则and设计and最佳实践总结. 1. 日志系统是一种不可或缺的单元测试,跟踪调试工具 1 2. 日志系统框架通常应当包括如下基本特性 1 1. 所输出的日志拥有自己的分类 ...
- atitit.基于http json api 接口设计 最佳实践 总结o7
atitit.基于http json api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...
随机推荐
- 一个Sqrt函数引发的血案
源码下载地址:http://diducoder.com/sotry-about-sqrt.html 好吧,我承认我标题党了,不过既然你来了,就认真看下去吧,保证你有收获. 我们平时经常会有一些数据运算 ...
- 1、Django实战第1天:建立项目mxonline
工具版本: python3.6.3 django1.9.8 安装工具 mkvirtualenv --python="C:\Python36\python.exe" mxonline ...
- RPD Volume 172 Issue 1-3 December 2016 评论03
Using Stable Free Radicals to Obtain Unique and Clinically Useful Data In Vivo in Human Subjects Abs ...
- [HNOI/AHOI2018]寻宝游戏
题目大意: $n(n\le1000)$个$m(m\le5000)$位的二进制数,第$0$个数为$0$.用$\wedge$和$\vee$将这些数连接起来.$q(q\le1000)$次询问,每次给定一个$ ...
- 1.1(Spring学习笔记)Spring基础(BeanFactory、ApplicationContext 、依赖注入)
1.准备工作 下载Spring:http://repo.spring.io/libs-release-local/org/springframework/spring/ 选择需要下载的版本 ...
- 反序显示一个整数 Exercise06_04
import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:反序显示一个整数 * */ public class Exercise06 ...
- 关于scanf函数的返回值问题
如: scanf("%d%d",&a,&b); 1.如果a和b都被成功读入,则scanf的返回值为2 2.如果只有a被成功读入,那么返回值为1 3.如果a和b都未被 ...
- IntelliJ IDEA控制台输出中文乱码问题解决
如果还不行,那么再极端的设置,在IDEA启动的时候强制设置为UTF-8: 打开增加-Dfile.encoding=UTF-8,重启Intellij IDEA 再或者直接在项目运行的时候加入UTF-8的 ...
- inline-block空隙总结
如果inline-block,宽度都是50%会留有空隙,解决方法如下 1.标签之间不留空格 (1)直接不留空 <div></div><div></div> ...
- WebLogic Server 12.1.2后的字符型安装模式
weblogic Server 12.1.1全部都可以用原来方式. WebLogic Server 12.1.2后已经取消了console安装模式,目前只有gui和静默安装模式.并且安装方式下也有很大 ...