From 95f9ea7eb339c36cade6c67d0385c49ec2d81477 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 14 Apr 2021 19:39:45 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java |  271 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 271 insertions(+), 0 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
new file mode 100644
index 0000000..aed8a95
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
@@ -0,0 +1,271 @@
+package com.matrix.system.activity.service;
+
+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;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
+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;
+import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import org.springframework.beans.factory.annotation.Autowired;
+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 奖品设置表
+ * @author yourName
+ * @date 2021-03-31 16:57
+ */
+@Service
+public class ActivitySignAwardSetService  extends ServiceImpl<ActivitySignAwardSetDao, ActivitySignAwardSet>{
+	
+	@Autowired
+    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();
+        /**
+         * todo签到活动的唯一性
+         */
+        
+        //新增活动主表信息
+        ShopActivities shopActivities = new ShopActivities();
+        shopActivities.setActName(addSignAwardSetDto.getActName());
+        shopActivities.setActCode(addSignAwardSetDto.getActCode());
+        shopActivities.setIsStart(ShopActivities.ACTIVITIES_STATUS_CLOSE);
+        shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_SIGN);
+        shopActivities.setActStatus(ShopActivities.ACTSTATUS_STATUS_RELEASE);
+        shopActivities.setActBeginTime(addSignAwardSetDto.getBeginTime());
+        shopActivities.setActEndTime(addSignAwardSetDto.getEndTime());
+        shopActivities.setCompanyId(companyId);
+		shopActivities.setCreateBy(user.getSuName());
+		shopActivities.setUpdateBy(user.getSuName());
+        //将基本信息转换成JSON字符串存储到活动主表的act_content字段
+        SignSetBasicJsonDto signSetBasicJsonDto = addSignAwardSetDto.getSignSetBasicJsonDto();
+		String json=JSON.toJSONString(signSetBasicJsonDto);
+		shopActivities.setActContent(json);
+		int insert = shopActivitiesDao.insert(shopActivities);
+		if(insert > 0){
+			//新增活动奖品信息
+			List<ActivitySignAwardSet> activitySignAwardSets = addSignAwardSetDto.getActivitySignAwardSets();
+			if(CollUtil.isNotEmpty(activitySignAwardSets)) {
+				for(ActivitySignAwardSet activitySignAwardSet : activitySignAwardSets) {
+					activitySignAwardSet.setCreateBy(user.getSuName());
+					activitySignAwardSet.setCreateTime(new Date());
+					activitySignAwardSet.setUpdateTime(new Date());
+					activitySignAwardSet.setUpdateBy(user.getSuName());
+					activitySignAwardSet.setCompanyId(companyId);
+					activitySignAwardSet.setActivityId(shopActivities.getId());
+					activitySignAwardSet.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK);
+					activitySignAwardSetDao.insert(activitySignAwardSet);
+				}
+			}
+		}else{
+			return new AjaxResult(AjaxResult.STATUS_FAIL, "保存失败");
+		}
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功");
+	}
+
+	public IPage<ActivitiesListVo> findActivitiesList(Page<ActivitiesListVo> page,
+			ActivitiesListDto activitiesListDto) {
+		return shopActivitiesDao.findActivitiesList(page,activitiesListDto);
+	}
+
+	@Transactional
+	public AjaxResult beReady(BeReadyDto beReadyDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(beReadyDto);
+        Long actId = beReadyDto.getActId();
+        ShopActivities shopActivity = shopActivitiesDao.selectById(actId);
+        if(ObjectUtil.isEmpty(shopActivity)) {
+        	return AjaxResult.buildFailInstance("网络不通畅,请刷新页面");
+        }
+        /**
+         * 未发布状态即使达到活动时间也不进入进行中状态
+         */
+        //未发布状态点击发布,状态变成未开始,且是开启状态
+        shopActivity.setActStatus(ShopActivities.ACTSTATUS_STATUS_READY);
+        shopActivity.setIsStart(ShopActivities.ACTIVITIES_STATUS_OPEN);
+        shopActivitiesDao.updateByModel(shopActivity);
+		return AjaxResult.buildSuccessInstance("操作成功");
+	}
+
+	public AjaxResult delRow(DelRowDto delRowDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(delRowDto);
+        Long actId = delRowDto.getActId();
+        ShopActivities shopActivity = shopActivitiesDao.selectById(actId);
+        if(ObjectUtil.isEmpty(shopActivity)) {
+        	return AjaxResult.buildFailInstance("网络不通畅,请刷新页面");
+        }
+        /**
+         * 删除状态更新状态为已删除,只能查看活动统计
+         */
+        shopActivity.setActStatus(ShopActivities.ACTSTATUS_STATUS_DEL);
+        shopActivity.setIsStart(ShopActivities.ACTIVITIES_STATUS_CLOSE);
+        shopActivitiesDao.updateByModel(shopActivity);
+		return AjaxResult.buildSuccessInstance("操作成功");
+	}
+
+	public AjaxResult beClose(BeCloseDto beCloseDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(beCloseDto);
+        Long actId = beCloseDto.getActId();
+        ShopActivities shopActivity = shopActivitiesDao.selectById(actId);
+        if(ObjectUtil.isEmpty(shopActivity)) {
+        	return AjaxResult.buildFailInstance("网络不通畅,请刷新页面");
+        }
+        /**
+         * 关闭状态
+         */
+        shopActivity.setActStatus(ShopActivities.ACTSTATUS_STATUS_END);
+        shopActivity.setIsStart(ShopActivities.ACTIVITIES_STATUS_CLOSE);
+        shopActivitiesDao.updateByModel(shopActivity);
+		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);
+					activitySignAwardSetDao.insert(activitySignAwardSetUpdate);
+				}else {
+					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);
+	}
+
+
+
+
+  
+}
\ No newline at end of file

--
Gitblit v1.9.1