Selaa lähdekoodia

Merge branch 'develop_zqc'

DESKTOP-VAEGFGM\zqc 6 kuukautta sitten
vanhempi
commit
9387209277
30 muutettua tiedostoa jossa 703 lisäystä ja 161 poistoa
  1. 0 13
      menduner/menduner-flames-biz/pom.xml
  2. 3 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  3. 12 0
      menduner/menduner-system-biz/pom.xml
  4. 12 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityController.java
  5. 21 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityJoinItemController.java
  6. 40 36
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityJoinUserController.java
  7. 32 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/ActivityContentVo.java
  8. 38 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemContentVo.java
  9. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemPageReqVO.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemRespVO.java
  11. 2 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemSaveReqVO.java
  12. 26 20
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinUserSaveReqVO.java
  13. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityPageReqVO.java
  14. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityRespVO.java
  15. 4 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivitySaveReqVO.java
  16. 31 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingRuleVo.java
  17. 57 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityController.java
  18. 60 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityJoinItemController.java
  19. 57 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityJoinUserController.java
  20. 34 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/mybatis/ActivityContentConvert.java
  21. 39 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/mybatis/VotingRuleConvert.java
  22. 10 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityDO.java
  23. 5 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityJoinItemDO.java
  24. 12 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityJoinUserDO.java
  25. 14 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/votingactivity/VotingActivityJoinItemMapper.java
  26. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/votingactivity/VotingActivityMapper.java
  27. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinItemService.java
  28. 63 44
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinItemServiceImpl.java
  29. 65 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinUserServiceImpl.java
  30. 47 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityServiceImpl.java

+ 0 - 13
menduner/menduner-flames-biz/pom.xml

@@ -97,19 +97,6 @@
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-core</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.citu</groupId>
-            <artifactId>menduner-system-api</artifactId>
-            <version>2.2.0-snapshot</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.citu</groupId>
-            <artifactId>menduner-system-api</artifactId>
-            <version>2.3.0-snapshot</version>
-            <scope>compile</scope>
-        </dependency>
-
 
     </dependencies>
 

+ 3 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -615,4 +615,7 @@ public interface ErrorCodeConstants {
     ErrorCode VOTING_ACTIVITY_JOIN_ITEM_NOT_EXISTS = new ErrorCode(1_100_063_002, "投票活动参与被投票的不存在");
 
     ErrorCode VOTING_ACTIVITY_JOIN_USER_NOT_EXISTS = new ErrorCode(1_100_063_003, "投票参与人不存在");
+
+    ErrorCode VOTING_LIMIT = new ErrorCode(1_100_063_004, "投票已达上限!");
+
 }

+ 12 - 0
menduner/menduner-system-biz/pom.xml

@@ -24,6 +24,14 @@
             <artifactId>spring-cloud-starter-bootstrap</artifactId>
         </dependency>
 
+
+        <!-- 依赖服务 -->
+        <dependency>
+            <groupId>com.citu</groupId>
+            <artifactId>citu-spring-boot-starter-biz-ip</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
         <!-- 依赖服务 -->
         <dependency>
             <groupId>com.citu</groupId>
@@ -95,6 +103,10 @@
             <artifactId>citu-spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.citu</groupId>
+            <artifactId>citu-spring-boot-starter-biz-ip</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 12 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityController.java

@@ -31,9 +31,14 @@ import static com.citu.framework.apilog.core.enums.OperateTypeEnum.*;
 
 
 
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.后台
+ * @eo.path /admin-api/menduner/system/mde/voting-activity
+ */
 @Tag(name = "管理后台 - 投票活动")
 @RestController
