From 393d296e43f0e5f11e524cab5446bcd3eee94e89 Mon Sep 17 00:00:00 2001 From: jyy <jyy> Date: Sat, 12 Jun 2021 17:47:38 +0800 Subject: [PATCH] 新增赠送项目是否计算消耗控制 --- zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java | 96 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 66 insertions(+), 30 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java index ed65769..b6d7560 100644 --- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java +++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java @@ -1,6 +1,7 @@ package com.matrix.system.activity.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -24,16 +25,17 @@ import com.matrix.system.activity.vo.ZjrVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.bean.SystemDictionary; +import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.SystemDictionaryDao; import com.matrix.system.hive.action.util.QueryUtil; import com.matrix.system.hive.dao.SysVipInfoDao; +import com.matrix.system.shopXcx.api.service.WxShopLogisticsQueryService; import com.matrix.system.shopXcx.bean.ShopActivities; import com.matrix.system.shopXcx.bean.ShopDeliveryInfo; import com.matrix.system.shopXcx.bean.ShopLogisticsInfo; import com.matrix.system.shopXcx.dao.ShopActivitiesDao; import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao; import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,6 +68,8 @@ ShopDeliveryInfoDao shopDeliveryInfoDao; @Autowired ShopLogisticsInfoDao shopLogisticsInfoDao; + @Autowired + private WxShopLogisticsQueryService wxShopLogisticsQueryService; public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page, SignWriteoffListDto signWriteoffListDto) { @@ -109,20 +113,24 @@ //物流跟踪 Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId(); - if(ObjectUtil.isNotEmpty(logisticsId)) { - List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(logisticsId); - if(CollUtil.isNotEmpty(shopLogisticsInfos)) { - ArrayList<LogisticsVo> logisticsVos = new ArrayList<>(); - for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) { - LogisticsVo logisticsVo = new LogisticsVo(); - logisticsVo.setContent(shopLogistics.getDescribe()); - logisticsVo.setTimestamp(shopLogistics.getLogisticsTime()); - logisticsVos.add(logisticsVo); - } - signWriteoffVo.setActivities(logisticsVos); - } - } - + ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId); + if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){ + signWriteoffVo.setLogisticsNum(shopDeliveryInfo.getWaybillNo()); + signWriteoffVo.setLogisticsCompany(shopDeliveryInfo.getLogisticsCompany()); + //查看物流信息 + wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo); + List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId()); + if(CollUtil.isNotEmpty(shopLogisticsInfos)) { + ArrayList<LogisticsVo> logisticsVos = new ArrayList<>(); + for(ShopLogisticsInfo shopLogistics : shopLogisticsInfos) { + LogisticsVo logisticsVo = new LogisticsVo(); + logisticsVo.setContent(shopLogistics.getDescribe()); + logisticsVo.setTimestamp(shopLogistics.getLogisticsTime()); + logisticsVos.add(logisticsVo); + } + signWriteoffVo.setActivities(logisticsVos); + } + } } } result.putInMap("signWriteoffVo", signWriteoffVo); @@ -138,18 +146,45 @@ String writeOffCode = writeoffCodeSubmitDto.getWriteOffCode(); /** * 验证核销码是不是匹配 + * 只能核销一次 * 更新核销记录 * 更新领取记录 */ //验证核销码是不是匹配 ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId); + if(ActivitySignWriteoff.STATE_ONE != activitySignWriteoff.getState()){ + return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码已失效"); + } if(ObjectUtil.isNotEmpty(activitySignWriteoff)) { String writeoffCodeReal = activitySignWriteoff.getWriteoffCode(); if(!writeoffCodeReal.equals(writeOffCode)) { return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效"); } } - //更新核销记录 + //线下兑换失效 + Long awardId = activitySignWriteoff.getAwardId(); + ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(awardId); + if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSet.getAwardWay() + || ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSet.getAwardWay()){ + Date prizeStartTime = activitySignAwardSet.getPrizeStartTime(); + if(DateUtil.date().getTime() < prizeStartTime.getTime()){ + return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖还没开始呢!"); + } + Date prizeEndTime = activitySignAwardSet.getPrizeEndTime(); + if(DateUtil.date().getTime() > prizeEndTime.getTime()){ + Long receiveId = activitySignWriteoff.getReceiveId(); + ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); + if(ObjectUtil.isNotEmpty(activitySignReceiveRecord)){ + activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FIVE); + } + activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); + + activitySignWriteoff.setState(ActivitySignWriteoff.STATE_FOUR); + activitySignWriteoffDao.updateById(activitySignWriteoff); + return new AjaxResult(AjaxResult.STATUS_FAIL, "已超出兑奖结束时间!"); + } + } + //更新核销记录 activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); activitySignWriteoff.setWriteoffTime(new Date()); activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); @@ -188,6 +223,7 @@ shopDeliveryInfo.setLogisticsCompany(systemDictionary.getName()); shopDeliveryInfo.setLogisticsCompanyCode(systemDictionary.getCode()); shopDeliveryInfo.setDeliveryWay("物流配送"); + shopDeliveryInfo.setLogisticsStatus(AppConstance.LOGISTICS_STATUS_OF_RECEIVE); shopDeliveryInfo.setWaybillNo(logisticsSubmitDto.getKddh()); shopDeliveryInfo.setUpdateBy(sysUsers.getSuName()); @@ -195,20 +231,20 @@ shopDeliveryInfo.setDeliveryTime(new Date()); shopDeliveryInfoDao.insert(shopDeliveryInfo); - //更新核销记录 - activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); - activitySignWriteoff.setWriteoffTime(new Date()); - activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); - activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId()); - activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId()); - activitySignWriteoffDao.updateById(activitySignWriteoff); - //更新领取记录 - ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); - activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE); - activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr()); - activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz()); - activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh()); - activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); + //更新核销记录 + activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); + activitySignWriteoff.setWriteoffTime(new Date()); + activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); + activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId()); + activitySignWriteoff.setLogisticsId(shopDeliveryInfo.getId()); + activitySignWriteoffDao.updateById(activitySignWriteoff); + //更新领取记录 + ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); + activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FOUR); + activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr()); + activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz()); + activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh()); + activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "发货成功"); } -- Gitblit v1.9.1