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/ActivitySignAwardSetService.java |  147 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 134 insertions(+), 13 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
index 5817eb8..905c4fa 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
@@ -2,7 +2,6 @@
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
-
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,14 +10,15 @@
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
-import com.matrix.system.activity.dto.ActivitiesListDto;
-import com.matrix.system.activity.dto.AddSignAwardSetDto;
-import com.matrix.system.activity.dto.BeCloseDto;
-import com.matrix.system.activity.dto.BeReadyDto;
-import com.matrix.system.activity.dto.DelRowDto;
-import com.matrix.system.activity.dto.SignSetBasicJsonDto;
+import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
+import com.matrix.system.activity.dto.*;
 import com.matrix.system.activity.entity.ActivitySignAwardSet;
 import com.matrix.system.activity.vo.ActivitiesListVo;
+import com.matrix.system.activity.vo.AddSignAwardSetVo;
+import com.matrix.system.activity.vo.CouponVo;
+import com.matrix.system.activity.vo.GoodsVo;
+import com.matrix.system.activity.vo.SignReceiveListVo;
+import com.matrix.system.activity.vo.SignSetBasicJsonVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.hive.action.util.QueryUtil;
 import com.matrix.system.shopXcx.bean.ShopActivities;
@@ -27,8 +27,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @description 奖品设置表
@@ -42,13 +45,20 @@
     private ShopActivitiesDao shopActivitiesDao;
 	@Autowired
 	private ActivitySignAwardSetDao activitySignAwardSetDao;
+	@Autowired
+	private ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
 
 	@Transactional
 	public AjaxResult activitySignAwardSetService(AddSignAwardSetDto addSignAwardSetDto) {
 		//获取当前登录人员信息
         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
         Long companyId = user.getCompanyId();
-        
+        //签到活动的唯一性
+		List<ShopActivities> shopActivitiesDone = shopActivitiesDao.selectOneByCompanyIdAndActType(companyId,ShopActivities.ACTIVITIES_TYPE_SIGN);
+		if(CollUtil.isNotEmpty(shopActivitiesDone)){
+			return new AjaxResult(AjaxResult.STATUS_FAIL, "签到活动只能创建一次");
+		}
+
         //新增活动主表信息
         ShopActivities shopActivities = new ShopActivities();
         shopActivities.setActName(addSignAwardSetDto.getActName());
@@ -77,6 +87,7 @@
 					activitySignAwardSet.setUpdateBy(user.getSuName());
 					activitySignAwardSet.setCompanyId(companyId);
 					activitySignAwardSet.setActivityId(shopActivities.getId());
+					activitySignAwardSet.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
 					activitySignAwardSetDao.insert(activitySignAwardSet);
 				}
 			}
@@ -100,11 +111,8 @@
         if(ObjectUtil.isEmpty(shopActivity)) {
         	return AjaxResult.buildFailInstance("网络不通畅,请刷新页面");
         }
-        /**
-         * 未发布状态即使达到活动时间也不进入进行中状态
-         */
-        //未发布状态点击发布,状态变成未开始,且是开启状态
-        shopActivity.setActStatus(ShopActivities.ACTSTATUS_STATUS_READY);
+        //未发布状态点击发布,状态变成进行中,且是开启状态
+        shopActivity.setActStatus(ShopActivities.ACTSTATUS_STATUS_ING);
         shopActivity.setIsStart(ShopActivities.ACTIVITIES_STATUS_OPEN);
         shopActivitiesDao.updateByModel(shopActivity);
 		return AjaxResult.buildSuccessInstance("操作成功");
@@ -144,6 +152,119 @@
 		return AjaxResult.buildSuccessInstance("操作成功");
 	}
 