-@RequestMapping("/mde/voting-activity")
+@RequestMapping("/menduner/system/mde/voting-activity")
 @Validated
 public class VotingActivityController {
 
@@ -42,14 +47,14 @@ public class VotingActivityController {
 
     @PostMapping("/create")
     @Operation(summary = "创建投票活动")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:create')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:create')")
     public CommonResult<Long> createVotingActivity(@Valid @RequestBody VotingActivitySaveReqVO createReqVO) {
         return success(votingActivityService.createVotingActivity(createReqVO));
     }
 
     @PutMapping("/update")
     @Operation(summary = "更新投票活动")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:update')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:update')")
     public CommonResult<Boolean> updateVotingActivity(@Valid @RequestBody VotingActivitySaveReqVO updateReqVO) {
         votingActivityService.updateVotingActivity(updateReqVO);
         return success(true);
@@ -58,7 +63,7 @@ public class VotingActivityController {
     @DeleteMapping("/delete")
     @Operation(summary = "删除投票活动")
     @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:delete')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:delete')")
     public CommonResult<Boolean> deleteVotingActivity(@RequestParam("id") Long id) {
         votingActivityService.deleteVotingActivity(id);
         return success(true);
@@ -67,7 +72,7 @@ public class VotingActivityController {
     @GetMapping("/get")
     @Operation(summary = "获得投票活动")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:query')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:query')")
     public CommonResult<VotingActivityRespVO> getVotingActivity(@RequestParam("id") Long id) {
         VotingActivityDO votingActivity = votingActivityService.getVotingActivity(id);
         return success(BeanUtils.toBean(votingActivity, VotingActivityRespVO.class));
@@ -75,7 +80,7 @@ public class VotingActivityController {
 
     @GetMapping("/page")
     @Operation(summary = "获得投票活动分页")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:query')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:query')")
     public CommonResult<PageResult<VotingActivityRespVO>> getVotingActivityPage(@Valid VotingActivityPageReqVO pageReqVO) {
         PageResult<VotingActivityDO> pageResult = votingActivityService.getVotingActivityPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, VotingActivityRespVO.class));
@@ -83,7 +88,7 @@ public class VotingActivityController {
 
     @GetMapping("/export-excel")
     @Operation(summary = "导出投票活动 Excel")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity:export')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportVotingActivityExcel(@Valid VotingActivityPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {

+ 21 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityJoinItemController.java

@@ -30,25 +30,39 @@ import static com.citu.framework.apilog.core.enums.OperateTypeEnum.*;
 
 
 
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.后台
+ * @eo.path /admin-api/menduner/system/mde/voting-activity
+ */
 @Tag(name = "管理后台 - 投票活动参与被投票的")
 @RestController
-@RequestMapping("/mde/voting-activity-join-item")
+@RequestMapping("/menduner/system/mde/voting-activity-join-item")
 @Validated
 public class VotingActivityJoinItemController {
 
     @Resource
     private VotingActivityJoinItemService votingActivityJoinItemService;
 
+
+
+
     @PostMapping("/create")
     @Operation(summary = "创建投票活动参与被投票的")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:create')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:create')")
     public CommonResult<Long> createVotingActivityJoinItem(@Valid @RequestBody VotingActivityJoinItemSaveReqVO createReqVO) {
         return success(votingActivityJoinItemService.createVotingActivityJoinItem(createReqVO));
     }
 
+    @Operation(summary = "获取候选人类型")
+    @GetMapping("/categorys")
+    public CommonResult<List<String>> getVotingActivityJoinItemCategorys(@RequestParam("votingActivityId")Long votingActivityId) {
+        return success(votingActivityJoinItemService.getVotingActivityJoinItemCategorys(votingActivityId));
+    }
+
     @PutMapping("/update")
     @Operation(summary = "更新投票活动参与被投票的")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:update')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:update')")
     public CommonResult<Boolean> updateVotingActivityJoinItem(@Valid @RequestBody VotingActivityJoinItemSaveReqVO updateReqVO) {
         votingActivityJoinItemService.updateVotingActivityJoinItem(updateReqVO);
         return success(true);
@@ -57,7 +71,7 @@ public class VotingActivityJoinItemController {
     @DeleteMapping("/delete")
     @Operation(summary = "删除投票活动参与被投票的")
     @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:delete')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:delete')")
     public CommonResult<Boolean> deleteVotingActivityJoinItem(@RequestParam("id") Long id) {
         votingActivityJoinItemService.deleteVotingActivityJoinItem(id);
         return success(true);
@@ -66,7 +80,7 @@ public class VotingActivityJoinItemController {
     @GetMapping("/get")
     @Operation(summary = "获得投票活动参与被投票的")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:query')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:query')")
     public CommonResult<VotingActivityJoinItemRespVO> getVotingActivityJoinItem(@RequestParam("id") Long id) {
         VotingActivityJoinItemDO votingActivityJoinItem = votingActivityJoinItemService.getVotingActivityJoinItem(id);
         return success(BeanUtils.toBean(votingActivityJoinItem, VotingActivityJoinItemRespVO.class));
@@ -74,7 +88,7 @@ public class VotingActivityJoinItemController {
 
     @GetMapping("/page")
     @Operation(summary = "获得投票活动参与被投票的分页")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:query')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:query')")
     public CommonResult<PageResult<VotingActivityJoinItemRespVO>> getVotingActivityJoinItemPage(@Valid VotingActivityJoinItemPageReqVO pageReqVO) {
         PageResult<VotingActivityJoinItemDO> pageResult = votingActivityJoinItemService.getVotingActivityJoinItemPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, VotingActivityJoinItemRespVO.class));
@@ -82,7 +96,7 @@ public class VotingActivityJoinItemController {
 
     @GetMapping("/export-excel")
     @Operation(summary = "导出投票活动参与被投票的 Excel")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:export')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportVotingActivityJoinItemExcel(@Valid VotingActivityJoinItemPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {

+ 40 - 36
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/VotingActivityJoinUserController.java

@@ -29,52 +29,56 @@ import com.citu.framework.apilog.core.annotation.ApiAccessLog;
 import static com.citu.framework.apilog.core.enums.OperateTypeEnum.*;
 
 
-
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.后台
+ * @eo.path /admin-api/menduner/system/mde/voting-activity
+ */
 @Tag(name = "管理后台 - 投票参与人")
 @RestController
-@RequestMapping("/mde/voting-activity-join-user")
+@RequestMapping("/menduner/system/mde/voting-activity-join-user")
 @Validated
 public class VotingActivityJoinUserController {
 
     @Resource
     private VotingActivityJoinUserService votingActivityJoinUserService;
 
-    @PostMapping("/create")
-    @Operation(summary = "创建投票参与人")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:create')")
-    public CommonResult<Long> createVotingActivityJoinUser(@Valid @RequestBody VotingActivityJoinUserSaveReqVO createReqVO) {
-        return success(votingActivityJoinUserService.createVotingActivityJoinUser(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新投票参与人")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:update')")
-    public CommonResult<Boolean> updateVotingActivityJoinUser(@Valid @RequestBody VotingActivityJoinUserSaveReqVO updateReqVO) {
-        votingActivityJoinUserService.updateVotingActivityJoinUser(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除投票参与人")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:delete')")
-    public CommonResult<Boolean> deleteVotingActivityJoinUser(@RequestParam("id") Long id) {
-        votingActivityJoinUserService.deleteVotingActivityJoinUser(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得投票参与人")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:query')")
-    public CommonResult<VotingActivityJoinUserRespVO> getVotingActivityJoinUser(@RequestParam("id") Long id) {
-        VotingActivityJoinUserDO votingActivityJoinUser = votingActivityJoinUserService.getVotingActivityJoinUser(id);
-        return success(BeanUtils.toBean(votingActivityJoinUser, VotingActivityJoinUserRespVO.class));
-    }
+//    @PostMapping("/create")
+//    @Operation(summary = "创建投票参与人")
+////    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:create')")
+//    public CommonResult<Long> createVotingActivityJoinUser(@Valid @RequestBody VotingActivityJoinUserSaveReqVO createReqVO) {
+//        return success(votingActivityJoinUserService.createVotingActivityJoinUser(createReqVO));
+//    }
+
+//    @PutMapping("/update")
+//    @Operation(summary = "更新投票参与人")
+////    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:update')")
+//    public CommonResult<Boolean> updateVotingActivityJoinUser(@Valid @RequestBody VotingActivityJoinUserSaveReqVO updateReqVO) {
+//        votingActivityJoinUserService.updateVotingActivityJoinUser(updateReqVO);
+//        return success(true);
+//    }
+
+//    @DeleteMapping("/delete")
+//    @Operation(summary = "删除投票参与人")
+//    @Parameter(name = "id", description = "编号", required = true)
+////    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:delete')")
+//    public CommonResult<Boolean> deleteVotingActivityJoinUser(@RequestParam("id") Long id) {
+//        votingActivityJoinUserService.deleteVotingActivityJoinUser(id);
+//        return success(true);
+//    }
+
+//    @GetMapping("/get")
+//    @Operation(summary = "获得投票参与人")
+//    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+////    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:query')")
+//    public CommonResult<VotingActivityJoinUserRespVO> getVotingActivityJoinUser(@RequestParam("id") Long id) {
+//        VotingActivityJoinUserDO votingActivityJoinUser = votingActivityJoinUserService.getVotingActivityJoinUser(id);
+//        return success(BeanUtils.toBean(votingActivityJoinUser, VotingActivityJoinUserRespVO.class));
+//    }
 
     @GetMapping("/page")
     @Operation(summary = "获得投票参与人分页")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:query')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:query')")
     public CommonResult<PageResult<VotingActivityJoinUserRespVO>> getVotingActivityJoinUserPage(@Valid VotingActivityJoinUserPageReqVO pageReqVO) {
         PageResult<VotingActivityJoinUserDO> pageResult = votingActivityJoinUserService.getVotingActivityJoinUserPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, VotingActivityJoinUserRespVO.class));
@@ -82,7 +86,7 @@ public class VotingActivityJoinUserController {
 
     @GetMapping("/export-excel")
     @Operation(summary = "导出投票参与人 Excel")
-    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:export')")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-user:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportVotingActivityJoinUserExcel(@Valid VotingActivityJoinUserPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {

+ 32 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/ActivityContentVo.java

@@ -0,0 +1,32 @@
+package com.citu.module.menduner.system.controller.admin.votingactivity.vo;
+
+public class ActivityContentVo {
+
+    /**
+     * 背景图片
+     */
+    private String backgroundImg;
+
+
+    /**
+     * 内容管理部分
+     */
+    private String content;
+
+
+    public String getBackgroundImg() {
+        return backgroundImg;
+    }
+
+    public void setBackgroundImg(String backgroundImg) {
+        this.backgroundImg = backgroundImg;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+}

+ 38 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemContentVo.java

@@ -0,0 +1,38 @@
+package com.citu.module.menduner.system.controller.admin.votingactivity.vo;
+
+import java.util.List;
+
+public class VotingActivityJoinItemContentVo {
+
+    private List<String> banners;
+
+    private String video;
+
+
+    private String content;
+
+
+    public List<String> getBanners() {
+        return banners;
+    }
+
+    public void setBanners(List<String> banners) {
+        this.banners = banners;
+    }
+
+    public String getVideo() {
+        return video;
+    }
+
+    public void setVideo(String video) {
+        this.video = video;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+}

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemPageReqVO.java

@@ -15,6 +15,13 @@ import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DA
 @ToString(callSuper = true)
 public class VotingActivityJoinItemPageReqVO extends PageParam {
 
+
+    /**
+     * 0.序号排序 也是默认
+     * 1.得票排序
+     */
+    private Integer sortType=0;
+
     @Schema(description = "活动id", example = "27263")
     private Long votingActivityId;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemRespVO.java

@@ -31,7 +31,7 @@ public class VotingActivityJoinItemRespVO {
 
     @Schema(description = "投票介绍")
     @ExcelProperty("投票介绍")
-    private String votingActivityJoinItemContent;
+    private VotingActivityJoinItemContentVo votingActivityJoinItemContent;
 
     @Schema(description = "得票数")
     @ExcelProperty("得票数")

+ 2 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinItemSaveReqVO.java

@@ -23,13 +23,10 @@ public class VotingActivityJoinItemSaveReqVO {
     private String votingActivityJoinItemCategory;
 
     @Schema(description = "投票介绍")
-    private String votingActivityJoinItemContent;
+    private VotingActivityJoinItemContentVo votingActivityJoinItemContent;
+
 
-    @Schema(description = "得票数")
-    private Integer votingActivityJoinItemNum;
 
-    @Schema(description = "编号,序号")
-    private Integer num;
 
     @Schema(description = "头像")
     private String headImg;

+ 26 - 20
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityJoinUserSaveReqVO.java

@@ -15,31 +15,37 @@ public class VotingActivityJoinUserSaveReqVO {
     @Schema(description = "用户id投票人", example = "4989")
     private Long userId;
 
+    @Schema(description = "活动id", example = "4989")
+    private Long votingActivityId;
+
+
     @Schema(description = "投票的项", example = "29329")
     private Long votingActivityJoinItemId;
 
     @Schema(description = "投票人id")
     private String ip;
 
-    @Schema(description = "投票人电话")
-    private String phone;
-
-    @Schema(description = "投票人头像")
-    private String headImg;
-
-    @Schema(description = "投票人姓名", example = "王五")
-    private String nickName;
-
-    @Schema(description = "邀请人", example = "2573")
-    private Integer inviterUserId;
-
-    @Schema(description = "邀请电话")
-    private String inviterUserPhone;
-
-    @Schema(description = "邀请人姓名", example = "张三")
-    private String inviterNickName;
-
-    @Schema(description = "邀请渠道/方式")
-    private String inviterChannel;
+    private String userAgent;
+
+//    @Schema(description = "投票人电话")
+//    private String phone;
+//
+//    @Schema(description = "投票人头像")
+//    private String headImg;
+//
+//    @Schema(description = "投票人姓名", example = "王五")
+//    private String nickName;
+//
+//    @Schema(description = "邀请人", example = "2573")
+//    private Integer inviterUserId;
+//
+//    @Schema(description = "邀请电话")
+//    private String inviterUserPhone;
+//
+//    @Schema(description = "邀请人姓名", example = "张三")
+//    private String inviterNickName;
+//
+//    @Schema(description = "邀请渠道/方式")
+//    private String inviterChannel;
 
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityPageReqVO.java

@@ -14,6 +14,9 @@ import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DA
 @ToString(callSuper = true)
 public class VotingActivityPageReqVO extends PageParam {
 
+    @Schema(description = "活动id")
+    private Long votingActivityId;
+
     @Schema(description = "活动名称")
     private String activityTitle;
 

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivityRespVO.java

@@ -33,7 +33,7 @@ public class VotingActivityRespVO {
 
     @Schema(description = "活动描述")
     @ExcelProperty("活动描述")
-    private String activityContent;
+    private ActivityContentVo activityContent;
 
     @Schema(description = "活动主办单位")
     @ExcelProperty("活动主办单位")
@@ -49,7 +49,7 @@ public class VotingActivityRespVO {
 
     @Schema(description = "投票规则")
     @ExcelProperty("投票规则")
-    private String votingRule;
+    private VotingRuleVo votingRule;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")

+ 4 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingActivitySaveReqVO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
 import java.time.LocalDateTime;
+import java.util.Map;
 
 @Schema(description = "管理后台 - 投票活动新增/修改 Request VO")
 @Data
@@ -15,8 +16,7 @@ public class VotingActivitySaveReqVO {
     @Schema(description = "活动名称")
     private String activityTitle;
 
-    @Schema(description = "活动状态", example = "2")
-    private String activityStatus;
+
 
     @Schema(description = "活动开始时间")
     private LocalDateTime activityStartDate;
@@ -25,19 +25,14 @@ public class VotingActivitySaveReqVO {
     private LocalDateTime activityEndDate;
 
     @Schema(description = "活动描述")
-    private String activityContent;
+    private ActivityContentVo activityContent;
 
     @Schema(description = "活动主办单位")
     private String activityOrganizer;
 
-    @Schema(description = "访问量")
-    private Integer activityHot;
-
-    @Schema(description = "活动总票数")
-    private Integer activityVotingTotel;
 
     @Schema(description = "投票规则")
-    private String votingRule;
+    private VotingRuleVo votingRule;
 
     @Schema(description = "头像")
     private String headImg;

+ 31 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/votingactivity/vo/VotingRuleVo.java

@@ -0,0 +1,31 @@
+package com.citu.module.menduner.system.controller.admin.votingactivity.vo;
+
+public class VotingRuleVo {
+
+    /**
+     * 投票频率
+     *  day 每天  month 每月 year 每年
+     */
+    private String dateType;
+
+    /**
+     * 指定频率内可投票数
+     */
+    private Integer num;
+
+    public String getDateType() {
+        return dateType;
+    }
+
+    public void setDateType(String dateType) {
+        this.dateType = dateType;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+}

+ 57 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityController.java

@@ -0,0 +1,57 @@
+package com.citu.module.menduner.system.controller.app.votingactivity;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityPageReqVO;
+import com.citu.module.menduner.system.service.votingactivity.VotingActivityJoinItemService;
+import com.citu.module.menduner.system.service.votingactivity.VotingActivityService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.前台
+ * @eo.path /app-api/menduner-system/mde/voting-activity
+ */
+@Tag(name = "投票活动")
+@RestController
+@RequestMapping("/menduner/system/mde/voting-activity")
+@Validated
+public class AppVotingActivityController {
+
+
+    VotingActivityService votingActivityService;
+
+
+    /**
+     * @eo.name 查询门墩儿投票活动
+     * @eo.url /page
+     * @eo.method post
+     * @eo.request-type json
+     * @param pageReqVO
+     * @return CommonResult
+     */
+    @PostMapping("/page")
+    public CommonResult getVotingActivityJoinPage(@RequestBody  VotingActivityPageReqVO pageReqVO) {
+        return CommonResult.success(votingActivityService.getVotingActivityPage(pageReqVO));
+    }
+
+
+    /**
+     * @eo.name setVotingActivityService
+     * @eo.url
+     * @eo.method get
+     * @eo.request-type formdata
+     * @param votingActivityService
+     * @return void
+     */
+    @Autowired
+    public void setVotingActivityService(VotingActivityService votingActivityService) {
+        this.votingActivityService = votingActivityService;
+    }
+
+}

+ 60 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityJoinItemController.java

@@ -0,0 +1,60 @@
+package com.citu.module.menduner.system.controller.app.votingactivity;
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinItemPageReqVO;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinItemRespVO;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinItemSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinItemDO;
+import com.citu.module.menduner.system.service.votingactivity.VotingActivityJoinItemService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.前台
+ * @eo.path /app-api/menduner/system/mde/voting-activity
+ */
+@Tag(name = "管理后台 - 投票活动参与被投票的")
+@RestController
+@RequestMapping("/menduner/system/mde/mde/voting-activity-join-item")
+@Validated
+public class AppVotingActivityJoinItemController {
+
+    @Resource
+    private VotingActivityJoinItemService votingActivityJoinItemService;
+
+    @PostMapping("/page")
+    @Operation(summary = "获得投票活动参与被投票项的分页")
+//    @PreAuthorize("@ss.hasPermission('mde:voting-activity-join-item:query')")
+    public CommonResult<PageResult<VotingActivityJoinItemRespVO>> getVotingActivityJoinItemPage(@Valid VotingActivityJoinItemPageReqVO pageReqVO) {
+        PageResult<VotingActivityJoinItemDO> pageResult = votingActivityJoinItemService.getVotingActivityJoinItemPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, VotingActivityJoinItemRespVO.class));
+    }
+
+
+
+
+
+
+
+
+
+}

+ 57 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/votingactivity/AppVotingActivityJoinUserController.java

@@ -0,0 +1,57 @@
+package com.citu.module.menduner.system.controller.app.votingactivity;
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.common.util.servlet.ServletUtils;
+import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinUserPageReqVO;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinUserRespVO;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinUserSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinUserDO;
+import com.citu.module.menduner.system.service.votingactivity.VotingActivityJoinUserService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+
+/**
+ * @eo.api-type http
+ * @eo.groupName 新门墩儿.投票活动.前台
+ * @eo.path /app-api/menduner-system/mde/voting-activity
+ */
+@Tag(name = "投票参与人")
+@RestController
+@RequestMapping("/menduner/system/mde/voting-activity-join-user")
+@Validated
+public class AppVotingActivityJoinUserController {
+
+    @Resource
+    private VotingActivityJoinUserService votingActivityJoinUserService;
+
+    @PostMapping("/voting")
+    @Operation(summary = "投票")
+    public CommonResult<Long> createVotingActivityJoinUser(@Valid @RequestBody VotingActivityJoinUserSaveReqVO createReqVO, HttpServletRequest request) {
+        createReqVO.setUserId(LoginUserContext.getUserId());
+        createReqVO.setIp(ServletUtils.getClientIP(request));
+        createReqVO.setUserAgent(ServletUtils.getUserAgent(request));
+        return success(votingActivityJoinUserService.createVotingActivityJoinUser(createReqVO));
+    }
+
+
+}

+ 34 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/mybatis/ActivityContentConvert.java

@@ -0,0 +1,34 @@
+package com.citu.module.menduner.system.convert.mybatis;
+
+import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
+import com.citu.framework.common.util.json.JsonUtils;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.ActivityContentVo;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingRuleVo;
+
+import java.lang.reflect.Field;
+
+public class ActivityContentConvert extends AbstractJsonTypeHandler<ActivityContentVo> {
+    public ActivityContentConvert(Class<?> type) {
+        super(type);
+    }
+
+    public ActivityContentConvert(Class<?> type, Field field) {
+        super(type, field);
+    }
+
+    @Override
+    public ActivityContentVo parse(String json) {
+        if(null == json){
+            new ActivityContentVo();
+        }
+        return JsonUtils.parseObject2(json,ActivityContentVo.class);
+    }
+
+    @Override
+    public String toJson(ActivityContentVo obj) {
+        if(null!=obj){
+            return JsonUtils.toJsonString(obj);
+        }
+        return "{}";
+    }
+}

+ 39 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/mybatis/VotingRuleConvert.java

@@ -0,0 +1,39 @@
+package com.citu.module.menduner.system.convert.mybatis;
+
+import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
+import com.citu.framework.common.util.json.JsonUtils;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.ActivityContentVo;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingRuleVo;
+
+import java.lang.reflect.Field;
+
+public class VotingRuleConvert extends AbstractJsonTypeHandler<VotingRuleVo> {
+    public VotingRuleConvert(Class<?> type) {
+        super(type);
+        System.out.println(type);
+
+    }
+
+    public VotingRuleConvert(Class<?> type, Field field) {
+        super(type, field);
+        System.out.println(type);
+
+    }
+
+    @Override
+    public VotingRuleVo parse(String json) {
+        if(null == json){
+          return   new VotingRuleVo();
+        }
+
+        return JsonUtils.parseObject2(json,VotingRuleVo.class);
+    }
+
+    @Override
+    public String toJson(VotingRuleVo obj) {
+        if(null!=obj){
+            return JsonUtils.toJsonString(obj);
+        }
+        return "{}";
+    }
+}

+ 10 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityDO.java

@@ -1,5 +1,10 @@
 package com.citu.module.menduner.system.dal.dataobject.votingactivity;
 
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.ActivityContentVo;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingRuleVo;
+import com.citu.module.menduner.system.convert.mybatis.ActivityContentConvert;
+import com.citu.module.menduner.system.convert.mybatis.VotingRuleConvert;
 import lombok.*;
 import java.util.*;
 import java.time.LocalDateTime;
@@ -14,7 +19,7 @@ import com.citu.framework.mybatis.core.dataobject.BaseDO;
  *
  * @author admin
  */
-@TableName("mde_voting_activity")
+@TableName(value = "mde_voting_activity",autoResultMap = true)
 @KeySequence("mde_voting_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -48,7 +53,8 @@ public class VotingActivityDO extends BaseDO {
     /**
      * 活动描述
      */
-    private String activityContent;
+    @TableField(typeHandler = ActivityContentConvert.class)
+    private ActivityContentVo activityContent;
     /**
      * 活动主办单位
      */
@@ -64,7 +70,8 @@ public class VotingActivityDO extends BaseDO {
     /**
      * 投票规则
      */
-    private String votingRule;
+    @TableField(typeHandler = VotingRuleConvert.class)
+    private VotingRuleVo votingRule;
     /**
      * 头像
      */

+ 5 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityJoinItemDO.java

@@ -1,5 +1,7 @@
 package com.citu.module.menduner.system.dal.dataobject.votingactivity;
 
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityJoinItemContentVo;
 import lombok.*;
 import java.util.*;
 import java.time.LocalDateTime;
@@ -12,7 +14,7 @@ import com.citu.framework.mybatis.core.dataobject.BaseDO;
  *
  * @author admin
  */
-@TableName("mde_voting_activity_join_item")
+@TableName(value = "mde_voting_activity_join_item",autoResultMap = true)
 @KeySequence("mde_voting_activity_join_item_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -42,7 +44,8 @@ public class VotingActivityJoinItemDO extends BaseDO {
     /**
      * 投票介绍
      */
-    private String votingActivityJoinItemContent;
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private VotingActivityJoinItemContentVo votingActivityJoinItemContent;
     /**
      * 得票数
      */

+ 12 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/votingactivity/VotingActivityJoinUserDO.java

@@ -24,6 +24,9 @@ public class VotingActivityJoinUserDO extends BaseDO {
      */
     @TableId(type = IdType.ASSIGN_ID)
     private Long votingActivityJoinUserId;
+
+    private Long votingActivityId;
+
     /**
      * 用户id投票人
      */
@@ -65,4 +68,13 @@ public class VotingActivityJoinUserDO extends BaseDO {
      */
     private String inviterChannel;
 
+
+    private String userAgent;
+
+    private String province;
+
+    private String city;
+
+    private String district;
+
 }

+ 14 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/votingactivity/VotingActivityJoinItemMapper.java

@@ -8,6 +8,9 @@ import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinItemDO;
 import org.apache.ibatis.annotations.Mapper;
 import com.citu.module.menduner.system.controller.admin.votingactivity.vo.*;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 /**
  * 投票活动参与被投票的 Mapper
@@ -27,7 +30,17 @@ public interface VotingActivityJoinItemMapper extends BaseMapperX<VotingActivity
                 .eqIfPresent(VotingActivityJoinItemDO::getNum, reqVO.getNum())
                 .betweenIfPresent(VotingActivityJoinItemDO::getCreateTime, reqVO.getCreateTime())
                 .eqIfPresent(VotingActivityJoinItemDO::getHeadImg, reqVO.getHeadImg())
-                .orderByDesc(VotingActivityJoinItemDO::getVotingActivityJoinItemId));
+                .orderByDesc(0==reqVO.getSortType()?VotingActivityJoinItemDO::getVotingActivityJoinItemId:VotingActivityJoinItemDO::getVotingActivityJoinItemNum)
+
+        );
     }
 
+    @Select("select ifnull(max(num),0) from mde_voting_activity_join_item where voting_activity_id =#{votingActivityId} ")
+    Integer getNum(@Param("votingActivityId") Long votingActivityId);
+
+    @Update("update mde_voting_activity_join_item  set voting_activity_join_item_num =voting_activity_join_item_num+1   where voting_activity_join_item_id=#{votingActivityJoinItemId}")
+    void votingAdd(Long votingActivityJoinItemId);
+
+    @Select("select voting_activity_join_item_category  from mde_voting_activity_join_item where   voting_activity_id=#{votingActivityId}  group by voting_activity_join_item_category")
+    List<String> getVotingActivityJoinItemCategorys(@Param("votingActivityId") Long votingActivityId);
 }

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/votingactivity/VotingActivityMapper.java

@@ -30,6 +30,7 @@ public interface VotingActivityMapper extends BaseMapperX<VotingActivityDO> {
                 .eqIfPresent(VotingActivityDO::getVotingRule, reqVO.getVotingRule())
                 .betweenIfPresent(VotingActivityDO::getCreateTime, reqVO.getCreateTime())
                 .eqIfPresent(VotingActivityDO::getHeadImg, reqVO.getHeadImg())
+                .eqIfPresent(VotingActivityDO::getVotingActivityId, reqVO.getVotingActivityId())
                 .orderByDesc(VotingActivityDO::getVotingActivityId));
     }
 

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinItemService.java

@@ -52,4 +52,8 @@ public interface VotingActivityJoinItemService {
      */
     PageResult<VotingActivityJoinItemDO> getVotingActivityJoinItemPage(VotingActivityJoinItemPageReqVO pageReqVO);
 
-}
+    void votingAdd(Long votingActivityJoinItemId);
+
+    List<String> getVotingActivityJoinItemCategorys(Long votingActivityId);
+
+ }

+ 63 - 44
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinItemServiceImpl.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.service.votingactivity;
 
 
+import com.baomidou.lock.annotation.Lock4j;
 import com.citu.module.menduner.system.controller.admin.votingactivity.vo.*;
 import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinItemDO;
 import com.citu.module.menduner.system.dal.mysql.votingactivity.VotingActivityJoinItemMapper;
@@ -27,49 +28,67 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.VOTING_AC
 @Validated
 public class VotingActivityJoinItemServiceImpl implements VotingActivityJoinItemService {
 
-@Resource
-private VotingActivityJoinItemMapper votingActivityJoinItemMapper;
-
-@Override
-public Long createVotingActivityJoinItem(VotingActivityJoinItemSaveReqVO createReqVO) {
-        // 插入
-VotingActivityJoinItemDO votingActivityJoinItem = BeanUtils.toBean(createReqVO, VotingActivityJoinItemDO.class);
-votingActivityJoinItemMapper.insert(votingActivityJoinItem);
-        // 返回
-return votingActivityJoinItem.getVotingActivityJoinItemId();
-}
-
-@Override
-public void updateVotingActivityJoinItem(VotingActivityJoinItemSaveReqVO updateReqVO) {
-        // 校验存在
-validateVotingActivityJoinItemExists(updateReqVO.getVotingActivityJoinItemId());
-        // 更新
-VotingActivityJoinItemDO updateObj = BeanUtils.toBean(updateReqVO, VotingActivityJoinItemDO.class);
-votingActivityJoinItemMapper.updateById(updateObj);
-}
-
-@Override
-public void deleteVotingActivityJoinItem(Long id) {
-        // 校验存在
-validateVotingActivityJoinItemExists(id);
-        // 删除
-votingActivityJoinItemMapper.deleteById(id);
-}
-
-private void validateVotingActivityJoinItemExists(Long id) {
-if (votingActivityJoinItemMapper.selectById(id) == null) {
-throw exception(VOTING_ACTIVITY_JOIN_ITEM_NOT_EXISTS);
-}
-}
-
-@Override
-public VotingActivityJoinItemDO getVotingActivityJoinItem(Long id) {
-return votingActivityJoinItemMapper.selectById(id);
-}
-
-@Override
-public PageResult<VotingActivityJoinItemDO> getVotingActivityJoinItemPage(VotingActivityJoinItemPageReqVO pageReqVO) {
-    return votingActivityJoinItemMapper.selectPage(pageReqVO);
-    }
+        @Resource
+        private VotingActivityJoinItemMapper votingActivityJoinItemMapper;
+
+
+
+        @Lock4j(keys = {"#votingActivityId"},acquireTimeout = -1L)
+        @Override
+        public Long createVotingActivityJoinItem(VotingActivityJoinItemSaveReqVO createReqVO) {
+            // 插入
+            VotingActivityJoinItemDO votingActivityJoinItem = BeanUtils.toBean(createReqVO, VotingActivityJoinItemDO.class);
+            votingActivityJoinItem.setVotingActivityJoinItemNum(0);
+
+            votingActivityJoinItem.setNum( votingActivityJoinItemMapper.getNum(votingActivityJoinItem.getVotingActivityId())+1);
+            votingActivityJoinItemMapper.insert(votingActivityJoinItem);
+            // 返回
+            return votingActivityJoinItem.getVotingActivityJoinItemId();
+        }
+
+        @Override
+        public void updateVotingActivityJoinItem(VotingActivityJoinItemSaveReqVO updateReqVO) {
+            // 校验存在
+            validateVotingActivityJoinItemExists(updateReqVO.getVotingActivityJoinItemId());
+            // 更新
+            VotingActivityJoinItemDO updateObj = BeanUtils.toBean(updateReqVO, VotingActivityJoinItemDO.class);
+            votingActivityJoinItemMapper.updateById(updateObj);
+        }
+
+        @Override
+        public void deleteVotingActivityJoinItem(Long id) {
+            // 校验存在
+            validateVotingActivityJoinItemExists(id);
+            // 删除
+            votingActivityJoinItemMapper.deleteById(id);
+        }
+
+        private void validateVotingActivityJoinItemExists(Long id) {
+            if (votingActivityJoinItemMapper.selectById(id) == null) {
+                throw exception(VOTING_ACTIVITY_JOIN_ITEM_NOT_EXISTS);
+            }
+        }
+
+        @Override
+        public VotingActivityJoinItemDO getVotingActivityJoinItem(Long id) {
+            return votingActivityJoinItemMapper.selectById(id);
+        }
+
+        @Override
+        public PageResult<VotingActivityJoinItemDO> getVotingActivityJoinItemPage(VotingActivityJoinItemPageReqVO pageReqVO) {
+            return votingActivityJoinItemMapper.selectPage(pageReqVO);
+        }
+
+        @Override
+        public void votingAdd(Long votingActivityJoinItemId) {
+            votingActivityJoinItemMapper.votingAdd(votingActivityJoinItemId);
+        }
+
+        @Override
+        public List<String> getVotingActivityJoinItemCategorys(Long votingActivityId) {
+          return   votingActivityJoinItemMapper.getVotingActivityJoinItemCategorys(votingActivityId);
+        }
+
+
 
 }

+ 65 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityJoinUserServiceImpl.java

@@ -1,5 +1,11 @@
 package com.citu.module.menduner.system.service.votingactivity;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.citu.framework.ip.core.Area;
+import com.citu.framework.ip.core.utils.IPUtils;
+import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityDO;
+import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinItemDO;
 import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityJoinUserDO;
 import com.citu.module.menduner.system.dal.mysql.votingactivity.VotingActivityJoinUserMapper;
 import org.springframework.stereotype.Service;
@@ -16,6 +22,7 @@ import com.citu.framework.common.util.object.BeanUtils;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.VOTING_ACTIVITY_JOIN_USER_NOT_EXISTS;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.VOTING_LIMIT;
 
 /**
 * 投票参与人 Service 实现类
@@ -29,15 +36,71 @@ public class VotingActivityJoinUserServiceImpl implements VotingActivityJoinUser
         @Resource
         private VotingActivityJoinUserMapper votingActivityJoinUserMapper;
 
+        @Resource
+        VotingActivityService votingActivityService;
+
+        @Resource
+        VotingActivityJoinItemService votingActivityJoinItemService;
+
         @Override
         public Long createVotingActivityJoinUser(VotingActivityJoinUserSaveReqVO createReqVO) {
-                    // 插入
+            VotingActivityDO votingActivity = votingActivityService.getVotingActivity(createReqVO.getVotingActivityId());
+            VotingRuleVo votingRule = votingActivity.getVotingRule();
+            if("day".equals(votingRule.getDateType())){
+                Long count = votingActivityJoinUserMapper.selectCount(new LambdaQueryWrapper<VotingActivityJoinUserDO>()
+                        .eq(VotingActivityJoinUserDO::getUserId, createReqVO.getUserId())
+                        .eq(VotingActivityJoinUserDO::getVotingActivityId, createReqVO.getVotingActivityId())
+                        .apply("date(create_time) = date(now())")
+
+                );
+                if(count >= votingRule.getNum()){
+                    throw exception(VOTING_LIMIT);
+                }
+            }
+
+            if("month".equals(votingRule.getDateType())){
+                Long count = votingActivityJoinUserMapper.selectCount(new LambdaQueryWrapper<VotingActivityJoinUserDO>()
+                        .eq(VotingActivityJoinUserDO::getUserId, createReqVO.getUserId())
+                        .eq(VotingActivityJoinUserDO::getVotingActivityId, createReqVO.getVotingActivityId())
+                        .apply("left(create_time,7) = left(date(now()),7)")
+
+                );
+                if(count >= votingRule.getNum()){
+                    throw exception(VOTING_LIMIT);
+                }
+            }
+
+            if("year".equals(votingRule.getDateType())){
+                Long count = votingActivityJoinUserMapper.selectCount(new LambdaQueryWrapper<VotingActivityJoinUserDO>()
+                        .eq(VotingActivityJoinUserDO::getUserId, createReqVO.getUserId())
+                        .eq(VotingActivityJoinUserDO::getVotingActivityId, createReqVO.getVotingActivityId())
+                        .apply("left(create_time,4) = left(date(now()),4)")
+
+                );
+                if(count >= votingRule.getNum()){
+                    throw exception(VOTING_LIMIT);
+                }
+            }
+
+
+
+            // 插入
             VotingActivityJoinUserDO votingActivityJoinUser = BeanUtils.toBean(createReqVO, VotingActivityJoinUserDO.class);
+            // todo 工具问题,暂时不加入此信息
+//            Area area = IPUtils.getArea(votingActivityJoinUser.getIp());
+//            votingActivityJoinUser.setProvince(area.getParent().getName());
+//            votingActivityJoinUser.setCity(area.getName());
+//            votingActivityJoinUser.setDistrict(area.getParent().getParent().getName());
+
             votingActivityJoinUserMapper.insert(votingActivityJoinUser);
-                    // 返回
+            votingActivityJoinItemService.votingAdd(votingActivityJoinUser.getVotingActivityJoinItemId());
+            // 返回
+
             return votingActivityJoinUser.getVotingActivityJoinUserId();
         }
 
+
+
         @Override
         public void updateVotingActivityJoinUser(VotingActivityJoinUserSaveReqVO updateReqVO) {
                     // 校验存在

+ 47 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/votingactivity/VotingActivityServiceImpl.java

@@ -1,14 +1,17 @@
 package com.citu.module.menduner.system.service.votingactivity;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivityPageReqVO;
 import com.citu.module.menduner.system.controller.admin.votingactivity.vo.VotingActivitySaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.votingactivity.VotingActivityDO;
 import com.citu.module.menduner.system.dal.mysql.votingactivity.VotingActivityMapper;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.*;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.pojo.PageParam;
@@ -32,13 +35,48 @@ public class VotingActivityServiceImpl implements VotingActivityService {
 
     @Override
     public Long createVotingActivity(VotingActivitySaveReqVO createReqVO) {
-            // 插入
-    VotingActivityDO votingActivity = BeanUtils.toBean(createReqVO, VotingActivityDO.class);
-    votingActivityMapper.insert(votingActivity);
-            // 返回
-    return votingActivity.getVotingActivityId();
+        // 插入
+        VotingActivityDO votingActivity = BeanUtils.toBean(createReqVO, VotingActivityDO.class);
+        refreshStatus(votingActivity);
+        votingActivity.setActivityHot(0);
+        votingActivityMapper.insert(votingActivity);
+        // 返回
+        return votingActivity.getVotingActivityId();
     }
 
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void refreshStatusTask() {
+        // TODO 后续使用游标的方式
+        List<VotingActivityDO> datas = votingActivityMapper.selectList(new LambdaQueryWrapper<VotingActivityDO>().ne(VotingActivityDO::getActivityStatus
+                , "结束"));
+        for (VotingActivityDO data : datas) {
+            String activityStatus = data.getActivityStatus();
+            refreshStatus(data);
+            if(!activityStatus.equals(data.getActivityStatus())){
+                votingActivityMapper.updateById(data);
+            }
+        }
+
+    }
+
+    private void refreshStatus( VotingActivityDO votingActivity) {
+       if(null==votingActivity){
+           return;
+       }
+
+       if(null ==votingActivity.getActivityStatus()){
+           votingActivity.setActivityStatus("待生效");
+           if(votingActivity.getActivityStartDate().compareTo(LocalDateTime.now())>0){
+               votingActivity.setActivityStatus("举办中");
+           }
+       }
+        if(votingActivity.getActivityEndDate().compareTo(LocalDateTime.now())<=0){
+            votingActivity.setActivityStatus("结束");
+        }
+    }
+
+
+
     @Override
     public void updateVotingActivity(VotingActivitySaveReqVO updateReqVO) {
                 // 校验存在
@@ -51,14 +89,14 @@ public class VotingActivityServiceImpl implements VotingActivityService {
     @Override
     public void deleteVotingActivity(Long id) {
                 // 校验存在
-        validateVotingActivityExists(id);
+//        validateVotingActivityExists(id);
                 // 删除
         votingActivityMapper.deleteById(id);
     }
 
     private void validateVotingActivityExists(Long id) {
         if (votingActivityMapper.selectById(id) == null) {
-         throw exception(VOTING_ACTIVITY_NOT_EXISTS);
+            throw exception(VOTING_ACTIVITY_NOT_EXISTS);
         }
     }
 
@@ -69,7 +107,8 @@ public class VotingActivityServiceImpl implements VotingActivityService {
 
     @Override
     public PageResult<VotingActivityDO> getVotingActivityPage(VotingActivityPageReqVO pageReqVO) {
-        return votingActivityMapper.selectPage(pageReqVO);
+        PageResult<VotingActivityDO> votingActivityDOPageResult = votingActivityMapper.selectPage(pageReqVO);
+        return votingActivityDOPageResult;
     }
 
 }