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. 表(Table)

    虽然我们已经将不同用途的物品保存在不同的仓库中了,但是在同一个仓库中数据的保存仍然存在问题.比如食品分为熟食.生肉.大米等,如果把他们随意的堆放在一起,就会造成我们无法很容易的对这些食品进行管理,当要 ...

  2. 【递归】先修课 计算概论(A) / 函数递归练习(3)2:分解因数

    #include<cstdio> using namespace std; bool is_prime(int x) { ;i*i<=x;i++) ) return false; r ...

  3. Java架构师之路 Spring学习笔记(一) Spring介绍

    前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...

  4. [Javascript]js判断是否为undefined类型

    概述 在项目获取某个元素的值会出现undefined,所以对这种情况要有特殊处理. 可通过下面的代码判断是否为undefined类型. if (typeof(reValue) == "und ...

  5. CSS:display:table

    使用display:table 垂直居中需要结合display:table-cell; 和vertical-align:middle; <!DOCTYPE html> <html l ...

  6. [转载]Oracle批量执行

    FROM: http://www.cnblogs.com/wangyayun/p/4514411.html //批量添加20000条数据用时8秒. try { String url = "j ...

  7. Scala实现冒泡排序、归并排序和快速排序

    1.冒泡排序 def sort(list: List[Int]): List[Int] = list match { case List() => List() case head :: tai ...

  8. Linux文件夹、分区

    必须明确,硬盘分区的存在,是由硬盘的物理特性决定的,不会因为操作系统的不同而有所改变 所以不用对为根目录/挂载分区的同时还为/usr挂载分区感到惊讶   ====分区的概念==== 可以把一个硬盘比成 ...

  9. 一次@value取值失败的原因

    网上down了一份源码.启动后报错,通过报错信息定位到这个地方: 之前对这个@Value的实现方式我也没了解过,所以乘机对springboot关于这一块的源码研究了一下.可以参考当时我的一篇分析记录& ...

  10. 【codeforces #282(div 1)】AB题解

    A. Treasure time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...