From 573c491b4a1ba60e12a5678a01c1546c0077c1ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 30 七月 2019 09:07:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java | 555 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 403 insertions(+), 152 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 4693672..d8e6169 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 @@ -17,28 +17,44 @@ import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper; import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper; +import com.yeshi.fanli.dao.mybatis.order.CommonOrderTradeIdMapMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; +import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord; +import com.yeshi.fanli.entity.goods.CommonGoods; +import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.jd.JDOrder; +import com.yeshi.fanli.entity.jd.JDOrderItem; import com.yeshi.fanli.entity.order.CommonOrder; import com.yeshi.fanli.entity.order.CommonOrderGoods; +import com.yeshi.fanli.entity.order.CommonOrderTradeIdMap; +import com.yeshi.fanli.entity.order.HongBaoOrder; +import com.yeshi.fanli.entity.pdd.PDDOrder; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder; import com.yeshi.fanli.exception.order.CommonOrderException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemCouponService; +import com.yeshi.fanli.service.inter.goods.CommonGoodsService; +import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoOrderService; import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.CommonOrderGoodsFactory; +import com.yeshi.fanli.util.factory.goods.CommonOrderFactory; +import com.yeshi.fanli.util.jd.JDApiUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -59,31 +75,41 @@ @Resource private CommonOrderGoodsMapper commonOrderGoodsMapper; - + @Resource private JumpDetailV2Service jumpDetailV2Service; - + @Resource private ConfigService configService; - + @Resource private UserSystemCouponService userSystemCouponService; - + @Resource private UserSystemCouponRecordService userSystemCouponRecordService; - + @Resource private SystemCouponService systemCouponService; - - + + @Resource + private HongBaoV2Service hongBaoV2Service; + + @Resource + private CommonOrderTradeIdMapMapper commonOrderTradeIdMapMapper; + + @Resource + private CommonGoodsService commonGoodsService; + + @Resource + private HongBaoOrderService hongBaoOrderService; + // 濂栧姳璁㈠崟鍥剧墖 - public final static String PIC_REWARD= "http://img.flqapp.com/resource/order/order_state_reward.png"; - + public final static String PIC_REWARD = "http://img.flqapp.com/resource/order/order_state_reward.png"; + // 鍏嶅崟鐘舵�佸浘鐗� public final static String PIC_FREE_ON = "http://img.flqapp.com/resource/order/order_state_freeing.png"; - public final static String PIC_FREE_FAIL = "http://img.flqapp.com/resource/order/order_state_free_fail.png"; - public final static String PIC_FREE_SUCCEED = "http://img.flqapp.com/resource/order/order_state_free_suc.png"; - + public final static String PIC_FREE_FAIL = "http://img.flqapp.com/resource/order/order_state_free_fail.png"; + public final static String PIC_FREE_SUCCEED = "http://img.flqapp.com/resource/order/order_state_free_suc.png"; @Override public int insert(CommonOrder record) { @@ -156,8 +182,7 @@ return listOrder; } - - + @Override public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day) { return commonOrderMapper.countHistoryOrder(uid, day); @@ -188,14 +213,13 @@ public void listDataFactory(List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid) { List<String> listNo = new ArrayList<String>(); - for (CommonOrderVO commonOrderVO: listOrder) { + for (CommonOrderVO commonOrderVO : listOrder) { listNo.add(commonOrderVO.getOrderNo()); } - + // 宸茬粡浣跨敤鍒歌鍗� List<UserSystemCouponRecord> couponRecordList = userSystemCouponRecordService.getRecordByOrderNoList(listNo); - - + /* 缁勫悎鍟嗗搧淇℃伅 */ for (CommonOrderVO commonOrder : listGoods) { @@ -249,7 +273,7 @@ totalSettlement = commonOrder.getTotalPayment(); } // 瀹炰粯娆� - commonGoodsVO.setActualPay("瀹炰粯娆撅細楼" + totalSettlement); + commonGoodsVO.setActualPay("浠樻閲戦锛毬�" + totalSettlement); listOrderGoods.add(commonGoodsVO); @@ -270,10 +294,10 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); SimpleDateFormat formatday = new SimpleDateFormat("yyyy.MM.dd"); - + // 鏄惁瀛樺湪濂栧姳鍒� boolean hasRewardCoupon = userSystemCouponService.hasRewardCoupon(uid); - + /* 缁勭粐璁㈠崟鐘舵�� 绛変俊鎭� */ for (CommonOrderVO order : listOrder) { @@ -365,7 +389,7 @@ order.setOrderOrigin("2"); order.setHongBaoTypePic(CommonOrder.TYPE_SHARE); signList.add(CommonOrder.TYPE_SHARE); - + } else if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType || HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) { @@ -435,115 +459,116 @@ hongBaoMap.put("content", hongbaoInfo + " 楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString()); hongBaoMap.put("fontColor", hongbaoInfoFontColor); order.setHongBaoInfo(hongBaoMap); - + // 闈炶嚜璐殑璁㈠崟 涓嶆樉绀鸿繑鍒┿�佸厤鍗曡鎯� if (HongBaoV2.TYPE_ZIGOU != hongBaoType) { // 璁㈠崟鏍囪瘑 order.setSignList(signList); - + } else { - + // 鏄惁鍏嶅崟鍟嗗搧 boolean freeOrder = false; // 鏄惁濂栧姳鎴愬姛 boolean rewardSuccess = false; - + // 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍 if (couponRecordList != null && couponRecordList.size() > 0) { - - for (UserSystemCouponRecord couponRecord: couponRecordList) { + + 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) { + + if (UserSystemCouponRecord.STATE_FREE_ON == state) { // 鍏嶅崟涓� - freeOrder = true; - signList.add(PIC_FREE_ON); + 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) { + } 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寮瑰嚭閫夐」锛堝鍔卞埜锛� + + int type = 1; // 1 甯歌璺宠浆椤甸潰 2寮瑰嚭閫夐」锛堝鍔卞埜锛� if (rewardSuccess) { // 濂栧姳鎴愬姛 - rewardOrder = true; - } else if(hasRewardCoupon && !freeOrder && HongBaoV2.TYPE_ZIGOU == hongBaoType && - HongBaoV2.STATE_YILINGQU == hongBaoState) { + rewardOrder = true; + } else if (hasRewardCoupon && !freeOrder && HongBaoV2.TYPE_ZIGOU == hongBaoType + && HongBaoV2.STATE_YILINGQU == hongBaoState) { // 鏈夊彲鐢ㄧ殑濂栧姳鍒� 銆侀潪鍏嶅崟璁㈠崟 銆佷笖宸插埌璐︾殑 銆佽繑鍒╄鍗� type = 2; - rewardOrder = true; + rewardOrder = true; } - - if (rewardOrder) { + + if (rewardOrder) { ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); // 濂栧姳鍒歌繘搴﹁鎯� rewardStyleVO.setContent("杩斿埄濂栧姳 >"); - rewardStyleVO.setColor( "#E5005C"); + rewardStyleVO.setColor("#E5005C"); rewardStyleVO.setBottomColor("#FFDCEA"); - - Map<String, Object> jumpLink = new HashMap<String,Object>(); + + 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); - + + 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) { + + if (freeOrder) { ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); // 杩斿埄銆佸厤鍗曡鎯� rewardStyleVO.setContent("鍏嶅崟璇︽儏 >"); - rewardStyleVO.setColor( "#E5005C"); + rewardStyleVO.setColor("#E5005C"); rewardStyleVO.setBottomColor("#FFDCEA"); - - Map<String, Object> jumpLink = new HashMap<String,Object>(); + + Map<String, Object> jumpLink = new HashMap<String, Object>(); jumpLink.put("orderNo", order.getOrderNo()); - - Map<String, Object> jump = new HashMap<String,Object>(); + + 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); - + 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); } } @@ -577,65 +602,220 @@ wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_BUFENYOUXIAO; for (TaoBaoOrder taoBaoOrder : taoBaoOrders) { - CommonOrder commonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(taoBaoOrder.getOrderId(), - Constant.SOURCE_TYPE_TAOBAO, taoBaoOrder.getOrderBy()); - if (commonOrder == null)// 鏂板 + CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder); + CommonOrderGoods cog = new CommonOrderGoods(); + cog.setGoodsId(taoBaoOrder.getAuctionId() + ""); + cog.setGoodsType(Constant.SOURCE_TYPE_TAOBAO); + newCommonOrder.setCommonOrderGoods(cog); + newCommonOrder.setStateWholeOrder(wholeOrderState); + // 璁㈠崟鍟嗗搧鎻掑叆 + List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper.listByGoodsIdAndGoodsType(cog.getGoodsId(), + cog.getGoodsType()); + if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧 { - commonOrder = TaoBaoOrderUtil.convert(taoBaoOrder); - CommonOrderGoods goods = new CommonOrderGoods(); - goods.setGoodsId(taoBaoOrder.getAuctionId() + ""); - goods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO); - - // 鍟嗗搧鏄惁宸茬粡鎻掑叆 - List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper - .listByGoodsIdAndGoodsType(goods.getGoodsId(), goods.getGoodsType()); - if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧 - { - TaoBaoGoodsBrief taoBaoGoods = null; + TaoBaoGoodsBrief taoBaoGoods = null; + try { + taoBaoGoods = TaoKeApiUtil.getSimpleGoodsInfo(taoBaoOrder.getAuctionId()); + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + LogHelper.errorDetailInfo(e, "AUCTIONID:" + taoBaoOrder.getAuctionId(), ""); try { - taoBaoGoods = TaoKeApiUtil.getSimpleGoodsInfo(taoBaoOrder.getAuctionId()); - } catch (TaobaoGoodsDownException e) { - e.printStackTrace(); - taoBaoGoods=TaoBaoUtil.getSimpleGoodsBrief(taoBaoOrder.getAuctionId()); + taoBaoGoods = TaoBaoUtil.getSimpleGoodsBrief(taoBaoOrder.getAuctionId()); + } catch (Exception e1) { + CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType( + taoBaoOrder.getAuctionId(), Constant.SOURCE_TYPE_TAOBAO); + if (commonGoods != null) + taoBaoGoods = TaoBaoUtil.convert(commonGoods); } - if (taoBaoGoods != null) { - goods = CommonOrderGoodsFactory.create(taoBaoGoods); - } - goods.setCreateTime(new Date()); - goods.setUpdateTime(new Date()); - commonOrderGoodsMapper.insertSelective(goods); - } else - goods.setId(commonGoodsList.get(commonGoodsList.size() - 1).getId()); - commonOrder.setCommonOrderGoods(goods); - commonOrder.setUserInfo(new UserInfo(uid)); - commonOrder.setCreateTime(new Date()); - commonOrder.setStateWholeOrder(wholeOrderState); - commonOrderMapper.insertSelective(commonOrder); - - commonOrderList.add(commonOrder); - continue; - } else {// 淇敼 - // 宸茬粡缁撶畻鎴栬�呭凡缁忓け鏁堢殑璁㈠崟涓嶅鐞� - if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_SX) { - commonOrderList.add(commonOrder); - continue; } - CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder); - CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId()); - updateCommonOrder.seteIncome(newCommonOrder.geteIncome()); - updateCommonOrder.setEstimate(newCommonOrder.getEstimate()); - updateCommonOrder.setPayment(newCommonOrder.getPayment()); - updateCommonOrder.setSettlement(newCommonOrder.getSettlement()); - updateCommonOrder.setSettleTime(newCommonOrder.getSettleTime()); - updateCommonOrder.setState(newCommonOrder.getState()); - updateCommonOrder.setStateWholeOrder(wholeOrderState); - updateCommonOrder.setUpdateTime(new Date()); - commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder); - commonOrderList.add(commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId())); - continue; + if (taoBaoGoods != null) { + cog = CommonOrderGoodsFactory.create(taoBaoGoods); + } + cog.setCreateTime(new Date()); + cog.setUpdateTime(new Date()); + commonOrderGoodsMapper.insertSelective(cog); } + newCommonOrder.setUserInfo(new UserInfo(uid)); + commonOrderList.add(addCommonOrder(newCommonOrder)); } return commonOrderList; + } + + @Transactional + @Override + public List<CommonOrder> addPDDOrder(List<PDDOrder> pddOrderList, Long uid) throws CommonOrderException { + List<CommonOrder> commonOrderList = new ArrayList<>(); + // 鍒ゆ柇鎵�鏈夌殑璁㈠崟鐘舵�� + int invalidCount = 0; + for (PDDOrder order : pddOrderList) { + if (order.getOrderStatus() == -1 || order.getOrderStatus() == 4 || order.getOrderStatus() == 8) { + invalidCount++; + } + } + // 鑾峰彇鏁翠綋璁㈠崟鐨勭姸鎬� + int wholeOrderState = 0; + if (pddOrderList.size() == invalidCount) + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_SHIXIAO; + else if (invalidCount == 0) + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_YOUXIAO; + else + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_BUFENYOUXIAO; + + for (PDDOrder pddOrder : pddOrderList) { + CommonOrder newCommonOrder = CommonOrderFactory.create(pddOrder); + CommonOrderGoods cog = new CommonOrderGoods(); + cog.setGoodsId(pddOrder.getGoodsId() + ""); + cog.setGoodsType(Constant.SOURCE_TYPE_PDD); + newCommonOrder.setCommonOrderGoods(cog); + newCommonOrder.setStateWholeOrder(wholeOrderState); + // 璁㈠崟鍟嗗搧鎻掑叆 + List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper.listByGoodsIdAndGoodsType(cog.getGoodsId(), + cog.getGoodsType()); + if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧 + { + PDDGoodsDetail pddGoods = null; + pddGoods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(cog.getGoodsId())); + if (pddGoods != null) { + cog = CommonOrderGoodsFactory.create(pddGoods); + } + cog.setCreateTime(new Date()); + cog.setUpdateTime(new Date()); + commonOrderGoodsMapper.insertSelective(cog); + newCommonOrder.setCommonOrderGoods(cog); + } + newCommonOrder.setUserInfo(new UserInfo(uid)); + commonOrderList.add(addCommonOrder(newCommonOrder)); + } + return commonOrderList; + } + + @Transactional + @Override + public List<CommonOrder> addJDOrder(JDOrder jdOrder, Long uid) throws CommonOrderException { + List<CommonOrder> commonOrderList = new ArrayList<>(); + // 鍒ゆ柇鎵�鏈夌殑璁㈠崟鐘舵�� + int invalidCount = 0; + for (JDOrderItem tb : jdOrder.getOrderItemList()) { + if (tb.getValidCode() < 16) { + invalidCount++; + } + } + + // 鑾峰彇鏁翠綋璁㈠崟鐨勭姸鎬� + int wholeOrderState = 0; + if (jdOrder.getOrderItemList().size() == invalidCount) + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_SHIXIAO; + else if (invalidCount == 0) + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_YOUXIAO; + else + wholeOrderState = CommonOrder.STATE_WHOLE_ORDER_BUFENYOUXIAO; + + List<JDOrderItem> orderItemList = jdOrder.getOrderItemList(); + jdOrder.setOrderItemList(null); + + for (JDOrderItem itemOrder : orderItemList) { + itemOrder.setOrder(jdOrder); + CommonOrder newCommonOrder = CommonOrderFactory.create(itemOrder); + CommonOrderGoods cog = new CommonOrderGoods(); + cog.setGoodsId(itemOrder.getSkuId() + ""); + cog.setGoodsType(Constant.SOURCE_TYPE_JD); + newCommonOrder.setCommonOrderGoods(cog); + newCommonOrder.setStateWholeOrder(wholeOrderState); + // 璁㈠崟鍟嗗搧鎻掑叆 + List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper.listByGoodsIdAndGoodsType(cog.getGoodsId(), + cog.getGoodsType()); + if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧 + { + JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId()); + + if (goods != null) { + cog = CommonOrderGoodsFactory.create(goods); + } + cog.setCreateTime(new Date()); + cog.setUpdateTime(new Date()); + commonOrderGoodsMapper.insertSelective(cog); + } + newCommonOrder.setUserInfo(new UserInfo(uid)); + commonOrderList.add(addCommonOrder(newCommonOrder)); + } + return commonOrderList; + } + + /** + * 娣诲姞璁㈠崟 + * + * @param commonOrder + */ + @Transactional + private CommonOrder addCommonOrder(CommonOrder commonOrder) throws CommonOrderException { + // 鍒ゆ柇鍟嗗搧鏄惁瀛樺湪 + if (commonOrder == null) + throw new CommonOrderException(1, "璁㈠崟涓虹┖"); + if (commonOrder.getUserInfo() == null) + throw new CommonOrderException(2, "璁㈠崟鐢ㄦ埛涓虹┖"); + + if (commonOrder.getCommonOrderGoods() == null || commonOrder.getCommonOrderGoods().getGoodsId() == null + || commonOrder.getCommonOrderGoods().getGoodsType() == null) + throw new CommonOrderException(3, "璁㈠崟鍟嗗搧涓虹┖"); + // 涓嶅瓨鍦ㄥ氨鎻掑叆锛屽瓨鍦ㄥ氨涓嶇 + CommonOrderGoods goods = commonOrder.getCommonOrderGoods(); + + // 涔嬪墠涓嶅瓨鍦ㄤ簬鏁版嵁搴� + if (commonOrder.getCommonOrderGoods().getId() == null) { + List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper + .listByGoodsIdAndGoodsType(goods.getGoodsId(), goods.getGoodsType()); + + if (commonGoodsList == null || commonGoodsList.size() < 1) {// 涓嶅瓨鍦� + commonOrderGoodsMapper.insertSelective(goods); + } else {// 瀛樺湪 + goods = commonGoodsList.get(0); + } + if (goods.getId() == null) + throw new CommonOrderException(4, "鍟嗗搧鎻掑叆澶辫触"); + commonOrder.setCommonOrderGoods(goods); + } + + CommonOrder oldCommonOrder = null; + + if (!StringUtil.isNullOrEmpty(commonOrder.getTradeId())) + oldCommonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(commonOrder.getSourceType(), + commonOrder.getTradeId()); + else + oldCommonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(commonOrder.getOrderNo(), + commonOrder.getSourceType(), commonOrder.getOrderBy()); + + if (oldCommonOrder == null)// 鏂板 + { + commonOrder.setCreateTime(new Date()); + commonOrderMapper.insertSelective(commonOrder); + // 鎻掑叆鏄犲皠锛屼繚璇佷氦鏄揑D鐨勫畬鏁存�� + commonOrderTradeIdMapMapper.insertSelective(new CommonOrderTradeIdMap(commonOrder.getId(), + commonOrder.getTradeId(), new Date(), commonOrder.getSourceType())); + return commonOrder; + } else {// 淇敼 + // 宸茬粡缁撶畻锛屽凡缁忓け鏁堬紝鐘舵�佹湭鏀瑰彉鐨勮鍗曚笉澶勭悊 + if (oldCommonOrder.getState() == CommonOrder.STATE_JS || oldCommonOrder.getState() == CommonOrder.STATE_SX + || (oldCommonOrder.getState().intValue() == commonOrder.getState())) { + return oldCommonOrder; + } + // 浜ゆ槗ID涓�鑷存墠淇敼 + if (commonOrder.getTradeId() != null + && commonOrder.getTradeId().equalsIgnoreCase(oldCommonOrder.getTradeId())) { + CommonOrder updateCommonOrder = new CommonOrder(oldCommonOrder.getId()); + updateCommonOrder.seteIncome(commonOrder.geteIncome()); + updateCommonOrder.setEstimate(commonOrder.getEstimate()); + updateCommonOrder.setPayment(commonOrder.getPayment()); + updateCommonOrder.setSettlement(commonOrder.getSettlement()); + updateCommonOrder.setSettleTime(commonOrder.getSettleTime()); + updateCommonOrder.setState(commonOrder.getState()); + updateCommonOrder.setStateWholeOrder(commonOrder.getStateWholeOrder()); + updateCommonOrder.setUpdateTime(new Date()); + updateCommonOrder.setTradeId(commonOrder.getTradeId()); + commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder); + return commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId()); + } else + return oldCommonOrder; + } } @Override @@ -794,6 +974,29 @@ order.setHongBaoState(3); } + List<HongBaoV2> listhb = hongBaoV2Service.listChildrenById(order.getHongbaoId()); + if (listhb != null && listhb.size() > 0) { + if (listhb.size() == 1) { + UserInfo userInfo = listhb.get(0).getUserInfo(); + if (userInfo != null) { + order.setLevelOneId(userInfo.getId() + ""); + order.setLevelOneMoney(listhb.get(0).getMoney() + ""); + } + } else if (listhb.size() == 2) { + UserInfo userInfo = listhb.get(0).getUserInfo(); + if (userInfo != null) { + order.setLevelOneId(userInfo.getId() + ""); + order.setLevelOneMoney(listhb.get(0).getMoney() + ""); + } + + UserInfo userInfo2 = listhb.get(1).getUserInfo(); + if (userInfo2 != null) { + order.setLevelTwoId(userInfo2.getId() + ""); + order.setLevelTwoMoney(listhb.get(1).getMoney() + ""); + } + } + } + } return list; @@ -807,7 +1010,7 @@ } @Override - public CommonOrderVO getInfoByOrderNo(Long uid,String orderNo) throws CommonOrderException{ + public CommonOrderVO getInfoByOrderNo(Long uid, String orderNo) throws CommonOrderException { List<CommonOrderVO> list = getOrderByUid(1, uid, null, null, null, orderNo, null, null, null); if (list == null || list.size() == 0) { return null; @@ -815,9 +1018,10 @@ return list.get(0); } } - + @Override - public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState) throws CommonOrderException { + public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState) + throws CommonOrderException { CommonOrderVO commonOrderVO = commonOrderMapper.getCommonOrderByOrderNo(uid, orderNo, orderState); // 璁㈠崟淇℃伅涓虹┖ @@ -887,7 +1091,7 @@ totalSettlement = commonOrder.getTotalPayment(); } // 瀹炰粯娆� - commonGoodsVO.setActualPay("瀹炰粯娆撅細楼" + totalSettlement); + commonGoodsVO.setActualPay("浠樻閲戦锛毬�" + totalSettlement); listOrderGoods.add(commonGoodsVO); @@ -907,9 +1111,10 @@ return commonOrderVO; } - + @Override - public List<CommonOrderVO> getCouponHongbaoByOrderNo(Long uid, Integer hongBaoState, String orderNo) throws CommonOrderException { + public List<CommonOrderVO> getCouponHongbaoByOrderNo(Long uid, Integer hongBaoState, String orderNo) + throws CommonOrderException { List<CommonOrderVO> listOrder = commonOrderMapper.getCouponHongbaoByOrderNo(uid, hongBaoState, orderNo); @@ -932,38 +1137,84 @@ return listOrder; } - @Override public JSONObject getRewardJumpInfo(String orderNo) { - + JSONObject map = new JSONObject(); // 璁㈠崟鏍囪瘑 List<String> signList = new ArrayList<String>(); signList.add(CommonOrder.TYPE_FANLI); signList.add(PIC_REWARD); // 鍔犲叆濂栧姳鎴愬姛鍥剧墖 map.put("signList", signList); - - + ClientTextStyleVO rewardStyleVO = new ClientTextStyleVO(); // 濂栧姳鍒歌繘搴﹁鎯� rewardStyleVO.setContent("杩斿埄濂栧姳 >"); - rewardStyleVO.setColor( "#E5005C"); + rewardStyleVO.setColor("#E5005C"); rewardStyleVO.setBottomColor("#FFDCEA"); - - Map<String, Object> jumpLink = new HashMap<String,Object>(); + + Map<String, Object> jumpLink = new HashMap<String, Object>(); jumpLink.put("orderNo", orderNo); - - Map<String, Object> jump = new HashMap<String,Object>(); - jump.put("type", 1); - 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); - - map.put("rewardDetail", rewardMap); - + + Map<String, Object> jump = new HashMap<String, Object>(); + jump.put("type", 1); + 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); + + map.put("rewardDetail", rewardMap); + return map; } + + @Override + public CommonOrder selectBySourceTypeAndTradeId(int sourceType, String tradeId) { + + return commonOrderMapper.selectBySourceTypeAndTradeId(sourceType, tradeId); + } + + @Transactional + @Override + public void deleteErrorCommonOrder(Long coId) { + // 鏌ヨ鏄惁杩斿埄鍒拌处 + HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(coId); + if (hongBaoOrder.getHongBaoV2().getState() == HongBaoV2.STATE_YILINGQU) + return; + List<HongBaoV2> hongBaoList = hongBaoV2Service.listChildrenById(hongBaoOrder.getHongBaoV2().getId()); + boolean canDelete = true; + for (HongBaoV2 child : hongBaoList) + if (child.getState() == HongBaoV2.STATE_YILINGQU) { + canDelete = false; + break; + } + // 涓嶈兘鍒犻櫎 + if (!canDelete) + return; + + // 鍒犻櫎child + for (HongBaoV2 child : hongBaoList) + hongBaoV2Service.deleteByPrimaryKey(child.getId()); + // 鍒犻櫎涓荤孩鍖� + hongBaoV2Service.deleteByPrimaryKey(hongBaoOrder.getHongBaoV2().getId()); + // 鍒犻櫎hongbaoOrder + hongBaoOrderService.deleteByPrimaryKey(hongBaoOrder.getId()); + // 鍒犻櫎CommonOrder + commonOrderMapper.deleteByPrimaryKey(hongBaoOrder.getCommonOrder().getId()); + } + + @Override + public List<CommonOrder> listBySourceTypeAndTradeId(int sourceType, String tradeId) { + return commonOrderMapper.listBySourceTypeAndTradeId(sourceType, tradeId); + } + + @Override + public List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(int sourceType, Integer state, Long minTime, + Long maxTime, int page, int pageSize) { + return commonOrderMapper.listBySourceTypeAndStateAndThirdCrateTime(sourceType, state, minTime, maxTime, + (page - 1) * pageSize, pageSize); + } + } -- Gitblit v1.8.0