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 c0f5399..8fbc9b6 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java @@ -21,6 +21,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -55,27 +56,31 @@ public class OrderController extends BaseController { /** * 获取订单信息 - * @param request + * @param reqstr POST 方式传递的 * @return */ @RequestMapping("/getOrder") - public JSONObject getOrder(HttpServletRequest request ) { + public JSONObject getOrder(@RequestBody String reqstr ) { + //{"appkey":"0acdbb709ee95707","limit":"20","order_status":"2","page":"1", + // "timestamp":"1667810376","user_isli":"899998-000000001640-3","user_role":"1"} + log.info("Apigetorder:"+reqstr); + JSONObject request = JSONObject.parseObject(reqstr); long start=System.currentTimeMillis(); Map qmap =new HashMap(); // 用户标识 - String userIsli = request.getParameter("user_isli"); + String userIsli = request.getString("user_isli"); if(StringUtils.isNotBlank(userIsli)){ // do nothing } // order sn - String batchcode = request.getParameter("batchcode"); + String batchcode = request.getString("batchcode"); if(StringUtils.isNotBlank(batchcode)){ qmap.put("batchcode", batchcode); } //购买角色(1:购买方,2:委托方) Integer iuserRole=2; - String userRole = request.getParameter("user_role"); + String userRole = request.getString("user_role"); if(StringUtils.isNotBlank(userRole)){ if("1".equals(userRole)){ // qmap.put("buy_islicode",userIsli); @@ -83,25 +88,26 @@ public class OrderController extends BaseController { iuserRole=1; } - String appkey=request.getParameter("appkey"); - String timestamp = request.getParameter("timestamp"); + String appkey=request.getString("appkey"); + String timestamp = request.getString("timestamp"); - String payStatus=request.getParameter("pay_status"); + String payStatus=request.getString("pay_status"); if(StringUtils.isNotBlank(payStatus)){ Integer ipaystatus= Integer.valueOf(payStatus); qmap.put("pay_status", ipaystatus); } - String closeStatus = request.getParameter("close_status"); + String closeStatus = request.getString("close_status"); if(StringUtils.isNotBlank(closeStatus)){ qmap.put("close_status", closeStatus); } - String orderStatus = request.getParameter("order_status"); + // 订单状态 + String orderStatus = request.getString("order_status"); if(StringUtils.isNotBlank(orderStatus)){ - qmap.put("order_status", orderStatus); + qmap.put("status", orderStatus); } // - String creatimeStr = request.getParameter("createtime"); + String creatimeStr = request.getString("createtime"); if(StringUtils.isNotBlank(creatimeStr)){ String jarr[]=creatimeStr.split(","); if(jarr.length>0){ @@ -109,21 +115,21 @@ public class OrderController extends BaseController { qmap.put("createtime"," createtime between '"+jarr[0]+" 00:00:00' and '"+jarr[1]+" 23:59:59'"); } } - String page = request.getParameter("page"); + String page = request.getString("page"); Integer ipage = StringUtils.isBlank(page)?1:Integer.valueOf(page); - String limit= request.getParameter("limit"); + String limit= request.getString("limit"); Integer ilimit = StringUtils.isBlank(limit)?20:Integer.valueOf(limit); // 获取订单信息 - Map odmap = orderService.queryOrder(qmap,iuserRole,ipage,ilimit); + List odlist = orderService.queryOrder(qmap,iuserRole,ipage,ilimit); long end = System.currentTimeMillis(); long howuse = (end-start)/1000l; //赋值 JSONObject outjson = new JSONObject(); - outjson.put("code","success"); + outjson.put("code","200"); outjson.put("msg","成功"); - outjson.put("data",odmap); + outjson.put("data",odlist); outjson.put("useTime",howuse+"s"); return outjson; } diff --git a/src/main/java/cn/chjyj/szwh/service/OrderService.java b/src/main/java/cn/chjyj/szwh/service/OrderService.java index 35e7a39..d1f4a39 100644 --- a/src/main/java/cn/chjyj/szwh/service/OrderService.java +++ b/src/main/java/cn/chjyj/szwh/service/OrderService.java @@ -101,7 +101,7 @@ public interface OrderService { * @param limit * @return */ - Map queryOrder(Map qmap,Integer userrole,Integer page,Integer limit); + List queryOrder(Map qmap,Integer userrole,Integer page,Integer limit); /** * 创建订单 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 c424b26..da53ce0 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java @@ -746,14 +746,13 @@ public class OrderServiceImpl implements OrderService { * @return */ @Override - public Map queryOrder(Map qmap, Integer userrole, Integer page, Integer limit) { + public List 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); - // - Map outmap = new HashMap<>(); + //最后的结果返回list + List outlist =new ArrayList(); for (Order od : orderList) { Map retmap = new HashMap<>(); //订单用户信息 @@ -775,14 +774,14 @@ public class OrderServiceImpl implements OrderService { //固定 entrustAmount = accountRatioDetail.getAmount(); } + BigDecimal totalCloseMoney = new BigDecimal("0.00"); //总额度 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); } else { // 保留2位小数,向上 四舍五入 - BigDecimal rate = entrustAmount.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP); + 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); @@ -791,23 +790,65 @@ public class OrderServiceImpl implements OrderService { BigDecimal totalMoney = new BigDecimal(0); BigDecimal totalServiceCharge = new BigDecimal(0); + // 处理订单商品返回json格式 + List odgList = new ArrayList(); //订单商品 List orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(od.getBatchcode()); for (OrderGoodsDetail ogd : orderGoodsDetailList) { + Map odgmap =new HashMap(); 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", "-"); + // 查询委托方信息 + OrderUser entrUser = orderUserMapper.getUserOrder(ogd.getBatchcode(),ogd.getIslicode()); + if(entrUser!=null){ //not null + odgmap.put("entrust_name",entrUser.getName()); + odgmap.put("attesttime",entrUser.getAttesttime()); + odgmap.put("registertime",entrUser.getRegistertime()); + odgmap.put("userType",entrUser.getUserType()); + odgmap.put("authType",entrUser.getAuthType()); + odgmap.put("state",entrUser.getState()); + } + //查询商品状态 + Goods tgoods = goodsMapper.getGoodsByIsli(ogd.getGoodsIslicode()); + int igoodsStatus=4; //默认 + if(tgoods!=null){ + igoodsStatus = tgoods.getGoodsStatus(); + } + odgmap.put("goods_status",igoodsStatus); + + //如果是委托方 + if(userrole==2){ + if (entrustAmount.compareTo(new BigDecimal(1))!=0) { + totalCloseMoney = totalCloseMoney.add(ogd.getMoney()); + }else{ + BigDecimal tmp = entrustAmount.divide(new BigDecimal("100")).setScale(2); + totalCloseMoney = totalCloseMoney.add(ogd.getMoney().multiply(tmp)).setScale(2); + } + } + + // 检查委托信息 + if(ogd.getGoodsEntrust()==1 || (ogd.getChargesType()==1 && ogd.getGoodsEntrust()==2)){ + odgmap.put("transaction_count","-"); } - retmap.put("entrust_month", ogd.getContractualPeriod()); + // + totalMoney = totalMoney.add(ogd.getMoney()); + totalServiceCharge = totalServiceCharge.add(ogd.getServiceCharge()); + //委托周期 + odgmap.put("entrust_month",ogd.getContractualPeriod()); + //订单商品资源 List ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString()); - retmap.put("source", orderGoodsDetailList); + List ogsJsonList = new ArrayList(); + for(OrderGoodsSource innerOgs:ogsourceList){ + Map osgsMap = JSONObject.parseObject(JSON.toJSONString(innerOgs)); + ogsJsonList.add(osgsMap); + } + // convert to json + odgmap.put("source", ogsJsonList); + // + odgList.add(odgmap); } // 商品详情 - retmap.put("order_detail", orderGoodsDetailList); + retmap.put("order_detail", odgList); // retmap.put("total_money", totalMoney); retmap.put("total_service_charge", totalServiceCharge); @@ -816,10 +857,12 @@ public class OrderServiceImpl implements OrderService { if (userrole == 1 && od.getStatus() == 3) { retmap.put("status", 4); } + retmap.put("search_close_money", new BigDecimal(0)); + retmap.put("total_close_money", new BigDecimal(0)); + + outlist.add(retmap); } - outmap.put("search_close_money", new BigDecimal(0)); - outmap.put("total_close_money", new BigDecimal(0)); - return outmap; + return outlist; } /** diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 44c5d41..31acd80 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -30,7 +30,7 @@ spring.redis.jedis.pool.max-wait=-1 spring.quartz.scheduler-name=szwhQuartz spring.quartz.job-store-type=memory # quartz 自动启动 -spring.quartz.auto-startup=false +spring.quartz.auto-startup=true # 延迟5s启动 spring.quartz.startup-delay=5 # 应用关闭时候等待完成 diff --git a/src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml b/src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml index fc318d6..027ef4a 100644 --- a/src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml +++ b/src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml @@ -109,7 +109,7 @@