| package com.matrix.system.activity.action; | 
|   | 
| 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.constance.MatrixConstance; | 
| import com.matrix.core.pojo.AjaxResult; | 
| import com.matrix.core.tools.StringUtils; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.system.activity.dao.ActivitySignAwardSetDao; | 
| import com.matrix.system.activity.dto.*; | 
| import com.matrix.system.activity.entity.ActivitySignAwardSet; | 
| import com.matrix.system.activity.service.ActivitySignAwardSetService; | 
| import com.matrix.system.activity.vo.*; | 
| 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 io.swagger.annotations.ApiOperation; | 
| import io.swagger.annotations.ApiResponse; | 
| import io.swagger.annotations.ApiResponses; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import java.util.*; | 
|   | 
| /** | 
|  * @description 奖品设置表 | 
|  * @author yourName | 
|  * @date 2021-03-31 16:57 | 
|  */ | 
| @RestController | 
| @RequestMapping(value = "admin/activitySignAwardSet") | 
| public class ActivitySignAwardSetAction { | 
|   | 
|     @Autowired | 
|     private ActivitySignAwardSetService activitySignAwardSetService; | 
|     @Autowired | 
|     private ShopActivitiesDao shopActivitiesDao; | 
|     @Autowired | 
|     private ActivitySignAwardSetDao activitySignAwardSetDao; | 
|   | 
|     /** | 
|      * 马上创建转盘抽奖 | 
|      */ | 
|     @PostMapping(value = "/createLuckyDrawSet") | 
|     public @ResponseBody | 
|     AjaxResult createLuckyDrawSet() { | 
|         //获取当前登录人员信息 | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         Long companyId = user.getCompanyId(); | 
|         //签到活动的唯一性 | 
|         List<ShopActivities> shopActivitiesDone = shopActivitiesDao.selectOneByCompanyIdAndActType(companyId,ShopActivities.ACTIVITIES_TYPE_LUCKYDRAW); | 
|         if(CollUtil.isNotEmpty(shopActivitiesDone)){ | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "转盘抽奖已经创建,请去活动管理菜单查看"); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, ""); | 
|     } | 
|   | 
|     /** | 
|      * 新增转盘抽奖 | 
|      */ | 
|     @PostMapping(value = "/addLuckyDrawSet") | 
|     public @ResponseBody | 
|     AjaxResult addLuckyDrawSet(@RequestBody AddLuckyDrawSetDto addLuckyDrawSetDto) { | 
|         //获取当前登录人员信息 | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         Long companyId = user.getCompanyId(); | 
|         //转盘抽奖活动的唯一性 | 
|         List<ShopActivities> shopActivitiesDone = shopActivitiesDao.selectOneByCompanyIdAndActType(companyId,ShopActivities.ACTIVITIES_TYPE_LUCKYDRAW); | 
|         if(CollUtil.isNotEmpty(shopActivitiesDone)){ | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "转盘抽奖只能创建一次"); | 
|         } | 
|   | 
|         //新增活动主表信息 | 
|         ShopActivities shopActivities = new ShopActivities(); | 
|         shopActivities.setActName(addLuckyDrawSetDto.getActName()); | 
|         shopActivities.setActCode(addLuckyDrawSetDto.getActCode()); | 
|         shopActivities.setIsStart(ShopActivities.ACTIVITIES_STATUS_CLOSE); | 
|         shopActivities.setActType(ShopActivities.ACTIVITIES_TYPE_LUCKYDRAW); | 
|         shopActivities.setActStatus(ShopActivities.ACTSTATUS_STATUS_RELEASE); | 
|         shopActivities.setActBeginTime(addLuckyDrawSetDto.getBeginTime()); | 
|         shopActivities.setActEndTime(addLuckyDrawSetDto.getEndTime()); | 
|         shopActivities.setCompanyId(companyId); | 
|         shopActivities.setCreateBy(user.getSuName()); | 
|         shopActivities.setUpdateBy(user.getSuName()); | 
|         //将基本信息转换成JSON字符串存储到活动主表的act_content字段 | 
|         LuckyDrawBasicJsonDto luckyDrawBasicJsonDto = addLuckyDrawSetDto.getLuckyDrawBasicJsonDto(); | 
|         String json= JSON.toJSONString(luckyDrawBasicJsonDto); | 
|         shopActivities.setActContent(json); | 
|         int insert = shopActivitiesDao.insert(shopActivities); | 
|         if(insert > 0){ | 
|             //新增活动奖品信息 | 
|             List<ActivitySignAwardSet> activitySignAwardSets = addLuckyDrawSetDto.getLuckyDrawAwardSets(); | 
|             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); | 
|                 } | 
|                 //生成中奖顺序 | 
|   | 
|                 Long actId = shopActivities.getId(); | 
|                 List<ActivitySignAwardSet> activitySignAwardSetList = activitySignAwardSetDao | 
|                         .selectActivitySignAwardSetByActIDAndCompanyIdAndAwardType(actId, companyId, ActivitySignAwardSet.AWARDSTATE_WORK,ActivitySignAwardSet.AWARDRULE_CUMULATIVEDAY); | 
|                 if(CollUtil.isNotEmpty(activitySignAwardSetList)){ | 
|                     String awrdList = getAwrdList(activitySignAwardSets).toString(); | 
|                     ShopActivities shopActivitiesAward = shopActivitiesDao.selectById(actId); | 
|                     String actContent = shopActivitiesAward.getActContent(); | 
|                     LuckyDrawAwardCodeListVo luckyDrawAwardCodeListVo = JSON.parseObject(actContent, LuckyDrawAwardCodeListVo.class); | 
|                     luckyDrawAwardCodeListVo.setAwardLine(awrdList); | 
|                     luckyDrawAwardCodeListVo.setAwrdLineIndex(0); | 
|                     String awardJson= JSON.toJSONString(luckyDrawAwardCodeListVo); | 
|                     shopActivitiesAward.setActContent(awardJson); | 
|                     shopActivitiesDao.updateByModel(shopActivitiesAward); | 
|                 } | 
|             } | 
|         }else{ | 
|             return new AjaxResult(AjaxResult.STATUS_FAIL, "保存失败"); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功"); | 
|     } | 
|   | 
|     //所有奖品ID后的集合 | 
|     public List getAwrdList(List<ActivitySignAwardSet> activitySignAwardSets){ | 
|         //插入所有奖品ID后的集合 | 
|         LinkedList awardIdFinalList = new LinkedList<>(); | 
|         if(CollUtil.isNotEmpty(activitySignAwardSets)){ | 
|             //总数 | 
|             int maxCount = 0; | 
|             HashMap<Long, ActivitySignAwardSet> integerStringHashMap = new HashMap<>(); | 
|             for(ActivitySignAwardSet activitySignAwardSet : activitySignAwardSets){ | 
|                 //总共派发数量 | 
|                 int awardInventoryCnt = activitySignAwardSet.getAwardInventoryCnt(); | 
|                 integerStringHashMap.put(activitySignAwardSet.getId(),activitySignAwardSet); | 
|                 maxCount = maxCount + awardInventoryCnt; | 
|             } | 
|             HashMap<Long, ActivitySignAwardSet> sortHashMap = sortHashMap(integerStringHashMap,2); | 
|             HashMap<Long, ActivitySignAwardSet> sortHashMapAec = sortHashMap(integerStringHashMap,1); | 
|             //获取奖品最多的ID | 
|             Long maxAwardIds = sortHashMap.keySet().stream().findFirst().get(); | 
|             Long minAwardIds = sortHashMapAec.keySet().stream().findFirst().get(); | 
|             //获取最大长度的奖品集合 | 
|             List awardIdList = new LinkedList<Long>(); | 
|             for(int i = 0; i< maxCount ; i++){ | 
|                 awardIdList.add(maxAwardIds); | 
|             } | 
|   | 
|             Iterator<Map.Entry<Long, ActivitySignAwardSet>> entries = sortHashMap.entrySet().iterator(); | 
|             //插入奖品 | 
|             while (entries.hasNext()) { | 
|                 Map.Entry<Long, ActivitySignAwardSet> entry = entries.next(); | 
|                 ActivitySignAwardSet activitySignAwardSetDone = entry.getValue(); | 
|                 int awardInventoryCnt = activitySignAwardSetDone.getAwardInventoryCnt(); | 
|                 Long awardIdNew = entry.getKey(); | 
|                 if(awardIdNew != maxAwardIds){ | 
|                     //分段之后的List | 
|                     List splitLists = getSplitList(awardInventoryCnt, awardIdList); | 
|                     for(int j = 0; j<awardInventoryCnt; j++){ | 
|                         List splitList = (List) splitLists.get(j); | 
|                         //中间插入对应的奖品ID,如果和maxAwardIds相同,则索引+1 | 
|                         List<Long> listInsert = getListInsert(maxAwardIds, awardIdNew, splitList); | 
|                         if(minAwardIds == awardIdNew){ | 
|                             awardIdFinalList.addAll(listInsert); | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         return awardIdFinalList; | 
|     } | 
|   | 
|     //中间插入对应的奖品ID,如果和maxAwardIds相同,则索引+1 | 
|     public static List<Long> getListInsert(Long awardOld,Long awardNew,List splitList){ | 
|         //中间位置索引 | 
|         LinkedList<Integer> indexs = new LinkedList<>(); | 
|         int groupFlag = splitList.size() % 2 == 0 ? (splitList.size() / 2) : (splitList.size() / 2 + 1); | 
|         for(int j = groupFlag-1; j < splitList.size();j++){ | 
|             if(splitList.get(j) == awardOld){ | 
|                 indexs.add(j); | 
|             } | 
|         } | 
|         if(CollUtil.isNotEmpty(indexs)){ | 
|             splitList.set(indexs.get(0),awardNew); | 
|         }else{ | 
|             splitList.add(groupFlag,awardNew); | 
|         } | 
|         return splitList; | 
|     } | 
|   | 
|     //等份平分数组,最后剩余的添加到倒数第二个集合中 | 
|     public static List<List<Long>> getSplitList(int splitNum, List<Long> list) { | 
|         LinkedList<List<Long>> splitList = new LinkedList<>(); | 
|         // groupFlag >= 1 | 
|         int groupFlag = list.size() % splitNum == 0 ? (list.size() / splitNum) : (list.size() / splitNum); | 
|         if(groupFlag * splitNum < list.size()){ | 
|             for (int j = 1; j <= splitNum +1; j++) { | 
|                 if ((j * groupFlag) <= list.size() ) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, j * groupFlag)); | 
|                 } else if ((j * groupFlag) > list.size()) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, list.size())); | 
|                 } | 
|             } | 
|         }else if(groupFlag * splitNum > list.size()){ | 
|             for (int j = 1; j < splitNum; j++) { | 
|                 if ((j * groupFlag) <= list.size() ) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, j * groupFlag)); | 
|                 } else if ((j * groupFlag) > list.size()) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, list.size())); | 
|                 } | 
|             } | 
|         }else{ | 
|             for (int j = 1; j <= splitNum; j++) { | 
|                 if ((j * groupFlag) <= list.size() ) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, j * groupFlag)); | 
|                 } else if ((j * groupFlag) > list.size()) { | 
|                     splitList.add(list.subList(j * groupFlag - groupFlag, list.size())); | 
|                 } | 
|             } | 
|         } | 
|         return splitList; | 
|     } | 
|   | 
|   | 
|     //对于奖品排序 1:升序进行排,2是倒序就是o2-o1 | 
|     public static HashMap<Long, ActivitySignAwardSet> sortHashMap(HashMap<Long, ActivitySignAwardSet> map,int type) { | 
|         // 首先拿到 map 的键值对集合 | 
|         Set<Map.Entry<Long, ActivitySignAwardSet>> entrySet = map.entrySet(); | 
|         // 将 set 集合转为 List 集合,为什么,为了使用工具类的排序方法 | 
|         List<Map.Entry<Long, ActivitySignAwardSet>> list = new ArrayList<Map.Entry<Long, ActivitySignAwardSet>>(entrySet); | 
|         // 使用 Collections 集合工具类对 list 进行排序,排序规则使用匿名内部类来实现 | 
|         Collections.sort(list, new Comparator<Map.Entry<Long, ActivitySignAwardSet>>() { | 
|             @Override | 
|             public int compare(Map.Entry<Long, ActivitySignAwardSet> o1, Map.Entry<Long, ActivitySignAwardSet> o2) { | 
|                 if(type == 2){ | 
|                     //按照要求根据 升序进行排,如果是倒序就是o2-o1 | 
|                     return o2.getValue().getAwardInventoryCnt() - o1.getValue().getAwardInventoryCnt(); | 
|                 } | 
|                 return o1.getValue().getAwardInventoryCnt() - o2.getValue().getAwardInventoryCnt(); | 
|             } | 
|         }); | 
|         //创建一个新的有序的 HashMap 子类的集合 | 
|         LinkedHashMap<Long, ActivitySignAwardSet> linkedHashMap = new LinkedHashMap<Long, ActivitySignAwardSet>(); | 
|         //将 List 中的数据存储在 LinkedHashMap 中 | 
|         for (Map.Entry<Long, ActivitySignAwardSet> entry : list) { | 
|             linkedHashMap.put(entry.getKey(), entry.getValue()); | 
|         } | 
|         //返回结果 | 
|         return linkedHashMap; | 
|     } | 
|   | 
|     /** | 
|      *进入修改 | 
|      */ | 
|     @ApiOperation(value = "进入修改") | 
|     @PostMapping(value = "/findLuckyDrawForUpdate") | 
|     public @ResponseBody | 
|     AjaxResult findLuckyDrawForUpdate(@RequestBody LuckyDrawForUpdateDto luckyDrawForUpdateDto) { | 
|         //设置用户公司ID | 
|         QueryUtil.setQueryLimitCom(luckyDrawForUpdateDto); | 
|         Long actId = luckyDrawForUpdateDto.getActId(); | 
|         AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); | 
|         //获取对应的活动主表信息和对应的奖品设置信息 | 
|         AddLuckyDrawSetVo addLuckyDrawSetVo = new AddLuckyDrawSetVo(); | 
|         ShopActivities shopActivity = shopActivitiesDao.selectById(actId); | 
|         if(ObjectUtil.isNotEmpty(shopActivity)) { | 
|             addLuckyDrawSetVo.setId(actId); | 
|             addLuckyDrawSetVo.setActName(shopActivity.getActName()); | 
|             addLuckyDrawSetVo.setActCode(shopActivity.getActCode()); | 
|             addLuckyDrawSetVo.setBeginTime(shopActivity.getActBeginTime()); | 
|             addLuckyDrawSetVo.setEndTime(shopActivity.getActEndTime()); | 
|   | 
|             String actContent = shopActivity.getActContent(); | 
|             LuckyDrawBasicJsonVo luckyDrawBasicJsonVo = JSON.parseObject(actContent, LuckyDrawBasicJsonVo.class); | 
|             addLuckyDrawSetVo.setLuckyDrawBasicJsonVo(luckyDrawBasicJsonVo); | 
|   | 
|             Map<String, Object> columnMap = new HashMap<String, Object>(); | 
|             columnMap.put("activity_id", actId); | 
|             columnMap.put("company_id", luckyDrawForUpdateDto.getCompanyId()); | 
|             List<ActivitySignAwardSet> activityAwardSets = activitySignAwardSetDao.selectByMap(columnMap); | 
|             addLuckyDrawSetVo.setActivityluckyDrawSets(activityAwardSets); | 
|         } | 
|         result.putInMap("addLuckyDrawSetVo", addLuckyDrawSetVo); | 
|         return result; | 
|     } | 
|     /** | 
|      * 保存 | 
|      */ | 
|     @PostMapping(value = "/updateLuckyDrawSet") | 
|     public @ResponseBody | 
|     AjaxResult updateLuckyDrawSet(@RequestBody UpdateLuckyDrawSetDto updateLuckyDrawSetDto) { | 
|         //获取当前登录人员信息 | 
|         QueryUtil.setQueryLimitCom(updateLuckyDrawSetDto); | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         Long actId = updateLuckyDrawSetDto.getActMainId(); | 
|         Long companyId = user.getCompanyId(); | 
|         ShopActivities shopActivity = shopActivitiesDao.selectById(actId); | 
|         //更新活动主表信息 | 
|         shopActivity.setActName(updateLuckyDrawSetDto.getActName()); | 
|         shopActivity.setActCode(updateLuckyDrawSetDto.getActCode()); | 
|         shopActivity.setActBeginTime(updateLuckyDrawSetDto.getBeginTime()); | 
|         shopActivity.setActEndTime(updateLuckyDrawSetDto.getEndTime()); | 
|         shopActivity.setCompanyId(companyId); | 
|         shopActivity.setCreateBy(user.getSuName()); | 
|         shopActivity.setUpdateBy(user.getSuName()); | 
|         //将基本信息转换成JSON字符串存储到活动主表的act_content字段 | 
|         LuckyDrawBasicJsonDto luckyDrawBasicJsonDto = updateLuckyDrawSetDto.getLuckyDrawBasicJsonDto(); | 
|         String json=JSON.toJSONString(luckyDrawBasicJsonDto); | 
|         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", updateLuckyDrawSetDto.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 = updateLuckyDrawSetDto.getActivityAwardSets(); | 
|         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); | 
|             } | 
|         } | 
|   | 
|         //生成中奖顺序 | 
|         List<ActivitySignAwardSet> activitySignAwardSetList = activitySignAwardSetDao | 
|                 .selectActivitySignAwardSetByActIDAndCompanyIdAndAwardType(actId, companyId, ActivitySignAwardSet.AWARDSTATE_WORK,ActivitySignAwardSet.AWARDRULE_CUMULATIVEDAY); | 
|         if(CollUtil.isNotEmpty(activitySignAwardSetList)){ | 
|             String awrdList = getAwrdList(activitySignAwardSetList).toString(); | 
|             ShopActivities shopActivitiesAward = shopActivitiesDao.selectById(actId); | 
|             String actContent = shopActivitiesAward.getActContent(); | 
|             LuckyDrawAwardCodeListVo luckyDrawAwardCodeListVo = JSON.parseObject(actContent, LuckyDrawAwardCodeListVo.class); | 
|             luckyDrawAwardCodeListVo.setAwardLine(awrdList); | 
|             luckyDrawAwardCodeListVo.setAwrdLineIndex(0); | 
|             String awardJson= JSON.toJSONString(luckyDrawAwardCodeListVo); | 
|             shopActivitiesAward.setActContent(awardJson); | 
|             shopActivitiesDao.updateByModel(shopActivitiesAward); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "保存成功"); | 
|     } | 
|   | 
|     public IPage<ActivitiesListVo> findActivitiesList(Page<ActivitiesListVo> page, | 
|                                                       ActivitiesListDto activitiesListDto) { | 
|         return shopActivitiesDao.findActivitiesList(page,activitiesListDto); | 
|     } | 
|   | 
|     /** | 
|      * 马上创建签到活动 | 
|      */ | 
|     @PostMapping(value = "/createSignAwardSet") | 
|     public @ResponseBody | 
|     AjaxResult createSignAwardSet() { | 
|         //获取当前登录人员信息 | 
|         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, "签到活动已经创建,请去活动管理菜单查看"); | 
|         } | 
|         return new AjaxResult(AjaxResult.STATUS_SUCCESS, ""); | 
|     } | 
|   | 
|     /** | 
|      * 新增签到活动 | 
|      */ | 
|     @PostMapping(value = "/addSignAwardSet") | 
|     public @ResponseBody | 
|     AjaxResult addSignAwardSet(@RequestBody AddSignAwardSetDto addSignAwardSetDto) { | 
|         return activitySignAwardSetService.activitySignAwardSetService(addSignAwardSetDto); | 
|     } | 
|      | 
|     /** | 
|      * 查询优惠券 | 
|      */ | 
|     @ApiOperation(value = "查询优惠券") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "OK",  response = CouponVo.class) | 
|     }) | 
|     @PostMapping(value = "/selectCouponList") | 
|     public @ResponseBody | 
|     AjaxResult selectCouponList(@RequestBody CouponDto couponDto) { | 
|         //设置用户公司ID | 
|         QueryUtil.setQueryLimitCom(couponDto); | 
|         //排序 | 
|         if(StringUtils.isBlank(couponDto.getSort())){ | 
|             couponDto.setSort("create_time"); | 
|             couponDto.setOrder("desc"); | 
|         } | 
|         Page<CouponVo> page = new Page(couponDto.getPageNum(), couponDto.getPageSize()); | 
|         IPage<CouponVo> rows = activitySignAwardSetService.selectCouponList(page,couponDto); | 
|         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal()); | 
|         return result; | 
|     } | 
|      | 
|     /** | 
|      * 查询商品 | 
|      */ | 
|     @ApiOperation(value = "查询商品") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "OK",  response = GoodsVo.class) | 
|     }) | 
|     @PostMapping(value = "/selectGoodsList") | 
|     public @ResponseBody | 
|     AjaxResult selectGoodsList(@RequestBody GoodsDto goodsDto) { | 
|         //设置用户公司ID | 
|         QueryUtil.setQueryLimitCom(goodsDto); | 
|         //排序 | 
|         if(StringUtils.isBlank(goodsDto.getSort())){ | 
|             goodsDto.setSort("create_time"); | 
|             goodsDto.setOrder("desc"); | 
|         } | 
|         Page<GoodsVo> page = new Page(goodsDto.getPageNum(), goodsDto.getPageSize()); | 
|         IPage<GoodsVo> rows = activitySignAwardSetService.selectGoodsList(page,goodsDto); | 
|         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal()); | 
|         return result; | 
|     } | 
|   | 
|     /** | 
|      * 查询活动列表 | 
|      */ | 
|     @ApiOperation(value = "查询活动列表") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "OK",  response = ActivitiesListVo.class) | 
|     }) | 
|     @PostMapping(value = "/findActivitiesList") | 
|     public @ResponseBody | 
|     AjaxResult findActivitiesList(@RequestBody ActivitiesListDto activitiesListDto) { | 
|         //设置用户公司ID | 
|         QueryUtil.setQueryLimitCom(activitiesListDto); | 
|         //排序 | 
|         if(StringUtils.isBlank(activitiesListDto.getSort())){ | 
|             activitiesListDto.setSort("create_time"); | 
|             activitiesListDto.setOrder("desc"); | 
|         } | 
|         Page<ActivitiesListVo> page = new Page(activitiesListDto.getPageNum(), activitiesListDto.getPageSize()); | 
|         IPage<ActivitiesListVo> rows = activitySignAwardSetService.findActivitiesList(page,activitiesListDto); | 
|         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal()); | 
|         return result; | 
|     } | 
|      | 
|     /** | 
|      *发布 | 
|      */ | 
|     @ApiOperation(value = "发布") | 
|     @PostMapping(value = "/beReady") | 
|     public @ResponseBody | 
|     AjaxResult beReady(@RequestBody BeReadyDto beReadyDto) { | 
|         return activitySignAwardSetService.beReady(beReadyDto); | 
|     } | 
|      | 
|     /** | 
|      *删除 | 
|      */ | 
|     @ApiOperation(value = "删除") | 
|     @PostMapping(value = "/delRow") | 
|     public @ResponseBody | 
|     AjaxResult delRow(@RequestBody DelRowDto delRowDto) { | 
|         return activitySignAwardSetService.delRow(delRowDto); | 
|     } | 
|      | 
|     /** | 
|      *关闭 | 
|      */ | 
|     @ApiOperation(value = "关闭") | 
|     @PostMapping(value = "/beClose") | 
|     public @ResponseBody | 
|     AjaxResult beClose(@RequestBody BeCloseDto beCloseDto) { | 
|         return activitySignAwardSetService.beClose(beCloseDto); | 
|     } | 
|      | 
|     /** | 
|      * 活动统计 | 
|      */ | 
|     @ApiOperation(value = "活动统计") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "OK",  response = SignReceiveListVo.class) | 
|     }) | 
|     @PostMapping(value = "/findSignReceiveList") | 
|     public @ResponseBody | 
|     AjaxResult findSignReceiveList(@RequestBody SignReceiveListDto signReceiveListDto) { | 
|         //设置用户公司ID | 
|         QueryUtil.setQueryLimitCom(signReceiveListDto); | 
|         //排序 | 
|         if(StringUtils.isBlank(signReceiveListDto.getSort())){ | 
|             signReceiveListDto.setSort("create_time"); | 
|             signReceiveListDto.setOrder("desc"); | 
|         } | 
|         Page<SignReceiveListVo> page = new Page(signReceiveListDto.getPageNum(), signReceiveListDto.getPageSize()); | 
|         IPage<SignReceiveListVo> rows = activitySignAwardSetService.findSignReceiveList(page,signReceiveListDto); | 
|         AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal()); | 
|         return result; | 
|     } | 
|      | 
|     /** | 
|      *进入修改 | 
|      */ | 
|     @ApiOperation(value = "进入修改") | 
|     @PostMapping(value = "/findSignForUpdate") | 
|     public @ResponseBody | 
|     AjaxResult findSignForUpdate(@RequestBody SignForUpdateDto signForUpdateDto) { | 
|         return activitySignAwardSetService.findSignForUpdate(signForUpdateDto); | 
|     } | 
|      | 
|     /** | 
|      * 保存 | 
|      */ | 
|     @PostMapping(value = "/updateSignAwardSet") | 
|     public @ResponseBody | 
|     AjaxResult updateSignAwardSet(@RequestBody UpdateSignAwardSetDto updateSignAwardSetDto) { | 
|         return activitySignAwardSetService.updateSignAwardSet(updateSignAwardSetDto); | 
|     } | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|      | 
|   | 
|    | 
| } |