|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 奖品设置表 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | activitySignAwardSet.setUpdateBy(user.getSuName()); | 
|---|
|  |  |  | activitySignAwardSet.setCompanyId(companyId); | 
|---|
|  |  |  | activitySignAwardSet.setActivityId(shopActivities.getId()); | 
|---|
|  |  |  | activitySignAwardSet.setAwardState(ActivitySignAwardSet.AWARDSTATE_WORK); | 
|---|
|  |  |  | activitySignAwardSetDao.insert(activitySignAwardSet); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|