From 412c6d6a491a5d4d5356b059533861a127a50344 Mon Sep 17 00:00:00 2001 From: xyiege Date: Fri, 28 Oct 2022 00:44:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../szwh/controller/api/OrderController.java | 113 +++++++++++------- .../cn/chjyj/szwh/service/OrderService.java | 9 ++ .../szwh/service/impl/OrderServiceImpl.java | 86 +++++++++++++ .../java/cn/chjyj/szwh/vo/GoodsListVo.java | 38 +++++- .../cn/chjyj/szwh/mapper/OrderMapperTest.java | 1 + 5 files changed, 201 insertions(+), 46 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 18c457d..c5ced73 100644 --- a/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java +++ b/src/main/java/cn/chjyj/szwh/controller/api/OrderController.java @@ -9,7 +9,6 @@ import cn.chjyj.szwh.utils.SzOrderUtils; import cn.chjyj.szwh.utils.SzwhApiUtils; import cn.chjyj.szwh.vo.OrderDetailVo; import com.alibaba.fastjson2.JSONObject; -import com.sun.org.apache.xpath.internal.operations.Or; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -29,7 +28,7 @@ import java.util.Map; * only POST method */ @RestController -@RequestMapping(name = "/api/Order", method = RequestMethod.POST) +@RequestMapping( value = "/api/Order") public class OrderController extends BaseController { private static Log log = LogFactory.getLog(OrderController.class); @Autowired @@ -56,54 +55,77 @@ public class OrderController extends BaseController { /** * 获取订单信息 - * - * @param batchcode - * @param userIsli - * @param userRole - * @param payStatus - * @param closeStatus - * @param orderStatus - * @param creatime - * @param chargesType - * @param page - * @param pagesize + * @param request * @return */ @RequestMapping("/getOrder") - public JSONObject getOrder(@RequestParam("batchcode") String batchcode, - @RequestParam("user_isli") String userIsli, - @RequestParam("user_role") String userRole, - @RequestParam("pay_status") String payStatus, - @RequestParam("close_status") String closeStatus, - @RequestParam("order_status") String orderStatus, - @RequestParam("createtime") String creatime, - @RequestParam("charges_type") String chargesType, - @RequestParam(name = "page", defaultValue = "1") String page, - @RequestParam(name = "limit", defaultValue = "20") String pagesize - ) { - // 拼装查询条件 - Map qmap = new HashMap<>(); - qmap.put("batchcode", batchcode); - qmap.put("user_isli", userIsli); - qmap.put("user_role", userRole); - qmap.put("pay_status", payStatus); - qmap.put("close_status", closeStatus); - qmap.put("order_status", orderStatus); - qmap.put("createtime", creatime); - qmap.put("charges_type", chargesType); + public JSONObject getOrder(HttpServletRequest request ) { + long start=System.currentTimeMillis(); + Map qmap =new HashMap(); + // 用户标识 + String userIsli = request.getParameter("user_isli"); + if(StringUtils.isNotBlank(userIsli)){ + // do nothing + } + + // order sn + String batchcode = request.getParameter("batchcode"); + if(StringUtils.isNotBlank(batchcode)){ + qmap.put("batchcode", batchcode); + } + //购买角色(1:购买方,2:委托方) + Integer iuserRole=2; + String userRole = request.getParameter("user_role"); + if(StringUtils.isNotBlank(userRole)){ + if("1".equals(userRole)){ // + qmap.put("buy_islicode",userIsli); + } + iuserRole=1; + } + + String appkey=request.getParameter("appkey"); + String timestamp = request.getParameter("timestamp"); + + String payStatus=request.getParameter("pay_status"); + if(StringUtils.isNotBlank(payStatus)){ + Integer ipaystatus= Integer.valueOf(payStatus); + qmap.put("pay_status", ipaystatus); + } + + String closeStatus = request.getParameter("close_status"); + if(StringUtils.isNotBlank(closeStatus)){ + qmap.put("close_status", closeStatus); + } + String orderStatus = request.getParameter("order_status"); + if(StringUtils.isNotBlank(orderStatus)){ + qmap.put("order_status", orderStatus); + } // - int ipage = Integer.valueOf(page); - int ips = Integer.valueOf(pagesize); - int startrs = ipage > 0 ? (ipage - 1) * ips : 0; - //List olist =orderService.getOrderList(qmap, startrs, ips); - Map outmap = orderService.getOrderList(qmap,"","",startrs,ips); + String creatimeStr = request.getParameter("createtime"); + if(StringUtils.isNotBlank(creatimeStr)){ + String jarr[]=creatimeStr.split(","); + if(jarr.length>0){ + // 拆分 + qmap.put("createtime"," createtime between '"+jarr[0]+" 00:00:00' and '"+jarr[1]+" 23:59:59'"); + } + } + String page = request.getParameter("page"); + Integer ipage = StringUtils.isBlank(page)?1:Integer.valueOf(page); + + String limit= request.getParameter("limit"); + Integer ilimit = StringUtils.isBlank(limit)?20:Integer.valueOf(limit); + + // 获取订单信息 + Map odmap = orderService.queryOrder(qmap,iuserRole,ipage,ilimit); + long end = System.currentTimeMillis(); + long howuse = (end-start)/1000l; //赋值 - jsonObject.put("code","200"); - jsonObject.put("data",outmap); - jsonObject.put("msg","success"); - jsonObject.put("page",page); - jsonObject.put("limit",pagesize); - return jsonObject; + JSONObject outjson = new JSONObject(); + outjson.put("code","success"); + outjson.put("msg","成功"); + outjson.put("data",odmap); + outjson.put("useTime",howuse+"s"); + return outjson; } /** @@ -167,6 +189,7 @@ public class OrderController extends BaseController { */ @RequestMapping("/getTicket") public JSONObject getTicket() { + jsonObject.put("msg",System.currentTimeMillis()); 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 90c70f3..bf9c4f1 100644 --- a/src/main/java/cn/chjyj/szwh/service/OrderService.java +++ b/src/main/java/cn/chjyj/szwh/service/OrderService.java @@ -91,4 +91,13 @@ public interface OrderService { * @return */ public String buyFindGoods(String userIsli,String goodsIsli,int userYears); + + /** + * 查询订单 + * @param qmap + * @param page + * @param limit + * @return + */ + Map 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 e2820b5..8b5cdfb 100644 --- a/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/chjyj/szwh/service/impl/OrderServiceImpl.java @@ -9,6 +9,7 @@ import cn.chjyj.szwh.utils.SzFileUtils; import cn.chjyj.szwh.vo.OrderDetailVo; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.sun.org.apache.xpath.internal.operations.Or; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.DefaultTransactionDefinition; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; @@ -527,6 +529,90 @@ public class OrderServiceImpl implements OrderService { return null; } + /** + * 输出条件查询订单 + * @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; + + //订单结算 todo + + List orderList = orderMapper.getOrderList(qmap,start,limit); + // + 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()); + // 分配情况 + AccountRatioSetting accountRatioSetting = accountRatioSettingMapper.getAccRatioSettingById(od.getAccountRatioId()); + AccountRatioDetail accountRatioDetail = accountRatioDetailMapper.getAccRatioDetailByIdRole(accountRatioSetting.getId(),1); + BigDecimal entrustAmount=new BigDecimal(0); + if(accountRatioDetail.getCalculate()==1){ + //并列结算 + entrustAmount =accountRatioDetail.getRatio(); + }else{ + //固定 + entrustAmount =accountRatioDetail.getAmount(); + } + //总额度 + 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); + totalCloseMoney = totalCloseMoney.add(od.getTotalMoney().multiply(rate)).setScale(2, RoundingMode.HALF_UP); + } + retmap.put("close_money",totalCloseMoney); + } + // + 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); + // 如果是转让 + if(ogd.getGoodsEntrust()==1){ + retmap.put("transaction_count","-"); + } + retmap.put("entrust_month",ogd.getContractualPeriod()); + //订单商品资源 + List ogsourceList = orderGoodsSourceMapper.getOrderGoodsSourceList(ogd.getId().toString()); + retmap.put("source",orderGoodsDetailList); + } + // 商品详情 + retmap.put("order_detail",orderGoodsDetailList); + // + retmap.put("total_money",totalMoney); + retmap.put("total_service_charge",totalServiceCharge); + + // for buyer + 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)); + return outmap; + } + /** * 结算 * @param order diff --git a/src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java b/src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java index 9c2ff75..4454e75 100644 --- a/src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java +++ b/src/main/java/cn/chjyj/szwh/vo/GoodsListVo.java @@ -24,7 +24,11 @@ public class GoodsListVo { private Integer goods_entrust;//委托类型 private BigDecimal price; //gd 价格 private String canceltime; //撤销时间 - private String goods_ownership_str; + private String goods_ownership_str; //权益 + private String goods_image; + private Integer stock; + private Integer sale_count; + private Integer click_count; public Integer getId() { return id; @@ -161,4 +165,36 @@ public class GoodsListVo { public void setGoods_ownership_str(String goods_ownership_str) { this.goods_ownership_str = goods_ownership_str; } + + public String getGoods_image() { + return goods_image; + } + + public void setGoods_image(String goods_image) { + this.goods_image = goods_image; + } + + public Integer getStock() { + return stock; + } + + public void setStock(Integer stock) { + this.stock = stock; + } + + public Integer getSale_count() { + return sale_count; + } + + public void setSale_count(Integer sale_count) { + this.sale_count = sale_count; + } + + public Integer getClick_count() { + return click_count; + } + + public void setClick_count(Integer click_count) { + this.click_count = click_count; + } } diff --git a/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java b/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java index 89f01fe..1eace8f 100644 --- a/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java +++ b/src/test/java/cn/chjyj/szwh/mapper/OrderMapperTest.java @@ -36,6 +36,7 @@ public class OrderMapperTest { Map wcon=new HashMap<>(); //wcon.put("buy_islicode","999998-000000001923-9"); //wcon.put("status",5); + wcon.put("buy_islicode","899998-000000001640-3"); int starrs=0; int pagesize=10;