+	public IPage<SignReceiveListVo> findSignReceiveList(Page<SignReceiveListVo> page,
+			SignReceiveListDto signReceiveListDto) {
+		return activitySignReceiveRecordDao.findSignReceiveList(page,signReceiveListDto);
+	}
+
+	public AjaxResult findSignForUpdate(SignForUpdateDto signForUpdateDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(signForUpdateDto);
+        Long actId = signForUpdateDto.getActId();
+        AjaxResult result= AjaxResult.buildSuccessInstance("查询成功");
+        //获取对应的活动主表信息和对应的奖品设置信息
+        AddSignAwardSetVo addSignAwardSetVo = new AddSignAwardSetVo();
+        ShopActivities shopActivity = shopActivitiesDao.selectById(actId);
+        if(ObjectUtil.isNotEmpty(shopActivity)) {
+        	addSignAwardSetVo.setId(actId);
+        	addSignAwardSetVo.setActName(shopActivity.getActName());
+        	addSignAwardSetVo.setActCode(shopActivity.getActCode());
+        	addSignAwardSetVo.setBeginTime(shopActivity.getActBeginTime());
+        	addSignAwardSetVo.setEndTime(shopActivity.getActEndTime());
+        	
+        	String actContent = shopActivity.getActContent();
+        	SignSetBasicJsonVo signSetBasicJsonVo = JSON.parseObject(actContent, SignSetBasicJsonVo.class);
+        	addSignAwardSetVo.setSignSetBasicJsonDto(signSetBasicJsonVo);
+        	
+        	Map<String, Object> columnMap = new HashMap<String, Object>();
+        	columnMap.put("activity_id", actId);
+        	columnMap.put("company_id", signForUpdateDto.getCompanyId());
+			List<ActivitySignAwardSet> activitySignAwardSets = activitySignAwardSetDao.selectByMap(columnMap);
+			addSignAwardSetVo.setActivitySignAwardSets(activitySignAwardSets);
+        }
+        result.putInMap("addSignAwardSetVo", addSignAwardSetVo);
+        return result;
+	}
+
+	@Transactional
+	public AjaxResult updateSignAwardSet(UpdateSignAwardSetDto updateSignAwardSetDto) {
+		//获取当前登录人员信息
+        QueryUtil.setQueryLimitCom(updateSignAwardSetDto);
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        Long actId = updateSignAwardSetDto.getActMainId();
+        Long companyId = user.getCompanyId();
+        ShopActivities shopActivity = shopActivitiesDao.selectById(actId);
+        //更新活动主表信息
+        shopActivity.setActName(updateSignAwardSetDto.getActName());
+        shopActivity.setActCode(updateSignAwardSetDto.getActCode());
+        shopActivity.setActBeginTime(updateSignAwardSetDto.getBeginTime());
+        shopActivity.setActEndTime(updateSignAwardSetDto.getEndTime());
+        shopActivity.setCompanyId(companyId);
+        shopActivity.setCreateBy(user.getSuName());
+        shopActivity.setUpdateBy(user.getSuName());
+        //将基本信息转换成JSON字符串存储到活动主表的act_content字段
+        SignSetBasicJsonDto signSetBasicJsonDto = updateSignAwardSetDto.getSignSetBasicJsonDto();
+		String json=JSON.toJSONString(signSetBasicJsonDto);
+		shopActivity.setActContent(json);
+		shopActivitiesDao.updateByModel(shopActivity);
+		/**
+		 * 比较两个奖品名单,多的新增,减少的更新为已失效,不变的更新
+		 */
+		//原有的奖品
+		ArrayList<Long> arrayListOld = new ArrayList<>();
+		Map<String, Object> columnMap = new HashMap<String, Object>();
+    	columnMap.put("activity_id", actId);
+    	columnMap.put("company_id", updateSignAwardSetDto.getCompanyId());
+		List<ActivitySignAwardSet> activitySignAwardSetOld = activitySignAwardSetDao.selectByMap(columnMap);
+		if(CollUtil.isNotEmpty(activitySignAwardSetOld)) {
+			for(ActivitySignAwardSet activitySignAwardSetUpdate : activitySignAwardSetOld) {
+				Long actSubid = activitySignAwardSetUpdate.getId();
+				arrayListOld.add(actSubid);
+			}
+		}
+		//修改后的奖品
+		List<ActivitySignAwardSet> activitySignAwardSetsUpdate = updateSignAwardSetDto.getActivitySignAwardSets();
+		ArrayList<Long> arrayListUpdate = new ArrayList<>();
+		if(CollUtil.isNotEmpty(activitySignAwardSetsUpdate)) {
+			for(ActivitySignAwardSet activitySignAwardSetUpdate : activitySignAwardSetsUpdate) {
+				Long actSubid = activitySignAwardSetUpdate.getId();
+				//如果ID为空则新增,不为空则修改
+				if(ObjectUtil.isEmpty(actSubid)) {
+					activitySignAwardSetUpdate.setCreateBy(user.getSuName());
+					activitySignAwardSetUpdate.setCreateTime(new Date());
+					activitySignAwardSetUpdate.setUpdateTime(new Date());
+					activitySignAwardSetUpdate.setUpdateBy(user.getSuName());
+					activitySignAwardSetUpdate.setCompanyId(companyId);
+					activitySignAwardSetUpdate.setActivityId(actId);
+					activitySignAwardSetUpdate.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
+					activitySignAwardSetDao.insert(activitySignAwardSetUpdate);
+				}else {
+					activitySignAwardSetUpdate.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
+					activitySignAwardSetDao.updateById(activitySignAwardSetUpdate);
+					arrayListUpdate.add(actSubid);
+				}
+			}
+		}
+		//比较获取原来的比现在多出来的奖品,修改状态为失效
+		boolean removeAll = arrayListOld.removeAll(arrayListUpdate);
+		if(removeAll && CollUtil.isNotEmpty(arrayListOld)) {
+			for(long id : arrayListOld) {
+				ActivitySignAwardSet activitySignAwardSetDel = activitySignAwardSetDao.selectById(id);
+				activitySignAwardSetDel.setAwardState(ActivitySignAwardSet.AWARDSTATE_UNWORK);
+				activitySignAwardSetDao.updateById(activitySignAwardSetDel);
+			}
+		}
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功");
+	}
+
+	public IPage<CouponVo> selectCouponList(Page<CouponVo> page, CouponDto couponDto) {
+		return activitySignReceiveRecordDao.selectCouponList(page,couponDto);
+	}
+
+	public IPage<GoodsVo> selectGoodsList(Page<GoodsVo> page, GoodsDto goodsDto) {
+		return activitySignReceiveRecordDao.selectGoodsList(page,goodsDto);
+	}
+
 
 
 

--
Gitblit v1.9.1