From 21a5d62894e6cca7d536ffcc1d63898ffaf16185 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 25 二月 2019 11:41:17 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java | 324 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 321 insertions(+), 3 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 9c0ae0f..1300046 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 @@ -20,22 +20,32 @@ import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; 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.order.CommonOrder; import com.yeshi.fanli.entity.order.CommonOrderGoods; +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.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.order.CommonOrderService; +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.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.vo.msg.ClientTextStyleVO; import com.yeshi.fanli.vo.order.CommonOrderGoodsVO; import com.yeshi.fanli.vo.order.CommonOrderVO; + +import net.sf.json.JSONObject; @Service public class CommonOrderServiceImpl implements CommonOrderService { @@ -48,6 +58,31 @@ @Resource private CommonOrderGoodsMapper commonOrderGoodsMapper; + + @Resource + private JumpDetailV2Service jumpDetailV2Service; + + @Resource + private ConfigService configService; + + @Resource + private UserSystemCouponService userSystemCouponService; + + @Resource + private UserSystemCouponRecordService userSystemCouponRecordService; + + @Resource + private SystemCouponService systemCouponService; + + + // 濂栧姳璁㈠崟鍥剧墖 + public final static String PIC_REWARD= "http://192.168.1.200/icon/jl.png"; + + // 鍏嶅崟鐘舵�佸浘鐗� + public final static String PIC_FREE_ON = "http://192.168.1.200/icon/state1.png"; + public final static String PIC_FREE_FAIL = "http://192.168.1.200/icon/state2.png"; + public final static String PIC_FREE_SUCCEED = "http://192.168.1.200/icon/state3.png"; + @Override public int insert(CommonOrder record) { @@ -120,7 +155,8 @@ return listOrder; } - + + @Override public Map<String, BigDecimal> countHistoryOrder(Long uid, Integer day) { return commonOrderMapper.countHistoryOrder(uid, day); @@ -150,6 +186,15 @@ public void listDataFactory(List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods, Long uid) { + List<String> listNo = new ArrayList<String>(); + for (CommonOrderVO commonOrderVO: listOrder) { + listNo.add(commonOrderVO.getOrderNo()); + } + + // 宸茬粡浣跨敤鍒歌鍗� + List<UserSystemCouponRecord> couponRecordList = userSystemCouponRecordService.getRecordByOrderNoList(listNo); + + /* 缁勫悎鍟嗗搧淇℃伅 */ for (CommonOrderVO commonOrder : listGoods) { @@ -224,7 +269,11 @@ 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) { Date thirdCreateTime = order.getThirdCreateTime(); @@ -299,6 +348,8 @@ order.setOrderState(orderStateMap); String hongbaoInfo = ""; + // 璁㈠崟鏍囪瘑 + List<String> signList = new ArrayList<String>(); /* 璁㈠崟杩斿埄绫诲瀷 杞崲 */ Integer hongBaoType = order.getHongBaoType(); if (HongBaoV2.TYPE_ZIGOU == hongBaoType || 2 == hongBaoType) { @@ -306,11 +357,14 @@ hongbaoInfo = "杩斿埄"; order.setOrderOrigin("1"); order.setHongBaoTypePic(CommonOrder.TYPE_FANLI); + signList.add(CommonOrder.TYPE_FANLI); } else if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType) { // 鍒嗕韩 hongbaoInfo = "濂栭噾"; 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) { @@ -318,6 +372,7 @@ hongbaoInfo = "濂栭噾"; order.setOrderOrigin("3"); order.setHongBaoTypePic(CommonOrder.TYPE_INVITE); + signList.add(CommonOrder.TYPE_INVITE); } String hongBaoDate = null; @@ -379,12 +434,115 @@ hongBaoMap.put("content", hongbaoInfo + " 楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString()); hongBaoMap.put("fontColor", hongbaoInfoFontColor); order.setHongBaoInfo(hongBaoMap); + + + // 鏄惁鍏嶅崟鍟嗗搧 + boolean freeOrder = false; + // 鏄惁濂栧姳鎴愬姛 + boolean rewardSuccess = false; + // 濂栧姳璁㈠崟銆佸厤鍗� + 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.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); + } + } } @Override public List<CommonOrder> listBySourceTypeAndOrderId(int sourceType, String orderId) { - return commonOrderMapper.listBySourceTypeAndOrderNo(sourceType, orderId); } @@ -638,4 +796,164 @@ return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime); } + @Override + 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; + } else { + return list.get(0); + } + } + + @Override + public CommonOrderVO getCommonOrderByOrderNo(Long uid, String orderNo, Integer orderState) throws CommonOrderException { + + CommonOrderVO commonOrderVO = commonOrderMapper.getCommonOrderByOrderNo(uid, orderNo, orderState); + // 璁㈠崟淇℃伅涓虹┖ + if (commonOrderVO == null) { + return null; + } + + List<CommonOrderVO> listOrder = new ArrayList<CommonOrderVO>(); + listOrder.add(commonOrderVO); + + // 鍟嗗搧淇℃伅 + List<CommonOrderVO> listGoods = commonOrderMapper.listOrderGoodsInfo(listOrder); + // 璁㈠崟鍟嗗搧涓虹┖ + if (listGoods == null || listGoods.size() == 0) { + return null; + } + + /* 缁勫悎鍟嗗搧淇℃伅 */ + for (CommonOrderVO commonOrder : listGoods) { + + CommonOrderGoods goods = commonOrder.getCommonOrderGoods(); + if (goods == null) { + continue; + } + + String orderNo1 = commonOrder.getOrderNo(); + Integer sourceType = commonOrder.getSourceType(); + + String orderNo2 = commonOrderVO.getOrderNo(); + Integer sourceType2 = commonOrderVO.getSourceType(); + + // 鏉ユ簮銆佽鍗曞彿鐩稿悓 + if (sourceType.equals(sourceType2) && orderNo1.equals(orderNo2)) { + // 鍔犲叆鍟嗗搧淇℃伅 + List<CommonOrderGoodsVO> listOrderGoods = commonOrderVO.getListOrderGoods(); + + CommonOrderGoodsVO commonGoodsVO = new CommonOrderGoodsVO(); + try { + PropertyUtils.copyProperties(commonGoodsVO, goods); + } catch (Exception e) { + e.printStackTrace(); + } + + String picture = commonGoodsVO.getPicture(); + if (!StringUtil.isNullOrEmpty(picture) && !picture.contains("320x320")) { + commonGoodsVO.setPicture(TbImgUtil.getTBSize320Img(picture)); + } + + Integer hongBaoType = commonOrderVO.getHongBaoType(); + // 閭�璇疯鍗曚俊鎭繚鎶� + if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType + || HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType + || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) { + Map<String, String> titleMap = new HashMap<String, String>(); + titleMap.put("content", "涓轰繚闅滅敤鎴烽殣绉侊紝鍟嗗搧淇℃伅宸查殣钘�!"); + titleMap.put("fontColor", "#888888"); + titleMap.put("bottomColor", "#E9E9E9"); + commonGoodsVO.setTitle(null); + commonGoodsVO.setGoodsTitle(titleMap); + } + + // 璐拱鏁伴噺 + commonGoodsVO.setActualCount(commonOrder.getTotalCount() + "浠�"); + + BigDecimal totalSettlement = commonOrder.getTotalSettlement(); + if (totalSettlement == null || totalSettlement.compareTo(new BigDecimal(0)) <= 0) { + totalSettlement = commonOrder.getTotalPayment(); + } + // 瀹炰粯娆� + commonGoodsVO.setActualPay("瀹炰粯娆撅細楼" + totalSettlement); + + listOrderGoods.add(commonGoodsVO); + + Integer orderType = commonOrder.getOrderType(); + if (orderType == null) { + String shopType = commonGoodsVO.getShopType(); + if (CommonOrderGoodsVO.TYPE_TAOBAO.equalsIgnoreCase(shopType)) { + commonOrder.setOrderType(1); + } else if (CommonOrderGoodsVO.TYPE_TMALL.equalsIgnoreCase(shopType)) { + commonOrder.setOrderType(2); + } + } + + break; + } + } + + return commonOrderVO; + } + + @Override + public List<CommonOrderVO> getCouponHongbaoByOrderNo(Long uid, Integer hongBaoState, String orderNo) throws CommonOrderException { + + List<CommonOrderVO> listOrder = commonOrderMapper.getCouponHongbaoByOrderNo(uid, hongBaoState, orderNo); + + // 璁㈠崟淇℃伅涓虹┖ + if (listOrder == null || listOrder.size() == 0) { + listOrder = new ArrayList<CommonOrderVO>(); + return listOrder; + } + + // 鍟嗗搧淇℃伅 + List<CommonOrderVO> listGoods = commonOrderMapper.listOrderGoodsInfo(listOrder); + // 璁㈠崟鍟嗗搧涓虹┖ + if (listGoods == null || listGoods.size() == 0) { + return listOrder; + } + + // 鏁版嵁鍔犲伐閲嶆柊缁勭粐 + listDataFactory(listOrder, listGoods, uid); + + 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.setBottomColor("#FFDCEA"); + + 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); + + return map; + } } -- Gitblit v1.8.0