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 |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 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 835ed41..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,6 +25,7 @@
 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;
@@ -113,6 +115,8 @@
         		Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId();
 				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());
@@ -142,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());
@@ -192,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());
@@ -208,7 +240,7 @@
 		activitySignWriteoffDao.updateById(activitySignWriteoff);
 		//更新领取记录
 		ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
-		activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE);
+		activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FOUR);
 		activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr());
 		activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz());
 		activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh());

--
Gitblit v1.9.1