From a554e5d690e2689221fc34569280872d5926443f Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期四, 18 七月 2019 16:47:40 +0800 Subject: [PATCH] 订单调整版本区分 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java | 395 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 249 insertions(+), 146 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java index 8fe4069..2a1c737 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java @@ -213,17 +213,39 @@ public void listDataFactory(AcceptData acceptData, List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid) { - List<String> listNo = new ArrayList<String>(); + List<String> listTB = new ArrayList<String>(); + List<String> listJD = new ArrayList<String>(); + List<String> listPDD = new ArrayList<String>(); for (CommonOrderVO commonOrderVO : listOrder) { - listNo.add(commonOrderVO.getOrderNo()); + Integer sourceType = commonOrderVO.getSourceType(); + if (sourceType == null) { + continue; + } else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) { + listTB.add(commonOrderVO.getOrderNo()); + } else if (sourceType == Constant.SOURCE_TYPE_JD) { + listJD.add(commonOrderVO.getOrderNo()); + } else if (sourceType == Constant.SOURCE_TYPE_PDD) { + listPDD.add(commonOrderVO.getOrderNo()); + } } - // 宸茬粡浣跨敤鍒歌鍗� - List<UserSystemCouponRecord> couponRecordList = userSystemCouponRecordService.getRecordByOrderNoList(listNo); - + List<UserSystemCouponRecord> listRecordTB = null; + if (listTB.size() > 0) { + listRecordTB = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_TAOBAO, listTB); + } + + List<UserSystemCouponRecord> listRecordJD = null; + if (listJD.size() > 0) { + listRecordJD = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_JD, listJD); + } + + List<UserSystemCouponRecord> listRecordPDD = null; + if (listPDD.size() > 0) { + listRecordPDD = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_PDD, listPDD); + } + /* 缁勫悎鍟嗗搧淇℃伅 */ for (CommonOrderVO commonOrder : listGoods) { - CommonOrderGoods goods = commonOrder.getCommonOrderGoods(); if (goods == null) { continue; @@ -231,7 +253,6 @@ String orderNo1 = commonOrder.getOrderNo(); Integer sourceType = commonOrder.getSourceType(); - for (CommonOrderVO order : listOrder) { String orderNo2 = order.getOrderNo(); Integer sourceType2 = order.getSourceType(); @@ -349,30 +370,33 @@ } else if (CommonOrder.STATE_WQ == orderState) { orderStateContent = "宸茬淮鏉�"; - /* 璁㈠崟缁存潈 鍒ゆ柇鏄惁鍏ㄩ儴缁存潈 */ - List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper - .selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛"); + Integer sourceType = order.getSourceType(); + if (sourceType != null && sourceType == Constant.SOURCE_TYPE_TAOBAO) { + /* 璁㈠崟缁存潈 鍒ゆ柇鏄惁鍏ㄩ儴缁存潈 */ + List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper + .selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛"); - boolean isPart = false;// 榛樿澶辨晥 + boolean isPart = false;// 榛樿澶辨晥 - if (listWQ != null && listWQ.size() > 0) { - BigDecimal fanTotalMoney = new BigDecimal(0); - for (TaoBaoWeiQuanOrder weiQuanOrder : listWQ) { - BigDecimal fanMoney = weiQuanOrder.getFanMoney(); - if (fanMoney != null) { - fanTotalMoney = MoneyBigDecimalUtil.add(fanTotalMoney, fanMoney); + if (listWQ != null && listWQ.size() > 0) { + BigDecimal fanTotalMoney = new BigDecimal(0); + for (TaoBaoWeiQuanOrder weiQuanOrder : listWQ) { + BigDecimal fanMoney = weiQuanOrder.getFanMoney(); + if (fanMoney != null) { + fanTotalMoney = MoneyBigDecimalUtil.add(fanTotalMoney, fanMoney); + } + } + + if (fanTotalMoney.compareTo(order.getHongBao()) < 0) { + isPart = true; } } - if (fanTotalMoney.compareTo(order.getHongBao()) < 0) { - isPart = true; + if (isPart) { + hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 閮ㄥ垎澶辨晥 + } else { + hongBaoState = HongBaoV2.STATE_SHIXIAO; // 鍏ㄩ儴澶辨晥 } - } - - if (isPart) { - hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 閮ㄥ垎澶辨晥 - } else { - hongBaoState = HongBaoV2.STATE_SHIXIAO; // 鍏ㄩ儴澶辨晥 } } orderStateMap.put("content", orderStateContent); @@ -469,116 +493,143 @@ // 闈炶嚜璐殑璁㈠崟 涓嶆樉绀鸿繑鍒┿�佸厤鍗曡鎯� if (HongBaoV2.TYPE_ZIGOU != hongBaoType) { - // 璁㈠崟鏍囪瘑 order.setSignList(signList); - } else { - - // 鏄惁鍏嶅崟鍟嗗搧 - boolean freeOrder = false; - // 鏄惁濂栧姳鎴愬姛 - boolean rewardSuccess = false; - + Integer sourceType = order.getSourceType(); // 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍 - if (couponRecordList != null && couponRecordList.size() > 0) { - - for (UserSystemCouponRecord couponRecord : couponRecordList) { - // 璁㈠崟鍙峰尮閰� - if (order.getOrderNo().equals(couponRecord.getOrderNo())) { - - String systemCouponType = couponRecord.getCouponType(); - Integer state = couponRecord.getState(); - - // 濂栧姳璁㈠崟: 涓旀垚鍔� - if (CouponTypeEnum.rebatePercentCoupon.name().equals(systemCouponType) - && UserSystemCouponRecord.STATE_SUCCESS == state) { - rewardSuccess = true; - signList.add(PIC_REWARD); // 鍔犲叆濂栧姳鎴愬姛鍥剧墖 - - } else if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType) - || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) { - - if (UserSystemCouponRecord.STATE_FREE_ON == state) { - // 鍏嶅崟涓� - freeOrder = true; - signList.add(PIC_FREE_ON); - } else if (UserSystemCouponRecord.STATE_SUCCESS == state) { - // 鍏嶅崟鎴愬姛 - freeOrder = true; - signList.add(PIC_FREE_SUCCEED); - } else if (UserSystemCouponRecord.STATE_FAIL_RULE == state - || UserSystemCouponRecord.STATE_FAIL_DRAWBACK == state) { - // 瑙勫垯涓嶅尮閰嶃�侀��娆� - freeOrder = true; - signList.add(PIC_FREE_FAIL); - } - } - - break; - } - } - } - - // 璁㈠崟鏍囪瘑 - order.setSignList(signList); - - boolean rewardOrder = false; - - int type = 1; // 1 甯歌璺宠浆椤甸潰 2寮瑰嚭閫夐」锛堝鍔卞埜锛� - if (rewardSuccess) { - // 濂栧姳鎴愬姛 - rewardOrder = true; - } else if (hasRewardCoupon && !freeOrder && HongBaoV2.TYPE_ZIGOU == hongBaoType - && HongBaoV2.STATE_YILINGQU == hongBaoState) { - // 鏈夊彲鐢ㄧ殑濂栧姳鍒� 銆侀潪鍏嶅崟璁㈠崟 銆佷笖宸插埌璐︾殑 銆佽繑鍒╄鍗� - type = 2; - rewardOrder = true; - } - - if (rewardOrder) { - ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); - // 濂栧姳鍒歌繘搴﹁鎯� - rewardStyleVO.setContent("杩斿埄濂栧姳 >"); - rewardStyleVO.setColor("#E5005C"); - rewardStyleVO.setBottomColor("#FFDCEA"); - - Map<String, Object> jumpLink = new HashMap<String, Object>(); - jumpLink.put("orderNo", order.getOrderNo()); - - Map<String, Object> jump = new HashMap<String, Object>(); - jump.put("type", type); - jump.put("params", jumpLink); - jump.put("jumpDetail", jumpDetailV2Service.getByTypeCache("rewardCouponDetail")); - - Map<String, Object> rewardMap = new HashMap<String, Object>(); - rewardMap.put("text", rewardStyleVO); - rewardMap.put("jump", jump); - - order.setRewardDetail(rewardMap); - } - - if (freeOrder) { - ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); - // 杩斿埄銆佸厤鍗曡鎯� - rewardStyleVO.setContent("鍏嶅崟璇︽儏 >"); - rewardStyleVO.setColor("#E5005C"); - rewardStyleVO.setBottomColor("#FFDCEA"); - - Map<String, Object> jumpLink = new HashMap<String, Object>(); - jumpLink.put("orderNo", order.getOrderNo()); - - Map<String, Object> jump = new HashMap<String, Object>(); - jump.put("type", 1); // 椤甸潰璺宠浆 - jump.put("params", jumpLink); - jump.put("jumpDetail", jumpDetailV2Service.getByTypeCache("freeCouponDetail")); - - Map<String, Object> rewardMap = new HashMap<String, Object>(); - rewardMap.put("text", rewardStyleVO); - rewardMap.put("jump", jump); - - order.setRewardDetail(rewardMap); + if (sourceType == null) { + setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, null, signList); + } else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) { + setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, signList); + } else if (sourceType == Constant.SOURCE_TYPE_JD) { + setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, signList); + } else if (sourceType == Constant.SOURCE_TYPE_PDD) { + setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, signList); } } + + // 閭�璇烽殣钘忚鍗曞彿 + if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType + || HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType + || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) { + String orderNo = order.getOrderNo(); + orderNo = orderNo.substring(0, orderNo.length()-6); + order.setOrderNo(orderNo + "******"); + } + } + } + + + /** + * 璁㈠崟锛� 鍏嶅崟鏍囪瘑 濂栧姳鏍囪瘑 + * @param order + * @param hasRewardCoupon + * @param hongBaoState + * @param list + * @param signList + */ + public void setSystemCouponRecord(CommonOrderVO order, boolean hasRewardCoupon, Integer hongBaoState, Integer hongBaoType, + List<UserSystemCouponRecord> list, List<String> signList) { + + // 鏄惁鍏嶅崟鍟嗗搧 + boolean freeOrder = false; + // 鏄惁濂栧姳鎴愬姛 + boolean rewardSuccess = false; + + if (list != null && list.size() > 0) { + for (UserSystemCouponRecord couponRecord : list) { + // 璁㈠崟鍙峰尮閰� + if (order.getOrderNo().equals(couponRecord.getOrderNo())) { + Integer state = couponRecord.getState(); + String systemCouponType = couponRecord.getCouponType(); + // 濂栧姳璁㈠崟: 涓旀垚鍔� + if (CouponTypeEnum.rebatePercentCoupon.name().equals(systemCouponType) + && UserSystemCouponRecord.STATE_SUCCESS == state) { + rewardSuccess = true; + signList.add(PIC_REWARD); // 鍔犲叆濂栧姳鎴愬姛鍥剧墖 + + } else if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType) + || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) { + + if (UserSystemCouponRecord.STATE_FREE_ON == state) { + // 鍏嶅崟涓� + freeOrder = true; + signList.add(PIC_FREE_ON); + } else if (UserSystemCouponRecord.STATE_SUCCESS == state) { + // 鍏嶅崟鎴愬姛 + freeOrder = true; + signList.add(PIC_FREE_SUCCEED); + } else if (UserSystemCouponRecord.STATE_FAIL_RULE == state + || UserSystemCouponRecord.STATE_FAIL_DRAWBACK == state) { + // 瑙勫垯涓嶅尮閰嶃�侀��娆� + freeOrder = true; + signList.add(PIC_FREE_FAIL); + } + } + + break; + } + } + } + + // 璁㈠崟鏍囪瘑 + order.setSignList(signList); + + boolean rewardOrder = false; + + int type = 1; // 1 甯歌璺宠浆椤甸潰 2寮瑰嚭閫夐」锛堝鍔卞埜锛� + if (rewardSuccess) { + // 濂栧姳鎴愬姛 + rewardOrder = true; + } else if (hasRewardCoupon && !freeOrder && HongBaoV2.TYPE_ZIGOU == hongBaoType + && HongBaoV2.STATE_YILINGQU == hongBaoState) { + // 鏈夊彲鐢ㄧ殑濂栧姳鍒� 銆侀潪鍏嶅崟璁㈠崟 銆佷笖宸插埌璐︾殑 銆佽繑鍒╄鍗� + type = 2; + rewardOrder = true; + } + + if (rewardOrder) { + ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); + // 濂栧姳鍒歌繘搴﹁鎯� + rewardStyleVO.setContent("杩斿埄濂栧姳 >"); + rewardStyleVO.setColor("#E5005C"); + rewardStyleVO.setBottomColor("#FFDCEA"); + + Map<String, Object> jumpLink = new HashMap<String, Object>(); + jumpLink.put("orderNo", order.getOrderNo()); + + Map<String, Object> jump = new HashMap<String, Object>(); + jump.put("type", type); + jump.put("params", jumpLink); + jump.put("jumpDetail", jumpDetailV2Service.getByTypeCache("rewardCouponDetail")); + + Map<String, Object> rewardMap = new HashMap<String, Object>(); + rewardMap.put("text", rewardStyleVO); + rewardMap.put("jump", jump); + + order.setRewardDetail(rewardMap); + } + + if (freeOrder) { + ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); + // 杩斿埄銆佸厤鍗曡鎯� + rewardStyleVO.setContent("鍏嶅崟璇︽儏 >"); + rewardStyleVO.setColor("#E5005C"); + rewardStyleVO.setBottomColor("#FFDCEA"); + + Map<String, Object> jumpLink = new HashMap<String, Object>(); + jumpLink.put("orderNo", order.getOrderNo()); + + Map<String, Object> jump = new HashMap<String, Object>(); + jump.put("type", 1); // 椤甸潰璺宠浆 + jump.put("params", jumpLink); + jump.put("jumpDetail", jumpDetailV2Service.getByTypeCache("freeCouponDetail")); + + Map<String, Object> rewardMap = new HashMap<String, Object>(); + rewardMap.put("text", rewardStyleVO); + rewardMap.put("jump", jump); + + order.setRewardDetail(rewardMap); } } @@ -908,10 +959,10 @@ @Override public List<CommonOrderVO> listQuery(long start, int count, Integer keyType, String key, Integer state, - Integer type, Integer orderState, String startTime, String endTime) throws CommonOrderException { + Integer type, Integer orderState, String startTime, String endTime, Integer source) throws CommonOrderException { List<CommonOrderVO> list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState, - startTime, endTime); + startTime, endTime, source); if (list == null) { list = new ArrayList<CommonOrderVO>(); @@ -921,14 +972,37 @@ return list; } - List<String> listNo = new ArrayList<String>(); + List<String> listTB = new ArrayList<String>(); + List<String> listJD = new ArrayList<String>(); + List<String> listPDD = new ArrayList<String>(); for (CommonOrderVO commonOrderVO : list) { - listNo.add(commonOrderVO.getOrderNo()); + Integer sourceType = commonOrderVO.getSourceType(); + if (sourceType == null) { + continue; + } else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) { + listTB.add(commonOrderVO.getOrderNo()); + } else if (sourceType == Constant.SOURCE_TYPE_JD) { + listJD.add(commonOrderVO.getOrderNo()); + } else if (sourceType == Constant.SOURCE_TYPE_PDD) { + listPDD.add(commonOrderVO.getOrderNo()); + } } - // 宸茬粡浣跨敤鍒歌鍗� - List<UserSystemCouponRecord> couponRecordList = userSystemCouponRecordService.getRecordByOrderNoList(listNo); - + List<UserSystemCouponRecord> listRecordTB = null; + if (listTB.size() > 0) { + listRecordTB = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_TAOBAO, listTB); + } + + List<UserSystemCouponRecord> listRecordJD = null; + if (listJD.size() > 0) { + listRecordJD = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_JD, listJD); + } + + List<UserSystemCouponRecord> listRecordPDD = null; + if (listPDD.size() > 0) { + listRecordPDD = userSystemCouponRecordService.getRecordByOrderNoList(Constant.SOURCE_TYPE_PDD, listPDD); + } + SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); for (CommonOrderVO order : list) { @@ -1006,12 +1080,14 @@ } } + + Integer sourceType = order.getSourceType(); // 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍 - if (couponRecordList != null && couponRecordList.size() > 0) { - for (UserSystemCouponRecord couponRecord : couponRecordList) { - // 璁㈠崟鍙峰尮閰� + if (sourceType == null) { + + } else if (sourceType == Constant.SOURCE_TYPE_TAOBAO && listRecordTB != null && listRecordTB.size() > 0) { + for (UserSystemCouponRecord couponRecord : listRecordTB) { if (order.getOrderNo().equals(couponRecord.getOrderNo())) { - String systemCouponType = couponRecord.getCouponType(); Integer couponState = couponRecord.getState(); if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType) @@ -1021,13 +1097,40 @@ order.setOtherState(1); } } - + break; + } + } + } else if (sourceType == Constant.SOURCE_TYPE_JD && listRecordJD != null && listRecordJD.size() > 0) { + for (UserSystemCouponRecord couponRecord : listRecordJD) { + if (order.getOrderNo().equals(couponRecord.getOrderNo())) { + String systemCouponType = couponRecord.getCouponType(); + Integer couponState = couponRecord.getState(); + if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType) + || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) { + if (UserSystemCouponRecord.STATE_SUCCESS == couponState) { + // 鍏嶅崟鎴愬姛 + order.setOtherState(1); + } + } + break; + } + } + } else if (sourceType == Constant.SOURCE_TYPE_PDD && listRecordPDD != null && listRecordPDD.size() > 0) { + for (UserSystemCouponRecord couponRecord : listRecordPDD) { + if (order.getOrderNo().equals(couponRecord.getOrderNo())) { + String systemCouponType = couponRecord.getCouponType(); + Integer couponState = couponRecord.getState(); + if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType) + || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) { + if (UserSystemCouponRecord.STATE_SUCCESS == couponState) { + // 鍏嶅崟鎴愬姛 + order.setOtherState(1); + } + } break; } } } - - } return list; @@ -1036,8 +1139,8 @@ @Override public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState, - String startTime, String endTime) throws CommonOrderException { - return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime); + String startTime, String endTime, Integer source) throws CommonOrderException { + return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source); } -- Gitblit v1.8.0