From 5737c1229b265456415a20c71f12229b941a4629 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期五, 27 九月 2019 00:11:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java | 214 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 152 insertions(+), 62 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 1011498..d70907d 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,6 +20,7 @@
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.order.CommonOrderAddResultDTO;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
@@ -45,9 +46,9 @@
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.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.util.Constant;
@@ -216,9 +217,35 @@
}
@Override
- public Map<String, BigDecimal> countByUidAndOrderState(Long uid, Integer type, String startTime, String endTime,
- Integer day, Integer source) {
- return commonOrderMapper.countByUidAndOrderState(uid, type, startTime, endTime, day, source);
+ public Long countUserOrderToApp(Long uid, Integer type, String startTime, String endTime,
+ Integer day, Integer source, Integer state, Integer stateOrder) {
+ return commonOrderMapper.countUserOrderToApp(uid, type, startTime, endTime, day, source, state, stateOrder);
+ }
+
+ private BigDecimal getWeiQuanMoney(List<TaoBaoWeiQuanOrder> listWQ, int sourceType, Long uid) {
+ BigDecimal weiQuanMoney = new BigDecimal(0);
+ if (listWQ != null && listWQ.size() > 0) {
+ for (TaoBaoWeiQuanOrder weiQuanOrder : listWQ) {
+ String tradeId = weiQuanOrder.getOrderItemId();
+ // 鏌ヨ绾㈠寘
+ List<String> tradeList = new ArrayList<>();
+ tradeList.add(tradeId);
+ List<HongBaoV2> hongBaoList = hongBaoV2Service.listBySourceTypeAndTradeIdListAndUid(sourceType, uid,
+ tradeList);
+ if (hongBaoList != null && hongBaoList.size() > 0) {
+ CommonOrder commonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(sourceType, tradeId);
+ if (commonOrder != null && commonOrder.getSettlement().compareTo(new BigDecimal(0)) > 0) {
+ BigDecimal wqMoney = MoneyBigDecimalUtil
+ .mul(hongBaoList.get(0).getMoney(), weiQuanOrder.getMoney())
+ .divide(commonOrder.getSettlement(), 2, BigDecimal.ROUND_UP);
+ if (wqMoney.compareTo(hongBaoList.get(0).getMoney()) > 0)
+ wqMoney = hongBaoList.get(0).getMoney();
+ weiQuanMoney = weiQuanMoney.add(wqMoney);
+ }
+ }
+ }
+ }
+ return weiQuanMoney;
}
public void listDataFactory(AcceptData acceptData, List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods,
@@ -329,8 +356,11 @@
SimpleDateFormat formatday = new SimpleDateFormat("yyyy.MM.dd");
// 鏄惁瀛樺湪濂栧姳鍒�
- boolean hasRewardCoupon = userSystemCouponService.hasRewardCoupon(uid);
-
+ // boolean hasRewardCoupon =
+ // userSystemCouponService.hasRewardCoupon(uid);
+ boolean hasRewardCoupon = userSystemCouponService.getIncludeNotExchange(uid);
+ boolean exchangeCoupon = userSystemCouponService.getIncludeExchange(uid);
+
// 2019.8.1寮�濮嬭繑鍥炵淮鏉冧俊鎭�
Date august = null;
try {
@@ -390,7 +420,7 @@
if (hongBao == null) {
hongBao = new BigDecimal(0);
}
-
+
if (CommonOrder.STATE_FK == orderState) {
orderStateContent = "宸蹭粯娆�";
} else if (CommonOrder.STATE_JS == orderState) {
@@ -407,22 +437,8 @@
.selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛");
boolean isPart = false;// 榛樿澶辨晥
- BigDecimal weiQuanMoney = new BigDecimal(0);
- 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);
- }
- weiQuanMoney = MoneyBigDecimalUtil.add(weiQuanOrder.getMoney(), weiQuanMoney);
- }
+ BigDecimal weiQuanMoney = getWeiQuanMoney(listWQ, sourceType, uid);
- if (fanTotalMoney.compareTo(hongBao) < 0) {
- isPart = true;
- }
- }
-
if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
if (isPart) {
hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 閮ㄥ垎澶辨晥
@@ -435,16 +451,17 @@
orderStateContent = "缁存潈鎴愬姛";
WeiQuanInfo weiQuanInfo = new WeiQuanInfo();
weiQuanInfo.setOldHongBao("楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
- if (isPart) {
- // 缁存潈澶辨晥閲戦=缁存潈鐨勯噾棰�*鑾峰緱鐨勭孩鍖�/缁撶畻閲戦
- BigDecimal settlement = order.getSettlement();
- BigDecimal wqHongbao = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
- weiQuanInfo.setWqHongBao("缁存潈锛�-楼" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
- hongBao = MoneyBigDecimalUtil.sub(hongBao, wqHongbao);
- } else {
- hongBao = new BigDecimal(0);
- weiQuanInfo.setWqHongBao("缁存潈锛�-楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
- }
+ // if (isPart) {
+ weiQuanInfo
+ .setWqHongBao("缁存潈锛�-楼" + weiQuanMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
+ hongBao = MoneyBigDecimalUtil.sub(hongBao, weiQuanMoney);
+ // } else {
+ // weiQuanInfo
+ // .setWqHongBao("缁存潈锛�-楼" + weiQuanMoney.setScale(2,
+ // BigDecimal.ROUND_DOWN).toString());
+ // hongBao = MoneyBigDecimalUtil.sub(hongBao,
+ // weiQuanMoney);
+ // }
order.setWeiQuanInfo(weiQuanInfo);
}
}
@@ -533,7 +550,6 @@
hongbaoInfo = hongBaoState_Str + hongbaoInfo;
-
Map<String, String> hongBaoMap = new HashMap<String, String>();
hongBaoMap.put("content", hongbaoInfo + " 楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
hongBaoMap.put("fontColor", hongbaoInfoFontColor);
@@ -546,13 +562,17 @@
} else {
// 濂栧姳璁㈠崟銆佸厤鍗� 浣跨敤璁板綍
if (sourceType == null) {
- setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, null, signList);
+ setSystemCouponRecord(order, hasRewardCoupon, exchangeCoupon, hongBaoState, hongBaoType, null,
+ signList, acceptData);
} else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
- setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, signList);
+ setSystemCouponRecord(order, hasRewardCoupon, exchangeCoupon, hongBaoState, hongBaoType,
+ listRecordTB, signList, acceptData);
} else if (sourceType == Constant.SOURCE_TYPE_JD) {
- setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, signList);
+ setSystemCouponRecord(order, hasRewardCoupon, exchangeCoupon, hongBaoState, hongBaoType,
+ listRecordJD, signList, acceptData);
} else if (sourceType == Constant.SOURCE_TYPE_PDD) {
- setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, signList);
+ setSystemCouponRecord(order, hasRewardCoupon, exchangeCoupon, hongBaoState, hongBaoType,
+ listRecordPDD, signList, acceptData);
}
}
@@ -574,8 +594,9 @@
* @param list
* @param signList
*/
- public void setSystemCouponRecord(CommonOrderVO order, boolean hasRewardCoupon, Integer hongBaoState,
- Integer hongBaoType, List<UserSystemCouponRecord> list, List<String> signList) {
+ public void setSystemCouponRecord(CommonOrderVO order, boolean hasRewardCoupon, boolean exchangeCoupon,
+ Integer hongBaoState, Integer hongBaoType, List<UserSystemCouponRecord> list, List<String> signList,
+ AcceptData acceptData) {
// 鏄惁鍏嶅崟鍟嗗搧
boolean freeOrder = false;
@@ -595,7 +616,8 @@
signList.add(PIC_REWARD); // 鍔犲叆濂栧姳鎴愬姛鍥剧墖
} else if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType)
- || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
+ || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)
+ || CouponTypeEnum.freeCouponBuy.name().equals(systemCouponType)) {
if (UserSystemCouponRecord.STATE_FREE_ON == state) {
// 鍏嶅崟涓�
@@ -621,6 +643,21 @@
// 璁㈠崟鏍囪瘑
order.setSignList(signList);
+ // 1.6.5 鏄惁瀛樺湪鏂板厬鎹㈢殑鍒�
+ if (!hasRewardCoupon && exchangeCoupon) {
+ try {
+ Date thirdCreateTime = order.getThirdCreateTime();
+ if (thirdCreateTime != null) {
+ long downOrderTime = thirdCreateTime.getTime();
+ long limitDate = TimeUtil.convertDateToTemp("2019-09-10");
+ if (downOrderTime > limitDate)
+ hasRewardCoupon = true;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
boolean rewardOrder = false;
int type = 1; // 1 甯歌璺宠浆椤甸潰 2寮瑰嚭閫夐」锛堝鍔卞埜锛�
@@ -643,6 +680,9 @@
Map<String, Object> jumpLink = new HashMap<String, Object>();
jumpLink.put("orderNo", order.getOrderNo());
+ if (VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ jumpLink.put("goodsType", order.getSourceType()+"");
+ }
Map<String, Object> jump = new HashMap<String, Object>();
jump.put("type", type);
@@ -665,6 +705,9 @@
Map<String, Object> jumpLink = new HashMap<String, Object>();
jumpLink.put("orderNo", order.getOrderNo());
+ if (VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ jumpLink.put("goodsType", order.getSourceType()+"");
+ }
Map<String, Object> jump = new HashMap<String, Object>();
jump.put("type", 1); // 椤甸潰璺宠浆
@@ -686,8 +729,9 @@
@Transactional
@Override
- public List<CommonOrder> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrders, Long uid) throws CommonOrderException {
- List<CommonOrder> commonOrderList = new ArrayList<>();
+ public List<CommonOrderAddResultDTO> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrders, Long uid)
+ throws CommonOrderException {
+ List<CommonOrderAddResultDTO> commonOrderList = new ArrayList<>();
// 鍒ゆ柇鎵�鏈夌殑璁㈠崟鐘舵��
int invalidCount = 0;
for (TaoBaoOrder tb : taoBaoOrders) {
@@ -747,8 +791,9 @@
@Transactional
@Override
- public List<CommonOrder> addPDDOrder(List<PDDOrder> pddOrderList, Long uid) throws CommonOrderException {
- List<CommonOrder> commonOrderList = new ArrayList<>();
+ public List<CommonOrderAddResultDTO> addPDDOrder(List<PDDOrder> pddOrderList, Long uid)
+ throws CommonOrderException {
+ List<CommonOrderAddResultDTO> commonOrderList = new ArrayList<>();
// 鍒ゆ柇鎵�鏈夌殑璁㈠崟鐘舵��
int invalidCount = 0;
for (PDDOrder order : pddOrderList) {
@@ -796,8 +841,8 @@
@Transactional
@Override
- public List<CommonOrder> addJDOrder(JDOrder jdOrder, Long uid) throws CommonOrderException {
- List<CommonOrder> commonOrderList = new ArrayList<>();
+ public List<CommonOrderAddResultDTO> addJDOrder(JDOrder jdOrder, Long uid) throws CommonOrderException {
+ List<CommonOrderAddResultDTO> commonOrderList = new ArrayList<>();
// 鍒ゆ柇鎵�鏈夌殑璁㈠崟鐘舵��
int invalidCount = 0;
for (JDOrderItem tb : jdOrder.getOrderItemList()) {
@@ -836,9 +881,17 @@
goods = JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
}
+ if (goods == null) {
+ goods = new JDGoods();
+ goods.setSkuName(itemOrder.getSkuName());
+ goods.setPrice(itemOrder.getPrice());
+ goods.setSkuId(itemOrder.getSkuId());
+ }
+
if (goods != null) {
cog = CommonOrderGoodsFactory.create(goods);
}
+
cog.setCreateTime(new Date());
cog.setUpdateTime(new Date());
commonOrderGoodsMapper.insertSelective(cog);
@@ -857,7 +910,7 @@
* @param commonOrder
*/
@Transactional
- private CommonOrder addCommonOrder(CommonOrder commonOrder) throws CommonOrderException {
+ private CommonOrderAddResultDTO addCommonOrder(CommonOrder commonOrder) throws CommonOrderException {
// 鍒ゆ柇鍟嗗搧鏄惁瀛樺湪
if (commonOrder == null)
throw new CommonOrderException(1, "璁㈠崟涓虹┖");
@@ -890,10 +943,9 @@
if (!StringUtil.isNullOrEmpty(commonOrder.getTradeId()))
oldCommonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(commonOrder.getSourceType(),
commonOrder.getTradeId());
- else
- oldCommonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(commonOrder.getOrderNo(),
- commonOrder.getSourceType(), commonOrder.getOrderBy());
-
+ else {
+ throw new CommonOrderException(10, "浜ゆ槗ID涓虹┖");
+ }
if (oldCommonOrder == null)// 鏂板
{
commonOrder.setCreateTime(new Date());
@@ -901,12 +953,13 @@
// 鎻掑叆鏄犲皠锛屼繚璇佷氦鏄揑D鐨勫畬鏁存��
commonOrderTradeIdMapMapper.insertSelective(new CommonOrderTradeIdMap(commonOrder.getId(),
commonOrder.getTradeId(), new Date(), commonOrder.getSourceType()));
- return commonOrder;
+ return new CommonOrderAddResultDTO(commonOrder, CommonOrderAddResultDTO.TYPE_ADD);
} else {// 淇敼
// 宸茬粡缁撶畻锛屽凡缁忓け鏁堬紝鐘舵�佹湭鏀瑰彉鐨勮鍗曚笉澶勭悊
if (oldCommonOrder.getState() == CommonOrder.STATE_JS || oldCommonOrder.getState() == CommonOrder.STATE_SX
+ || oldCommonOrder.getState() == CommonOrder.STATE_WQ
|| (oldCommonOrder.getState().intValue() == commonOrder.getState())) {
- return oldCommonOrder;
+ return new CommonOrderAddResultDTO(oldCommonOrder, CommonOrderAddResultDTO.TYPE_NOUPDATE);
}
// 浜ゆ槗ID涓�鑷存墠淇敼
if (commonOrder.getTradeId() != null
@@ -922,9 +975,10 @@
updateCommonOrder.setUpdateTime(new Date());
updateCommonOrder.setTradeId(commonOrder.getTradeId());
commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder);
- return commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId());
+ return new CommonOrderAddResultDTO(commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId()),
+ CommonOrderAddResultDTO.TYPE_UPDATE);
} else
- return oldCommonOrder;
+ return new CommonOrderAddResultDTO(oldCommonOrder, CommonOrderAddResultDTO.TYPE_NOUPDATE);
}
}
@@ -1020,8 +1074,14 @@
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, source);
+ List<CommonOrderVO> list = null;
+
+ if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 鎼滅储妗嗘棤鍊兼垨鑰呮寜璁㈠崟鍙锋悳绱㈡椂閮藉彧鎼滅储涓昏鍗�
+ list = commonOrderMapper.listQueryWithNoChild(start, count, keyType, key, state, type, orderState,
+ startTime, endTime, source);
+ } else
+ list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState, startTime, endTime,
+ source);
if (list == null) {
list = new ArrayList<CommonOrderVO>();
@@ -1149,9 +1209,12 @@
String systemCouponType = couponRecord.getCouponType();
Integer couponState = couponRecord.getState();
if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType)
- || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
+ || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)
+ || CouponTypeEnum.freeCouponBuy.name().equals(systemCouponType)) {
if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
// 鍏嶅崟鎴愬姛
+ order.setOtherState(2);
+ } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
order.setOtherState(1);
}
}
@@ -1164,9 +1227,12 @@
String systemCouponType = couponRecord.getCouponType();
Integer couponState = couponRecord.getState();
if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType)
- || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
+ || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)
+ || CouponTypeEnum.freeCouponBuy.name().equals(systemCouponType)) {
if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
// 鍏嶅崟鎴愬姛
+ order.setOtherState(2);
+ } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
order.setOtherState(1);
}
}
@@ -1179,9 +1245,12 @@
String systemCouponType = couponRecord.getCouponType();
Integer couponState = couponRecord.getState();
if (CouponTypeEnum.freeCoupon.name().equals(systemCouponType)
- || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
+ || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)
+ || CouponTypeEnum.freeCouponBuy.name().equals(systemCouponType)) {
if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
// 鍏嶅崟鎴愬姛
+ order.setOtherState(2);
+ } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
order.setOtherState(1);
}
}
@@ -1198,7 +1267,11 @@
@Override
public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState,
String startTime, String endTime, Integer source) throws CommonOrderException {
- return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
+ if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 鎼滅储妗嗘棤鍊兼垨鑰呮寜璁㈠崟鍙锋悳绱㈡椂閮藉彧鎼滅储涓昏鍗�
+ return commonOrderMapper.countQueryWithNoChild(keyType, key, state, type, orderState, startTime, endTime,
+ source);
+ } else
+ return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
}
@Override
@@ -1299,7 +1372,7 @@
}
@Override
- public JSONObject getRewardJumpInfo(String orderNo) {
+ public JSONObject getRewardJumpInfo(String orderNo, Integer goodsType) {
JSONObject map = new JSONObject();
// 璁㈠崟鏍囪瘑
@@ -1316,6 +1389,7 @@
Map<String, Object> jumpLink = new HashMap<String, Object>();
jumpLink.put("orderNo", orderNo);
+ jumpLink.put("goodsType", goodsType == null? goodsType: goodsType +"");
Map<String, Object> jump = new HashMap<String, Object>();
jump.put("type", 1);
@@ -1377,4 +1451,20 @@
(page - 1) * pageSize, pageSize);
}
+ @Override
+ public List<CommonOrder> getByOrderNo(Long uid, String orderNO) {
+ return commonOrderMapper.getByOrderNo(uid, orderNO);
+ }
+
+ @Override
+ public CommonOrder selectLatestValidByUid(Long uid) {
+ List<Integer> stateList = new ArrayList<>();
+ stateList.add(CommonOrder.STATE_FK);
+ stateList.add(CommonOrder.STATE_JS);
+ List<CommonOrder> commonOrderList = commonOrderMapper.listByUid(uid, stateList, 0, 1);
+ if (commonOrderList == null || commonOrderList.size() == 0)
+ return null;
+ return commonOrderList.get(0);
+ }
+
}
--
Gitblit v1.8.0