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