From f9c206690fe1bd343a35100d7a864aebf3927521 Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 4 Nov 2022 15:15:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9B=B4=E6=8E=A5=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../szwh/controller/api/OrderController.java | 10 +- .../cn/chjyj/szwh/service/OrderService.java | 8 + .../szwh/service/impl/OrderServiceImpl.java | 852 ++++++++++-------- 3 files changed, 495 insertions(+), 375 deletions(-) diff --git a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java index e8ed2da..3d26ef4 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java @@ -139,6 +139,9 @@ public class OrderController extends BaseController { /** * {"appkey":"0acdbb709ee95707","goods":[{"goods_isli":"010007-00000000349999999999-2","use_years":"1"}], * "timestamp":"1667283296","user_isli":"899998-000000001640-3"} + * + * goods_isli=010007-00000000352199999999-4&is_car=2 + * &user_isli=899998-000000001640-3&use_years=1&random=0.12520860309501458 */ long start = System.currentTimeMillis(); log.info("createOrder:"+reqstr); @@ -152,18 +155,21 @@ public class OrderController extends BaseController { String redisKey = "createOrder_"+userIsli; Object redisCon = RedisUtil.get(redisKey); + Map retmap = orderService.createOrder(userIsli,jGoodsArray); if(redisCon!=null){ jsonObject.put("code","error"); jsonObject.put("msg","请勿重复提交"); + return jsonObject; }else{ // 10s redis RedisUtil.set(redisKey,"1",10); } + //count process use cost time long end =System.currentTimeMillis(); long howuse = (end-start)/1000l; - jsonObject.put("data",retmap); - jsonObject.put("msg","成功"); + jsonObject.put("data",retmap.get("rdata")); + jsonObject.put("msg",retmap.get("msg")); jsonObject.put("useTime",howuse); return jsonObject; } diff --git a/src/main/java/cn/chjyj/szwh/service/OrderService.java b/src/main/java/cn/chjyj/szwh/service/OrderService.java index e3e32e8..35e7a39 100644 --- a/src/main/java/cn/chjyj/szwh/service/OrderService.java +++ b/src/main/java/cn/chjyj/szwh/service/OrderService.java @@ -118,4 +118,12 @@ public interface OrderService { * @return */ Map getOrderMapByBatch(String batchcode,String userIsli); + + /** + * 购物车中的商品结算 + * @param userIsli + * @param gJsonArray + * @return + */ + Map buyCarGoods(String userIsli,JSONArray gJsonArray); } diff --git a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java index 90b2c00..b04462a 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java @@ -73,96 +73,97 @@ public class OrderServiceImpl implements OrderService { @Override public List getAllOrderList(int page) { - int startrs = page>0?(page-1)* ChConstant.PAGESIZE:0; - int pageSize =ChConstant.PAGESIZE; + int startrs = page > 0 ? (page - 1) * ChConstant.PAGESIZE : 0; + int pageSize = ChConstant.PAGESIZE; // - return orderMapper.getAllOrderList(startrs,pageSize); + return orderMapper.getAllOrderList(startrs, pageSize); } /** * 组合查询订单信息 + * * @param qumap * @param page * @param limit * @return */ @Override - public Map getOrderList(Map qumap,String buyname,String entrust_name, - int page, int limit) { - SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Map retmap =new HashMap(); - int starrs = page>1?(page-1)*limit:0; + public Map getOrderList(Map qumap, String buyname, String entrust_name, + int page, int limit) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Map retmap = new HashMap(); + int starrs = page > 1 ? (page - 1) * limit : 0; // 购买方 - if(StringUtils.isNotBlank(buyname) ){ - // 查找出用户的 islicode 标识符 - List odulist =orderUserMapper.getSearchNameOrIslicode(buyname); + if (StringUtils.isNotBlank(buyname)) { + // 查找出用户的 islicode 标识符 + List odulist = orderUserMapper.getSearchNameOrIslicode(buyname); List bclist = new ArrayList(); - for(OrderUser ou:odulist){ + for (OrderUser ou : odulist) { bclist.add(ou.getBatchcode()); } // 该购买者的订单 - qumap.put("bcin",bclist); + qumap.put("bcin", bclist); } // 委托方 - if(StringUtils.isNotBlank(entrust_name)){ - List euolist =orderUserMapper.getSearchNameOrIslicode(entrust_name); + if (StringUtils.isNotBlank(entrust_name)) { + List euolist = orderUserMapper.getSearchNameOrIslicode(entrust_name); List buyinArr = new ArrayList(); - for(OrderUser ou:euolist){ + for (OrderUser ou : euolist) { buyinArr.add(ou.getBatchcode()); } // 委托方购买订单号 - qumap.put("bcin",buyinArr); + qumap.put("bcin", buyinArr); } //组织搜索条件 Map somap = new HashMap(); // 如果是商品名称 - String gname = (String)qumap.get("goods_name"); - if(StringUtils.isNotBlank(gname)){ - somap.put("goods_name",gname); //按名称搜索 - somap.put("goods_islicode",gname); //按编号搜索 + String gname = (String) qumap.get("goods_name"); + if (StringUtils.isNotBlank(gname)) { + somap.put("goods_name", gname); //按名称搜索 + somap.put("goods_islicode", gname); //按编号搜索 List sogdlist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap); - if (sogdlist!=null) { - List sbarr = new ArrayList(); - for(OrderGoodsDetail ogd:sogdlist){ - sbarr.add(ogd.getBatchcode()); - } - qumap.put("bcin",sbarr); + if (sogdlist != null) { + List sbarr = new ArrayList(); + for (OrderGoodsDetail ogd : sogdlist) { + sbarr.add(ogd.getBatchcode()); + } + qumap.put("bcin", sbarr); } } // 交易类型 - String gtype =(String)qumap.get("goods_entrust"); - if(gtype !=null){ - somap.put("goods_entrust",gtype); + String gtype = (String) qumap.get("goods_entrust"); + if (gtype != null) { + somap.put("goods_entrust", gtype); List tsolist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap); - if(tsolist!=null){ - List tsarr=new ArrayList(); - for(OrderGoodsDetail ogd:tsolist){ + if (tsolist != null) { + List tsarr = new ArrayList(); + for (OrderGoodsDetail ogd : tsolist) { tsarr.add(ogd.getBatchcode()); } - qumap.put("bcin",tsarr); + qumap.put("bcin", tsarr); } } // 商品服务费类型 String chargeType = (String) qumap.get("charges_type"); - if(chargeType!=null){ + if (chargeType != null) { Integer ichargeType = Integer.valueOf(chargeType); - somap.put("charges_type",ichargeType); + somap.put("charges_type", ichargeType); List tsolist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap); - if(tsolist!=null){ - List tsarr=new ArrayList(); - for(OrderGoodsDetail ogd:tsolist){ + if (tsolist != null) { + List tsarr = new ArrayList(); + for (OrderGoodsDetail ogd : tsolist) { tsarr.add(ogd.getBatchcode()); } - qumap.put("bcin",tsarr); + qumap.put("bcin", tsarr); } } // 重新组合筛选条件 - List orderList=orderMapper.getOrderList(qumap,starrs,limit); + List orderList = orderMapper.getOrderList(qumap, starrs, limit); // 统计符合条件的总数 int total = orderMapper.countOrderByMap(qumap); @@ -171,60 +172,60 @@ public class OrderServiceImpl implements OrderService { List relist = new ArrayList(); //拼装对象 - for(Order od:orderList){ - Map tomap =new HashMap(); + for (Order od : orderList) { + Map tomap = new HashMap(); //订单编号 - tomap.put("batchcode",od.getBatchcode()); + tomap.put("batchcode", od.getBatchcode()); // 购买者 - OrderUser oduser = orderUserMapper.getUserOrder(od.getBatchcode(),od.getBuyIslicode()); - tomap.put("buy_username",oduser.getName()); + OrderUser oduser = orderUserMapper.getUserOrder(od.getBatchcode(), od.getBuyIslicode()); + tomap.put("buy_username", oduser.getName()); //下单时间 - tomap.put("createtime",sdf.format(od.getCreatetime())); + tomap.put("createtime", sdf.format(od.getCreatetime())); //entrust_name 委托人信息, - String entrustName=""; - String entrustType="";//委托类型 - String goodsName=""; //商品名称 + String entrustName = ""; + String entrustType = "";//委托类型 + String goodsName = ""; //商品名称 Set enset = new HashSet<>();// 存放商品的授权方式 List ogdlist = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode()); // 遍历 - for(OrderGoodsDetail ogd:ogdlist){ + for (OrderGoodsDetail ogd : ogdlist) { // 收费类型 - if(StringUtils.isNotBlank((String)qumap.get("charges_type"))){ + if (StringUtils.isNotBlank((String) qumap.get("charges_type"))) { } // 取订单商品的人 - OrderUser ogdu=orderUserMapper.getUserOrder(ogd.getBatchcode().toString(),ogd.getEntrustIslicode()); + OrderUser ogdu = orderUserMapper.getUserOrder(ogd.getBatchcode().toString(), ogd.getEntrustIslicode()); // 如果已经有记录了 - if(StringUtils.isNotBlank(entrustName)){ - entrustName+=","+ogdu.getName(); - }else{ + if (StringUtils.isNotBlank(entrustName)) { + entrustName += "," + ogdu.getName(); + } else { entrustName = ogdu.getName(); } //商品名称 - if(StringUtils.isNotBlank(goodsName)){ - goodsName+=","+ogd.getGoodsName(); - }else{ - goodsName= ogd.getGoodsName(); + if (StringUtils.isNotBlank(goodsName)) { + goodsName += "," + ogd.getGoodsName(); + } else { + goodsName = ogd.getGoodsName(); } //委托方式 - String tmptype=ogd.getGoodsEntrust()==1?"转让":"授权"; + String tmptype = ogd.getGoodsEntrust() == 1 ? "转让" : "授权"; enset.add(tmptype); } // set集合 转为字符串 - entrustType = String.join(",",enset); + entrustType = String.join(",", enset); // 存放在map 中 - tomap.put("entrust_name",entrustName); - tomap.put("entrust_type",entrustType); - tomap.put("goods_name",goodsName); + tomap.put("entrust_name", entrustName); + tomap.put("entrust_type", entrustType); + tomap.put("goods_name", goodsName); //订单金额 - tomap.put("total_money",od.getTotalMoney()); - tomap.put("type",od.getType()); - tomap.put("status",od.getStatus()); - tomap.put("id",od.getId()); + tomap.put("total_money", od.getTotalMoney()); + tomap.put("type", od.getType()); + tomap.put("status", od.getStatus()); + tomap.put("id", od.getId()); //attention map 对象有小小的弊端 relist.add(tomap); @@ -232,18 +233,19 @@ public class OrderServiceImpl implements OrderService { // 记录总数 - retmap.put("total",total); - retmap.put("start",starrs+1); - retmap.put("cur_page",page); - retmap.put("end",page*limit); - retmap.put("id",starrs); - retmap.put("per_page",limit); - retmap.put("data",relist); + retmap.put("total", total); + retmap.put("start", starrs + 1); + retmap.put("cur_page", page); + retmap.put("end", page * limit); + retmap.put("id", starrs); + retmap.put("per_page", limit); + retmap.put("data", relist); return retmap; } /** * 订单详情,方法2 + * * @param batchcode * @return */ @@ -251,29 +253,29 @@ public class OrderServiceImpl implements OrderService { public List orderDetail(String batchcode) { List retList = new ArrayList(); // 订单详情及产品信息 - List ordvList =orderGoodsDetailMapper.getOrderDetailVo(batchcode); - if(ordvList==null){ + List ordvList = orderGoodsDetailMapper.getOrderDetailVo(batchcode); + if (ordvList == null) { // 订单不存在 - log.warn("order miss :"+batchcode+" miss! Check your db pls!"); - }else{ + log.warn("order miss :" + batchcode + " miss! Check your db pls!"); + } else { // 枚举所有的订单详情 - for(OrderDetailVo dv:ordvList){ + for (OrderDetailVo dv : ordvList) { Map retmap = new HashMap(); // 商品图片 - if(StringUtils.isNotBlank(dv.getGoods_image())){ + if (StringUtils.isNotBlank(dv.getGoods_image())) { //todo 远程获取图 } - retmap.put("goods",dv); + retmap.put("goods", dv); // 订单用户 , - Map odumap=new HashMap(); - OrderUser orderUser = orderUserMapper.getUserOrder(batchcode,dv.getEntrust_islicode()); - odumap.put("userType",orderUser.getUsertype()); - odumap.put("uscc",orderUser.getUscc()); - odumap.put("name",orderUser.getName()); - odumap.put("islicode",orderUser.getIslicode()); - odumap.put("bankAccountName",orderUser.getBankaccountname()); - odumap.put("state",orderUser.getState()); - retmap.put("userinfo",odumap); + Map odumap = new HashMap(); + OrderUser orderUser = orderUserMapper.getUserOrder(batchcode, dv.getEntrust_islicode()); + odumap.put("userType", orderUser.getUsertype()); + odumap.put("uscc", orderUser.getUscc()); + odumap.put("name", orderUser.getName()); + odumap.put("islicode", orderUser.getIslicode()); + odumap.put("bankAccountName", orderUser.getBankaccountname()); + odumap.put("state", orderUser.getState()); + retmap.put("userinfo", odumap); //来源集合 List orgslist = orderGoodsSourceMapper.getOrderGoodsSourceList(dv.getSource_id()); @@ -282,48 +284,48 @@ public class OrderServiceImpl implements OrderService { List oneSource = new ArrayList(); Map info = new HashMap(); // 罗列出goodssource - for(OrderGoodsSource ods:orgslist){ + for (OrderGoodsSource ods : orgslist) { JSONObject odsJson = JSONObject.parseObject(ods.getSourceData()); - log.info("goods _source :"+odsJson); + log.info("goods _source :" + odsJson); // 类型 Integer dataType = ods.getDatatype(); - if(dataType==1){ - info.put("name",ods.getSourceName()); - info.put("class",ods.getSourceType()); + if (dataType == 1) { + info.put("name", ods.getSourceName()); + info.put("class", ods.getSourceType()); // 从json data 中获取 - info.put("registerDate",odsJson.getString("registerDate")); - info.put("identifier",odsJson.getString("identifier")); + info.put("registerDate", odsJson.getString("registerDate")); + info.put("identifier", odsJson.getString("identifier")); //符合条件的数量 - int count = goodsSourceMapper.countGoodSource(dv.getGoods_islicode(),1,ods.getSourceidentify()); - info.put("count",count); + int count = goodsSourceMapper.countGoodSource(dv.getGoods_islicode(), 1, ods.getSourceidentify()); + info.put("count", count); gatherList.add(info); - }else{ - Long filesize= odsJson.getLongValue("metadataFileSize"); - info.put("name",ods.getSourceName()); - info.put("class",ods.getSourceType()); - info.put("registerDate",odsJson.getString("registerDate")); - info.put("identifier",odsJson.getString("identifier")); + } else { + Long filesize = odsJson.getLongValue("metadataFileSize"); + info.put("name", ods.getSourceName()); + info.put("class", ods.getSourceType()); + info.put("registerDate", odsJson.getString("registerDate")); + info.put("identifier", odsJson.getString("identifier")); //符合条件的数量 - int count = goodsSourceMapper.countGoodSource(dv.getGoods_islicode(),1,ods.getSourceidentify()); - info.put("count",count); + int count = goodsSourceMapper.countGoodSource(dv.getGoods_islicode(), 1, ods.getSourceidentify()); + info.put("count", count); info.put("filesize", SzFileUtils.fileSizeFormat(filesize)); - info.put("metadataFileFormat",odsJson.getString("metadataFileFormat")); + info.put("metadataFileFormat", odsJson.getString("metadataFileFormat")); // 资源下载地址 ,json 格式 - String sourceDown= orderGoodsDetailMapper.getOrderGoodsDetailSourceDownload(batchcode,dv.getGoods_islicode()); + String sourceDown = orderGoodsDetailMapper.getOrderGoodsDetailSourceDownload(batchcode, dv.getGoods_islicode()); JSONArray sdownJsonArray = JSONArray.parseArray(sourceDown); - for(int i=0;i orderInfo(String bathcode) { - Map retmap =new HashMap(); - int code=200; - String msg="成功"; + public Map orderInfo(String bathcode) { + Map retmap = new HashMap(); + int code = 200; + String msg = "成功"; // 订单基础信息 todo fix Map bsodmap = new HashMap(); Order bsod = orderMapper.getOrderByBatchcode(bathcode); - bsodmap.put("goods_price",bsod.getTotalMoney()); - bsodmap.put("total_service_charge",bsod.getTotalServiceCharge().toString()); - bsodmap.put("status",bsod.getStatus()); - retmap.put("order",bsodmap); + bsodmap.put("goods_price", bsod.getTotalMoney()); + bsodmap.put("total_service_charge", bsod.getTotalServiceCharge().toString()); + bsodmap.put("status", bsod.getStatus()); + retmap.put("order", bsodmap); - if(bsod==null){ - log.warn("order warn: "+bathcode+" 订单不存在"); - msg="订单不存在"; - code=400; + if (bsod == null) { + log.warn("order warn: " + bathcode + " 订单不存在"); + msg = "订单不存在"; + code = 400; } //订单商品详情 List odglist = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(bathcode); - Set entnSet =new HashSet(); - String goodsName="";//产品名称 - String goodsType="";//产品类型 - List goodsEntrust=new ArrayList<>(); - String goodsOwnerShipStr=""; + Set entnSet = new HashSet(); + String goodsName = "";//产品名称 + String goodsType = "";//产品类型 + List goodsEntrust = new ArrayList<>(); + String goodsOwnerShipStr = ""; //BigDecimal goodsPrice=new BigDecimal(0); // 订单金额 BigDecimal price = new BigDecimal(0); - int transactionCount=0;// 交易次数 - BigDecimal earnestMoney= new BigDecimal(0); - BigDecimal serviceCharge=new BigDecimal(0);//服务 - String contractCode=""; // - String closeSerialNumber=""; + int transactionCount = 0;// 交易次数 + BigDecimal earnestMoney = new BigDecimal(0); + BigDecimal serviceCharge = new BigDecimal(0);//服务 + String contractCode = ""; // + String closeSerialNumber = ""; // - for(OrderGoodsDetail odg:odglist){ + for (OrderGoodsDetail odg : odglist) { // for 每个商品 购买者 - OrderUser orderUser = orderUserMapper.getUserOrder(bathcode,odg.getEntrustIslicode()); + OrderUser orderUser = orderUserMapper.getUserOrder(bathcode, odg.getEntrustIslicode()); entnSet.add(orderUser.getName()); // - goodsName+=odg.getGoodsName()+","; - goodsType+=(odg.getGoodsType()==1)? "文化资源数据," : "文化数字内容,"; + goodsName += odg.getGoodsName() + ","; + goodsType += (odg.getGoodsType() == 1) ? "文化资源数据," : "文化数字内容,"; //商品权益 - String tmstr=odg.getGoodsEntrust()==1?"转让" : "授权"; + String tmstr = odg.getGoodsEntrust() == 1 ? "转让" : "授权"; goodsEntrust.add(tmstr); // - goodsOwnerShipStr += odg.getGoodsOwnershipStr()+","; + goodsOwnerShipStr += odg.getGoodsOwnershipStr() + ","; price = price.add(odg.getPrice()); // 交易数量 - transactionCount+=odg.getTransactionCount(); + transactionCount += odg.getTransactionCount(); // - BigDecimal gear=new BigDecimal(odg.getEarnestMoney().toString()); - earnestMoney=earnestMoney.add(gear); + BigDecimal gear = new BigDecimal(odg.getEarnestMoney().toString()); + earnestMoney = earnestMoney.add(gear); // - serviceCharge=serviceCharge.add(odg.getServiceCharge()); + serviceCharge = serviceCharge.add(odg.getServiceCharge()); // - contractCode+=odg.getContractCode()+","; + contractCode += odg.getContractCode() + ","; // - closeSerialNumber+=odg.getCloseSerialNumber()+","; + closeSerialNumber += odg.getCloseSerialNumber() + ","; } - StringBuffer sb= new StringBuffer(); - for(String ts:entnSet){ + StringBuffer sb = new StringBuffer(); + for (String ts : entnSet) { sb.append(ts); sb.append(","); } // 添加到对象中 - Map odinfoMap=new HashMap<>(); - odinfoMap.put("entrust_name",sb.toString()); - odinfoMap.put("type",1); - odinfoMap.put("batchcode",bathcode); + Map odinfoMap = new HashMap<>(); + odinfoMap.put("entrust_name", sb.toString()); + odinfoMap.put("type", 1); + odinfoMap.put("batchcode", bathcode); // 去掉最后一个逗号 - odinfoMap.put("contract_code",contractCode.substring(0,contractCode.length()-1)); - odinfoMap.put("close_serial_number",closeSerialNumber.substring(0,closeSerialNumber.length()-1)); - odinfoMap.put("goods_name",goodsName.substring(0,goodsName.length()-1)); - odinfoMap.put("goods_type",goodsType.substring(0,goodsType.length()-1)); + odinfoMap.put("contract_code", contractCode.substring(0, contractCode.length() - 1)); + odinfoMap.put("close_serial_number", closeSerialNumber.substring(0, closeSerialNumber.length() - 1)); + odinfoMap.put("goods_name", goodsName.substring(0, goodsName.length() - 1)); + odinfoMap.put("goods_type", goodsType.substring(0, goodsType.length() - 1)); // - StringBuffer gsb=new StringBuffer(); - for(String ges:goodsEntrust){ + StringBuffer gsb = new StringBuffer(); + for (String ges : goodsEntrust) { gsb.append(ges); gsb.append(","); } - String gestr=gsb.toString(); - odinfoMap.put("goods_entrust",gestr.substring(0,gestr.length()-1)); + String gestr = gsb.toString(); + odinfoMap.put("goods_entrust", gestr.substring(0, gestr.length() - 1)); // - odinfoMap.put("goods_ownership_str",goodsOwnerShipStr.substring(0,goodsOwnerShipStr.length()-1)); + odinfoMap.put("goods_ownership_str", goodsOwnerShipStr.substring(0, goodsOwnerShipStr.length() - 1)); //标的价格 - odinfoMap.put("price",price); - odinfoMap.put("transaction_count",transactionCount); - odinfoMap.put("earnest_money",earnestMoney); - odinfoMap.put("total_money",bsod.getTotalMoney()); - retmap.put("order_info",odinfoMap); + odinfoMap.put("price", price); + odinfoMap.put("transaction_count", transactionCount); + odinfoMap.put("earnest_money", earnestMoney); + odinfoMap.put("total_money", bsod.getTotalMoney()); + retmap.put("order_info", odinfoMap); //购买者 - Map buymap =new HashMap(); - OrderUser buyuser= orderUserMapper.getUserOrder(bathcode,bsod.getBuyIslicode()); - buymap.put("userType",buyuser.getUsertype()); - buymap.put("uscc",buyuser.getUscc()); - buymap.put("name",buyuser.getName()); - buymap.put("islicode",buyuser.getIslicode()); - buymap.put("state",buyuser.getState()); - retmap.put("buyuser",buymap); + Map buymap = new HashMap(); + OrderUser buyuser = orderUserMapper.getUserOrder(bathcode, bsod.getBuyIslicode()); + buymap.put("userType", buyuser.getUsertype()); + buymap.put("uscc", buyuser.getUscc()); + buymap.put("name", buyuser.getName()); + buymap.put("islicode", buyuser.getIslicode()); + buymap.put("state", buyuser.getState()); + retmap.put("buyuser", buymap); //分账比例 AccountRatioSetting acrsetting = accountRatioSettingMapper.getAccRatioSettingById(bsod.getAccountRatioId()); List acrdetailList = accountRatioDetailMapper.getAccRatioDetailBySettingId(acrsetting.getId()); - retmap.put("ratio_setting",acrdetailList); + retmap.put("ratio_setting", acrdetailList); // 资金结算表 - retmap.put("close",getCloseTable(bsod,odglist)); + retmap.put("close", getCloseTable(bsod, odglist)); // 发票 List bill = new ArrayList<>(); //$bill = $this->getBill($batchcode); //$result['bill'] = $bill; - retmap.put("bill",bill); - retmap.put("code",code); - retmap.put("msg",msg); + retmap.put("bill", bill); + retmap.put("code", code); + retmap.put("msg", msg); return retmap; } @Override public int updateOrderStatus(Map map, Integer id) { - return orderMapper.updateOrderStatus(map,id); + return orderMapper.updateOrderStatus(map, id); } /** * 关闭时间为当前 + * * @param batchcode * @return */ @Override @Transactional(rollbackFor = Exception.class) - public Map shutOrder(String batchcode) { - Map retmap =new HashMap(); - String msg="订单关闭不成功"; - int code=400; + public Map shutOrder(String batchcode) { + Map retmap = new HashMap(); + String msg = "订单关闭不成功"; + int code = 400; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String now = sdf.format(new Date()); - int ret=0; - ret = orderMapper.shutOrder(batchcode,now); + int ret = 0; + ret = orderMapper.shutOrder(batchcode, now); // 设置商品信息 List odlist = orderGoodsDetailMapper.getOrderDetailVo(batchcode); - if(odlist!=null){ - for(OrderDetailVo odv:odlist){ - if("1".equals(odv.getGoods_entrust()) ){ // 判断状态商品委托类型 + if (odlist != null) { + for (OrderDetailVo odv : odlist) { + if ("1".equals(odv.getGoods_entrust())) { // 判断状态商品委托类型 // 更新产品专题 - goodsMapper.updateGoodsField("goods_status","1",odv.getGoods_islicode()); + goodsMapper.updateGoodsField("goods_status", "1", odv.getGoods_islicode()); } } } - if(ret==1){ - msg="订单关闭成功"; - code=200; + if (ret == 1) { + msg = "订单关闭成功"; + code = 200; } // - retmap.put("msg",msg); - retmap.put("code",code); + retmap.put("msg", msg); + retmap.put("code", code); return retmap; } /** * 统计所有订单总数 + * * @return */ @Override @@ -531,65 +536,66 @@ public class OrderServiceImpl implements OrderService { /** * 查找购买流程,并返回订单编号 + * * @param userIsli * @param goodsIsli * @param userYears * @return */ @Override - public Map buyFindGoods(String userIsli, String goodsIsli, int userYears) { + public Map buyFindGoods(String userIsli, String goodsIsli, int userYears) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Map bretMap = new HashMap<>();// 返回的结果 + Map bretMap = new HashMap<>();// 返回的结果 Goods goods = goodsMapper.getGoodsByIsli(goodsIsli); - if(goods==null){ - log.error("create order error!"+goodsIsli+",不存在"); - bretMap.put("error","没有该标的"); + if (goods == null) { + log.error("create order error!" + goodsIsli + ",不存在"); + bretMap.put("error", "没有该标的"); return bretMap; } // goods detail GoodsDetail goodsDetail = goodsDetailMapper.getGoodsDetailBygid(goods.getGoodsDetailId()); int count = userYears; - if(goodsDetail.getGoodsEntrust()==1){ - count=1; + if (goodsDetail.getGoodsEntrust() == 1) { + count = 1; } // ratio setting AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getUsingAccRatioSetting(); - AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(),2); + AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 2); // 根据用户编号、商品编号查询是否存在订单 // check has order infomation - Map oqmap =new HashMap(); - oqmap.put("o.buy_islicode",userIsli); - oqmap.put("od.goods_islicode",goodsIsli); + Map oqmap = new HashMap(); + oqmap.put("o.buy_islicode", userIsli); + oqmap.put("od.goods_islicode", goodsIsli); OrderDetailVo orderDetailVo = orderMapper.getOrderDetailVOByMap(oqmap); // 检查订单支付情况 - if(orderDetailVo!=null) { + if (orderDetailVo != null) { if (orderDetailVo.getStatus() == 1) { - bretMap.put("error","您的待付款订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); + bretMap.put("error", "您的待付款订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); return bretMap; } else if (orderDetailVo.getStatus() == 2) { - bretMap.put("error","您的未完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); + bretMap.put("error", "您的未完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); return bretMap; } else { - bretMap.put("error","您的已完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); + bretMap.put("error", "您的已完成订单中有标的:" + goods.getGoodsIslicode() + ",请勿重复下单"); return bretMap; } } // 判断当前订单是否存在问题 - Order order=new Order(); + Order order = new Order(); //校验订单信息合法 - SzOrderUtils.checkOrder(goods,goodsDetail,userIsli); + SzOrderUtils.checkOrder(goods, goodsDetail, userIsli); // 计算服务费等 委托方总金额 - BigDecimal serviceCharge =new BigDecimal("0"); - BigDecimal totalMoney= new BigDecimal("0"); - int status=0;//订单状态 - int payStatus=0;//支付状态 + BigDecimal serviceCharge = new BigDecimal("0"); + BigDecimal totalMoney = new BigDecimal("0"); + int status = 0;//订单状态 + int payStatus = 0;//支付状态 // 付费商品 - if(goodsDetail.getChargesType()==2){ - if(accountRatioDetail.getCalculate()==1){ - Map calmap =SzOrderUtils.calOrderServiceFee(accountRatioDetail,userYears,goodsDetail.getPrice(),goodsDetail.getEarnestMoney()); + if (goodsDetail.getChargesType() == 2) { + if (accountRatioDetail.getCalculate() == 1) { + Map calmap = SzOrderUtils.calOrderServiceFee(accountRatioDetail, userYears, goodsDetail.getPrice(), goodsDetail.getEarnestMoney()); serviceCharge = (BigDecimal) calmap.get("service_charge"); totalMoney = (BigDecimal) calmap.get("total_money"); - }else{ + } else { //固定金额 // 购买数量*单机+固定费额 serviceCharge = new BigDecimal(count).multiply(goodsDetail.getPrice()) @@ -599,19 +605,19 @@ public class OrderServiceImpl implements OrderService { totalMoney = new BigDecimal(count).multiply(goodsDetail.getPrice()) .add(serviceCharge) .add(goodsDetail.getEarnestMoney()); - status=1; - payStatus=1; - }else{ + status = 1; + payStatus = 1; + } else { // 免费 - serviceCharge =new BigDecimal("0.00"); + serviceCharge = new BigDecimal("0.00"); totalMoney = new BigDecimal("0.00"); - status=2; - payStatus=2; //已支付 + status = 2; + payStatus = 2; //已支付 } // 订单编号 String batchCode = SzOrderUtils.createOrderBatchcode(); // 增加到订单商品详情 - OrderGoodsDetail orderGoodsDetail = SzOrderUtils.mkOrderGoodsDetail(goodsDetail,batchCode,count,userYears); + OrderGoodsDetail orderGoodsDetail = SzOrderUtils.mkOrderGoodsDetail(goodsDetail, batchCode, count, userYears); // 补充其他未添加的属性 orderGoodsDetail.setEntrustIslicode(goods.getUserIslicode()); // 订单服务费 @@ -620,22 +626,23 @@ public class OrderServiceImpl implements OrderService { orderGoodsDetail.setMoney(totalMoney); orderGoodsDetail.setIslicode(goods.getIsLicode()); // 查找用户 - OrderUser orderUser = orderUserMapper.getUserOrder(batchCode,goods.getIsLicode()); - int userId=0; - if(orderUser!=null){ + OrderUser orderUser = orderUserMapper.getUserOrder(batchCode, goods.getIsLicode()); + int userId = 0; + if (orderUser != null) { userId = orderUser.getId(); - }else{ - // 获取远程用户信息 - JSONObject userjson = SzwhApiUtils.getApiUser(userIsli); - if(StringUtils.isBlank(userjson.getString("data"))){ - log.error("未查询到用户信息,下单失败"+userIsli); - bretMap.put("error","未查询到用户信息,下单失败"); - return bretMap; + } else { + Map adumap = addOrderUserByBatchacode(batchCode,userIsli); + if(adumap!=null){ + String errmsg = (String)adumap.get("error"); + if(StringUtils.isNotEmpty(errmsg)){ + log.error("未查询到用户信息,下单失败" + userIsli); + bretMap.put("msg",errmsg); + } + String oduid =(String)adumap.get("oduid"); + if(StringUtils.isNotEmpty(oduid)){ + userId = Integer.valueOf(oduid); + } } - //添加用户 - OrderUser odu =SzOrderUtils.mkOrderUser(batchCode,userjson,0); - orderUserMapper.addOrderUser(odu); - userId = odu.getId(); } // 订单实体 @@ -650,13 +657,13 @@ public class OrderServiceImpl implements OrderService { // 分配设置编号 order.setAccountRatioId(accountRatioSetting.getId()); //如果是付费 - if(goodsDetail.getChargesType()==1){ + if (goodsDetail.getChargesType() == 1) { order.setPaymenttime(new Date()); } order.setCreatetime(new Date()); // 订单信息入库 int ret = orderMapper.addOrder(order); - if(ret==1){ + if (ret == 1) { //if(status==2){ // 更新订单信息 //payService.payFinishOperate(batchCode); @@ -671,32 +678,32 @@ public class OrderServiceImpl implements OrderService { // save user's bill userAccountBillMapper.addUserAccBill(userAccountBill); //调整库存 - if(goodsDetail.getGoodsEntrust()==1 || goodsDetail.getContractualPeriod()==2 && goodsDetail.getGoodsEntrust()!=2){ + if (goodsDetail.getGoodsEntrust() == 1 || goodsDetail.getContractualPeriod() == 2 && goodsDetail.getGoodsEntrust() != 2) { int gdret = goodsDetailMapper.decGoodsDetailStock(goodsDetail.getId()); - if(gdret==1){ - String status_Str=""; + if (gdret == 1) { + String status_Str = ""; // 更新goods 状态 Map gstmap = new HashMap(); - int gsstatus=2; - if(goodsDetail.getGoodsEntrust() ==1){ - gsstatus=5; - status_Str="暂停"; - }else { - status_Str="下架"; + int gsstatus = 2; + if (goodsDetail.getGoodsEntrust() == 1) { + gsstatus = 5; + status_Str = "暂停"; + } else { + status_Str = "下架"; } gstmap.put("goods_status", gsstatus); - goodsMapper.updateGoods(gstmap,goods.getId()); + goodsMapper.updateGoods(gstmap, goods.getId()); //更新订单用户状态信息 String buyUserName = orderUser.getName(); - OperationLog oplog =new OperationLog(); + OperationLog oplog = new OperationLog(); oplog.setType("goods"); oplog.setLogid(goods.getId()); - oplog.setMessage(sdf.format(new Date())+"用户"+buyUserName+"下单,"+status_Str+"该委托标的"); + oplog.setMessage(sdf.format(new Date()) + "用户" + buyUserName + "下单," + status_Str + "该委托标的"); operationLogMapper.addLog(oplog); - bretMap.put("batchcode",batchCode); - }else{ - log.error(goodsIsli+"标的已卖完"); - bretMap.put("error","标的已卖完"); + bretMap.put("batchcode", batchCode); + } else { + log.error(goodsIsli + "标的已卖完"); + bretMap.put("error", "标的已卖完"); } } } @@ -705,43 +712,44 @@ public class OrderServiceImpl implements OrderService { /** * 输出条件查询订单 + * * @param qmap * @param page * @param limit * @return */ @Override - public Map queryOrder(Map qmap,Integer userrole, Integer page, Integer limit) { - int start = page>1?(page-1)*limit:0; + public Map queryOrder(Map qmap, Integer userrole, Integer page, Integer limit) { + int start = page > 1 ? (page - 1) * limit : 0; //订单结算 todo - List orderList = orderMapper.getOrderList(qmap,start,limit); + List orderList = orderMapper.getOrderList(qmap, start, limit); // - Map outmap = new HashMap<>(); - for(Order od:orderList){ - Map retmap = new HashMap<>(); + Map outmap = new HashMap<>(); + for (Order od : orderList) { + Map retmap = new HashMap<>(); //订单用户信息 - OrderUser orderUser = orderUserMapper.getUserOrder(od.getBatchcode(),od.getBuyIslicode()); - retmap.put("buy_username",orderUser.getName()); - retmap.put("attesttime",orderUser.getAttesttime()); - retmap.put("registertime",orderUser.getRegistertime()); - retmap.put("userType",orderUser.getUsertype()); - retmap.put("authType",orderUser.getAuthtype()); - retmap.put("state",orderUser.getState()); + OrderUser orderUser = orderUserMapper.getUserOrder(od.getBatchcode(), od.getBuyIslicode()); + retmap.put("buy_username", orderUser.getName()); + retmap.put("attesttime", orderUser.getAttesttime()); + retmap.put("registertime", orderUser.getRegistertime()); + retmap.put("userType", orderUser.getUsertype()); + retmap.put("authType", orderUser.getAuthtype()); + retmap.put("state", orderUser.getState()); // 分配情况 AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getAccRatioSettingById(od.getAccountRatioId()); - AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(),1); - BigDecimal entrustAmount=new BigDecimal(0); - if(accountRatioDetail.getCalculate()==1){ + AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 1); + BigDecimal entrustAmount = new BigDecimal(0); + if (accountRatioDetail.getCalculate() == 1) { //并列结算 - entrustAmount =accountRatioDetail.getRatio(); - }else{ + entrustAmount = accountRatioDetail.getRatio(); + } else { //固定 - entrustAmount =accountRatioDetail.getAmount(); + entrustAmount = accountRatioDetail.getAmount(); } //总额度 - if(userrole==1) { + if (userrole == 1) { BigDecimal totalCloseMoney = new BigDecimal(0.00); if (entrustAmount.compareTo(new BigDecimal(0)) < 0) { totalCloseMoney = totalCloseMoney.add(od.getTotalMoney()).setScale(2, RoundingMode.HALF_UP); @@ -750,190 +758,288 @@ public class OrderServiceImpl implements OrderService { BigDecimal rate = entrustAmount.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP); totalCloseMoney = totalCloseMoney.add(od.getTotalMoney().multiply(rate)).setScale(2, RoundingMode.HALF_UP); } - retmap.put("close_money",totalCloseMoney); + retmap.put("close_money", totalCloseMoney); } // - BigDecimal totalMoney=new BigDecimal(0); + BigDecimal totalMoney = new BigDecimal(0); BigDecimal totalServiceCharge = new BigDecimal(0); //订单商品 - List orderGoodsDetailList =orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode()); - for(OrderGoodsDetail ogd:orderGoodsDetailList){ - retmap.put("close_status",ogd.getCloseStatus()); - totalMoney = totalMoney.add(ogd.getMoney()).setScale(2,RoundingMode.HALF_UP); - totalServiceCharge =totalServiceCharge.add(ogd.getServiceCharge()).setScale(2,RoundingMode.HALF_UP); + List orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode()); + for (OrderGoodsDetail ogd : orderGoodsDetailList) { + retmap.put("close_status", ogd.getCloseStatus()); + totalMoney = totalMoney.add(ogd.getMoney()).setScale(2, RoundingMode.HALF_UP); + totalServiceCharge = totalServiceCharge.add(ogd.getServiceCharge()).setScale(2, RoundingMode.HALF_UP); // 如果是转让 - if(ogd.getGoodsEntrust()==1){ - retmap.put("transaction_count","-"); + if (ogd.getGoodsEntrust() == 1) { + retmap.put("transaction_count", "-"); } - retmap.put("entrust_month",ogd.getContractualPeriod()); + retmap.put("entrust_month", ogd.getContractualPeriod()); //订单商品资源 List ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString()); - retmap.put("source",orderGoodsDetailList); + retmap.put("source", orderGoodsDetailList); } // 商品详情 - retmap.put("order_detail",orderGoodsDetailList); + retmap.put("order_detail", orderGoodsDetailList); // - retmap.put("total_money",totalMoney); - retmap.put("total_service_charge",totalServiceCharge); + retmap.put("total_money", totalMoney); + retmap.put("total_service_charge", totalServiceCharge); // for buyer - if(userrole==1 && od.getStatus()==3){ - retmap.put("status",4); + if (userrole == 1 && od.getStatus() == 3) { + retmap.put("status", 4); } } - outmap.put("search_close_money",new BigDecimal(0)); - outmap.put("total_close_money",new BigDecimal(0)); + outmap.put("search_close_money", new BigDecimal(0)); + outmap.put("total_close_money", new BigDecimal(0)); return outmap; } /** * 创建订单实现方法 + * * @param userIsli * @param goodsJsonArray post过来的json参数 * @return */ @Override public Map createOrder(String userIsli, JSONArray goodsJsonArray) { - Map retmap = new HashMap<>(); + Map retmap = new HashMap<>(); User user = userMapper.getUserByIsli(userIsli); - if(user==null){ - retmap.put("code","error"); - retmap.put("msg","用户不存在"); + if (user == null) { + retmap.put("code", "error"); + retmap.put("msg", "用户不存在"); return retmap; } + Map bmap = new HashMap();// 执行返回map // 该用户的购物车 - String rkey="car_"+userIsli; - String batchcode="";//订单编号,一次一个 - if(goodsJsonArray.size()==1){ // 下单商品只有一个 + String rkey = "car_" + userIsli; + String batchcode = "";//订单编号,一次一个 + if (goodsJsonArray.size() == 1) { // 下单商品只有一个 JSONObject tmpgjson = goodsJsonArray.getJSONObject(0); String tuseYear = tmpgjson.getString("use_years"); //todo check it has null Integer ituseYear = Integer.valueOf(tuseYear); String goodsIsli = tmpgjson.getString("goods_isli"); - Map bmap = buyFindGoods(userIsli,goodsIsli,ituseYear); + bmap = buyFindGoods(userIsli, goodsIsli, ituseYear); //检查是否有错误信息 - String berrmsg = (String)bmap.get("error"); - if(StringUtils.isNotEmpty(berrmsg)){ - retmap.put("code",400); - retmap.put("msg",berrmsg); + String berrmsg = (String) bmap.get("error"); + if (StringUtils.isNotEmpty(berrmsg)) { + retmap.put("code", 400); + retmap.put("msg", berrmsg); return retmap; } //返回订单编号 - batchcode = (String)bmap.get("batcha"); - if(StringUtils.isNotEmpty(batchcode)){ - // 从购物车中删除该goodsisli - SzOrderUtils.delOdGoodsIsliFromCar(rkey,goodsIsli); + batchcode = (String) bmap.get("batchcode"); + + // 检查购物车中是否有该商品,有则删除 + Map ucar = SzCarUtils.getCar(rkey); + if (ucar.get(goodsIsli) != null) { + SzCarUtils.delCart(userIsli, goodsIsli); } - }else{ + } else { // 多个商品同时结算 + // 应用场景:购物车中勾选多个产品进行结算 + //$batchcode = $this->buyCarGoods($user_isli, $goods); + bmap = buyCarGoods(userIsli, goodsJsonArray); } //1、订单号一个 2、用户一个 3、订单商品(一)多个 4、操作购物车 // export order map // order basic \order goods |order user - retmap = getOrderMapByBatch(batchcode,userIsli); + // 检查是否有执行过程中的错误 + String errmsg = (String) bmap.get("error"); + if (StringUtils.isNotEmpty(errmsg)) { + retmap.put("msg", errmsg); + retmap.put("rdata", ""); + } else { + retmap.put("msg", "成功"); + retmap.put("rdata", getOrderMapByBatch(batchcode, userIsli)); + } return retmap; } /** * 根据订单号列举出所有相关 + * * @param batchcode 订单号 - * @param userIsli 用户编号 + * @param userIsli 用户编号 * @return */ - public Map getOrderMapByBatch(String batchcode,String userIsli){ - Map otmap = new HashMap<>(); + public Map getOrderMapByBatch(String batchcode, String userIsli) { + Map otmap = new HashMap<>(); // 查询以后 Order order = orderMapper.getOrderByBatchcode(batchcode); //订单信息 初始化该map - otmap= JSONObject.parseObject(JSON.toJSONString(order)); + otmap = JSONObject.parseObject(JSON.toJSONString(order)); // 订单用户 - OrderUser orderUser = orderUserMapper.getUserOrder(batchcode,userIsli); - otmap.put("buy_userinfo",orderUser); - otmap.put("buy_username",orderUser.getName()); + OrderUser orderUser = orderUserMapper.getUserOrder(batchcode, userIsli); + otmap.put("buy_userinfo", orderUser); + otmap.put("buy_username", orderUser.getName()); // order goods - List orderGoodsDetailList =orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(batchcode); - otmap.put("order_detail",orderGoodsDetailList); + List orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(batchcode); + otmap.put("order_detail", orderGoodsDetailList); // return otmap; } + /** + * 购物车订单商品结算 + * + * @param userIsli + * @param gJsonArray + * @return + */ + public Map buyCarGoods(String userIsli, JSONArray gJsonArray) { + Map outmap = new HashMap(); + //服务费 订单中费用 + BigDecimal serviceCharge = new BigDecimal("0.00"); + BigDecimal totalMoney = new BigDecimal("0.00"); + // + String batchacode = SzOrderUtils.createOrderBatchcode(); + // ratio setting + AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getUsingAccRatioSetting(); + AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(), 2); + //add order user + Map odumap = addOrderUserByBatchacode(batchacode,userIsli); + Integer buyUid=0; + if(odumap!=null){ + String oduid= (String)odumap.get("oduid"); + if(StringUtils.isNotEmpty(oduid)){ + buyUid =Integer.valueOf(oduid); + } + } + // get username + String buyUserName = orderUserMapper.getOrderUserById(buyUid).getName(); + // 检查购物车中是否有该商品,有则删除 + String rkey = "car_" + userIsli; + Map ucar = SzCarUtils.getCar(rkey); + + for(int i=0;i orderGoodsDetailList){ - List rtlist =new ArrayList(); - Map tmap =new HashMap(); + private List getCloseTable(Order order, List orderGoodsDetailList) { + List rtlist = new ArrayList(); + Map tmap = new HashMap(); //平台服务费 - BigDecimal platformServiceCharge=new BigDecimal("0"); + BigDecimal platformServiceCharge = new BigDecimal("0"); // 价格差 BigDecimal tpprice = new BigDecimal(order.getTotalMoney().toString()) .subtract(new BigDecimal(order.getTotalServiceCharge().toString())); // 购买方 交易价款 - tmap.put("close_side","购买方"); - tmap.put("close_message","交易价款"); - tmap.put("money","-"+tpprice); - tmap.put("tax_rate","-"); - tmap.put("tax_rate_money","-"); - tmap.put("close_money","-"); - tmap.put("close_status",order.getStatus()> 1 ? 2 : 1); - tmap.put("close_number",order.getCloseSerialNumber()); + tmap.put("close_side", "购买方"); + tmap.put("close_message", "交易价款"); + tmap.put("money", "-" + tpprice); + tmap.put("tax_rate", "-"); + tmap.put("tax_rate_money", "-"); + tmap.put("close_money", "-"); + tmap.put("close_status", order.getStatus() > 1 ? 2 : 1); + tmap.put("close_number", order.getCloseSerialNumber()); rtlist.add(tmap); // 购买方 交易服务费 - Map plmap =new HashMap(); - plmap.put("close_side","购买方"); - plmap.put("money","-"+new BigDecimal(order.getTotalServiceCharge().toString())); - plmap.put("tax_rate","6%"); - plmap.put("tax_rate_money","-"); - plmap.put("close_money","-"+new BigDecimal(order.getTotalServiceCharge().toString())); - plmap.put("close_status",order.getStatus()> 1 ? 2 : 1); + Map plmap = new HashMap(); + plmap.put("close_side", "购买方"); + plmap.put("money", "-" + new BigDecimal(order.getTotalServiceCharge().toString())); + plmap.put("tax_rate", "6%"); + plmap.put("tax_rate_money", "-"); + plmap.put("close_money", "-" + new BigDecimal(order.getTotalServiceCharge().toString())); + plmap.put("close_status", order.getStatus() > 1 ? 2 : 1); plmap.put("close_number", order.getCloseSerialNumber()); rtlist.add(plmap); // //交易平台 - platformServiceCharge=platformServiceCharge.add(new BigDecimal(order.getTotalServiceCharge().toString())); - for(OrderGoodsDetail org:orderGoodsDetailList){ - platformServiceCharge =platformServiceCharge.add(new BigDecimal(org.getServiceCharge().toString())); - Map wtfmap =new HashMap(); - wtfmap.put("close_side","委托方"); - wtfmap.put("close_message","交易价款"); + platformServiceCharge = platformServiceCharge.add(new BigDecimal(order.getTotalServiceCharge().toString())); + for (OrderGoodsDetail org : orderGoodsDetailList) { + platformServiceCharge = platformServiceCharge.add(new BigDecimal(org.getServiceCharge().toString())); + Map wtfmap = new HashMap(); + wtfmap.put("close_side", "委托方"); + wtfmap.put("close_message", "交易价款"); // 价格-服务费 - BigDecimal jgc=new BigDecimal(org.getMoney().toString()). + BigDecimal jgc = new BigDecimal(org.getMoney().toString()). subtract(new BigDecimal(org.getServiceCharge().toString())); - wtfmap.put("money","+"+jgc); - wtfmap.put("tax_rate","-"); - wtfmap.put("tax_rate_money","-"); - wtfmap.put("close_money","-"); + wtfmap.put("money", "+" + jgc); + wtfmap.put("tax_rate", "-"); + wtfmap.put("tax_rate_money", "-"); + wtfmap.put("close_money", "-"); wtfmap.put("close_status", order.getStatus() == 4 ? 3 : 4); wtfmap.put("close_number", order.getCloseSerialNumber()); rtlist.add(wtfmap); // 委托 服务费 - Map wtsf=new HashMap(); - wtsf.put("close_side","委托方"); - wtsf.put("close_message" , "交易服务费"); - wtsf.put("money","-"+new BigDecimal(org.getServiceCharge().toString())); - wtsf.put("tax_rate" ,"6%"); - wtsf.put("tax_rate_money" , "-"); - wtsf.put("close_money" ,"-"+new BigDecimal(org.getServiceCharge().toString())); - wtsf.put("close_status" , order.getStatus() == 4 ? 3 : 4); - wtsf.put("close_number" ,order.getCloseSerialNumber()); + Map wtsf = new HashMap(); + wtsf.put("close_side", "委托方"); + wtsf.put("close_message", "交易服务费"); + wtsf.put("money", "-" + new BigDecimal(org.getServiceCharge().toString())); + wtsf.put("tax_rate", "6%"); + wtsf.put("tax_rate_money", "-"); + wtsf.put("close_money", "-" + new BigDecimal(org.getServiceCharge().toString())); + wtsf.put("close_status", order.getStatus() == 4 ? 3 : 4); + wtsf.put("close_number", order.getCloseSerialNumber()); rtlist.add(wtsf); } Map ptmap = new HashMap(); - ptmap.put("close_side" ,"交易平台"); + ptmap.put("close_side", "交易平台"); ptmap.put("close_message", "交易服务费"); - ptmap.put("money", "+"+platformServiceCharge); - ptmap.put("tax_rate" , "6%*2"); + ptmap.put("money", "+" + platformServiceCharge); + ptmap.put("tax_rate", "6%*2"); ptmap.put("tax_rate_money", "-"); - ptmap.put("close_money" ,"+"+platformServiceCharge); - ptmap.put("close_status" , order.getStatus() == 4 ? 3 : 4); - ptmap.put("close_number" ,order.getCloseSerialNumber()); + ptmap.put("close_money", "+" + platformServiceCharge); + ptmap.put("close_status", order.getStatus() == 4 ? 3 : 4); + ptmap.put("close_number", order.getCloseSerialNumber()); rtlist.add(ptmap); return rtlist; } + + /** + * 插入订单用户表 + * + * @param batchCode 订单号 + * @param userIsli 用户号 + * @return + */ + private Map addOrderUserByBatchacode(String batchCode, String userIsli) { + Map rmap = new HashMap(); + int userId = 0; + // 获取远程用户信息 + JSONObject userjson = SzwhApiUtils.getApiUser(userIsli); + if (StringUtils.isBlank(userjson.getString("data"))) { + rmap.put("error", "未查询到用户信息,下单失败"); + return rmap; + } + //添加用户 + OrderUser odu = SzOrderUtils.mkOrderUser(batchCode, userjson, 1); + orderUserMapper.addOrderUser(odu); + userId = odu.getId(); + + rmap.put("oduid", userId); + return rmap; + } }