浏览代码

抽奖功能优化

user5 2 年之前
父节点
当前提交
b9ee48d1e9

+ 90 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/controller/LuckyDrawInfoController.java

@@ -74,9 +74,16 @@ public class LuckyDrawInfoController {
 
             LuckyDrawInfoDto btn = new LuckyDrawInfoDto(); // 新增按钮行
             btn.setIsButton("1"); // 标记此行数据是按钮
-            btn.setEventsId(re.getId());
+            if(re.getLuckyDrawMembersDtos().size()>0){
+                btn.setLuckyDrawFlag("1");
+                btn.setLuckyDrawAgainFlag("1");
+            }else{
+                btn.setLuckyDrawFlag("0");
+                btn.setLuckyDrawAgainFlag("0");
+            }
+            btn.setEventsId(re.getEventsId());
             btn.setNumber(re.getNumber());
-            btn.setId(re.getAwardId());
+            btn.setId(re.getId());
             addList.add(btn);
 
             if(re.getLuckyDrawMembersDtos().size()>0){
@@ -92,7 +99,74 @@ public class LuckyDrawInfoController {
                 re.setShowFlag("2");
             }
 
-            re.getLuckyDrawMembersDtos().forEach(mem->{
+            if(re.getLuckyDrawMembersDtos().size()>0){
+                for (int i = 0; i< re.getLuckyDrawMembersDtos().size(); i++){
+                    LuckyDrawMembersDto mem = re.getLuckyDrawMembersDtos().get(i);
+                    LuckyDrawInfoDto l = new LuckyDrawInfoDto();
+                    l.setAwardsName(mem.getName());
+                    l.setNumber(mem.getPhone());
+                    l.setPrizeName(mem.getOfficeName());
+                    l.setShowFlag("0");
+                    l.setLuckyDrawFlag("1");
+                    l.setSerialNumber(i + 1);
+                    addList.add(l);
+                }
+            }
+        });
+        result.setRecords(addList);
+        return ResponseEntity.ok (result);
+    }
+
+    @ApiLog("数据拼接(中奖展示)")
+    @GetMapping("pjShowList")
+    public ResponseEntity<IPage<LuckyDrawInfoDto>> pjShowList(LuckyDrawInfoDto luckyDrawEventsDTO, Page<LuckyDrawInfoDto> page) throws Exception {
+        page.setSize(-1);
+        page.setCurrent(1);
+        IPage<LuckyDrawInfoDto> result = new Page<LuckyDrawInfoDto>();
+        result = drawInfoService.findList (page,luckyDrawEventsDTO);
+        List<LuckyDrawInfoDto> records = result.getRecords();
+        List<LuckyDrawInfoDto> addList = new ArrayList<>();
+        //获取已抽奖人数和本活动剩余未抽奖人数
+       //drawInfoService.getLuckyDrawCount(luckyDrawEventsDTO);
+        records.forEach(re ->{
+            if(re.getLuckyDrawMembersDtos().size()>0){
+                re.setLuckyDrawFlag("1");
+                re.setShowFlag("2");
+                re.setLuckyDrawAgainFlag("1");
+            }else{
+                re.setLuckyDrawFlag("0");
+                re.setShowFlag("1");
+                re.setLuckyDrawAgainFlag("0");
+            }
+            addList.add(re);
+            if(re.getLuckyDrawMembersDtos().size()>0){
+                LuckyDrawInfoDto sh = new LuckyDrawInfoDto();
+                sh.setAwardsName("姓名");
+                sh.setNumber("手机号");
+                sh.setPrizeName("部门");
+                sh.setShowFlag("1");
+                sh.setLuckyDrawFlag("1");
+                addList.add(sh);
+            }else{
+                re.setLuckyDrawFlag("0");
+                re.setShowFlag("2");
+            }
+
+            if(re.getLuckyDrawMembersDtos().size()>0){
+                for (int i = 0; i< re.getLuckyDrawMembersDtos().size(); i++){
+                    LuckyDrawMembersDto mem = re.getLuckyDrawMembersDtos().get(i);
+                    LuckyDrawInfoDto l = new LuckyDrawInfoDto();
+                    l.setAwardsName(mem.getName());
+                    l.setNumber(mem.getPhone());
+                    l.setPrizeName(mem.getOfficeName());
+                    l.setShowFlag("0");
+                    l.setLuckyDrawFlag("1");
+                    l.setSerialNumber(i + 1);
+                    addList.add(l);
+                }
+            }
+
+            /*re.getLuckyDrawMembersDtos().forEach(mem->{
                 LuckyDrawInfoDto l = new LuckyDrawInfoDto();
                 l.setAwardsName(mem.getName());
                 l.setNumber(mem.getPhone());
@@ -100,7 +174,7 @@ public class LuckyDrawInfoController {
                 l.setShowFlag("0");
                 l.setLuckyDrawFlag("1");
                 addList.add(l);
-            });
+            });*/
         });
         result.setRecords(addList);
         return ResponseEntity.ok (result);
@@ -130,4 +204,16 @@ public class LuckyDrawInfoController {
         return ResponseUtil.newInstance().ok (s);
     }
 
+    /**
+     * 重新抽奖
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value = "清除抽奖结果信息")
+    @PostMapping("/luckyDrawClear")
+    public ResponseEntity<String> luckyDrawClear(@RequestBody LuckyDrawInfoDto dto) throws Exception{
+        String s = drawInfoService.luckyDrawClear(dto);
+        return ResponseUtil.newInstance().ok (s);
+    }
+
 }

+ 23 - 6
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/controller/LuckyDrawMembersController.java

@@ -2,16 +2,20 @@ package com.jeeplus.test.luckyDraw.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.test.luckyDraw.service.LuckyDrawMembersService;
 import com.jeeplus.test.luckyDraw.service.dto.LuckyDrawMembersDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author: 王强
@@ -25,16 +29,22 @@ public class LuckyDrawMembersController {
     private LuckyDrawMembersService membersService;
 
 
-    /**
-     * 删除
-     * @param id
-     * @return
-     */
-    @ApiOperation(value = "删除")
+
+    /*@ApiOperation(value = "删除")
     @GetMapping("/remove")
     public ResponseEntity<String> remove(@RequestParam String id){
         String s = membersService.remove(id);
         return ResponseEntity.ok(s);
+    }*/
+    /**
+     * 删除
+     * @param ids
+     * @return
+     */
+    @ApiLog(value = "删除")
+    @DeleteMapping("remove")
+    public ResponseEntity delete(String ids) {
+        return membersService.deleteByIds(ids);
     }
 
     /**
@@ -93,6 +103,13 @@ public class LuckyDrawMembersController {
         page.setSize(-1);
         page.setCurrent(1);
         IPage<LuckyDrawMembersDto> iPage = membersService.list(page, dto);
+        List<LuckyDrawMembersDto> records = iPage.getRecords();
+        if(records.size()>0){
+            for (int i = 0; i < records.size(); i++) {
+                LuckyDrawMembersDto info = records.get(i);
+                info.setSerialNumber(i +1);
+            }
+        }
         return ResponseEntity.ok(iPage);
     }
 }

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/mapper/xml/LuckyDrawInfoMapper.xml

@@ -50,7 +50,7 @@
     </select>
     <select id="selectUserId" resultType="java.lang.String">
         select id from `lucky_draw_members`
-        WHERE id not in (SELECT member_id FROM lucky_draw_info b WHERE b.event_id = #{eventId}) and event_id = #{eventId}
+        WHERE id not in (SELECT member_id FROM lucky_draw_info b WHERE b.event_id = #{eventId}) and event_id = #{eventId} and del_flag = 0
         order by rand() LIMIT #{number}
     </select>
     <select id="getUserInfo" resultType="com.jeeplus.test.luckyDraw.service.dto.LuckyDrawMembersDto">

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/service/LuckyDrawInfoService.java

@@ -80,6 +80,12 @@ public class LuckyDrawInfoService extends ServiceImpl<LuckyDrawInfoMapper, Lucky
         return add(dto);
     }
 
+    public String luckyDrawClear(LuckyDrawInfoDto dto){
+        //根据活动id和奖项id对该奖项数据信息进行删除
+        drawInfoMapper.deleteByEventIdAndAwardId(dto);
+        return "清除成功";
+    }
+
     /**
      *根据奖品数量随机抽取用户进行抽奖
      * @param dto

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/service/LuckyDrawMembersService.java

@@ -1,7 +1,9 @@
 package com.jeeplus.test.luckyDraw.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.Lists;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -9,14 +11,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.luckyDraw.domain.LuckyDrawAwards;
 import com.jeeplus.test.luckyDraw.domain.LuckyDrawMembers;
 import com.jeeplus.test.luckyDraw.mapper.LuckyDrawMembersMapper;
 import com.jeeplus.test.luckyDraw.service.dto.LuckyDrawMembersDto;
 import org.springframework.beans.BeanUtils;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.UUID;
 
@@ -36,6 +41,19 @@ public class LuckyDrawMembersService extends ServiceImpl<LuckyDrawMembersMapper,
         return "操作成功";
     }
 
+    public ResponseEntity deleteByIds(String ids) {
+        String idArray[] =ids.split(",");
+        ArrayList<String> strings = Lists.newArrayList(idArray);
+        if (CollectionUtil.isNotEmpty(strings)) {
+            // 删除活动
+            this.removeByIds (strings);
+            // 根据活动id删除奖项数据
+            membersMapper.delete(new QueryWrapper<LuckyDrawMembers>().lambda().in(LuckyDrawMembers::getId,strings));
+        }
+
+        return ResponseEntity.ok ("删除成功");
+    }
+
     public String save(LuckyDrawMembersDto dto) throws Exception{
         // 获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();

+ 1 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/service/dto/LuckyDrawInfoDto.java

@@ -26,6 +26,7 @@ public class LuckyDrawInfoDto extends BaseDTO implements Serializable {
     private String showFlag; //展示状态
     private String luckyDrawAgainFlag; //重新抽奖
     private String isButton; //按钮行标记  1为按钮
+    private Integer serialNumber; //序号
     /**
      * 奖项
      */

+ 1 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/luckyDraw/service/dto/LuckyDrawMembersDto.java

@@ -19,6 +19,7 @@ public class LuckyDrawMembersDto implements Serializable {
     private String phone;
     private String eventId; //活动id
     private String createBy;
+    private Integer serialNumber; //序号
 
     private String eventName;//活动名称
 }