From 6a53233a381819bcdcc7acdc3a018db9b3b8a311 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Sat, 06 Jan 2024 16:12:55 +0800
Subject: [PATCH] 议事报名
---
src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java | 11 ++-
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml | 1
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml | 23 ++++---
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml | 5 +
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java | 50 ++++++++++++++--
src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java | 6 +-
src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java | 10 ++
src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java | 2
src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java | 6 -
src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java | 5 +
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml | 7 +-
src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java | 4
12 files changed, 91 insertions(+), 39 deletions(-)
diff --git a/src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java b/src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java
index 213540e..69e7368 100644
--- a/src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java
+++ b/src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java
@@ -110,7 +110,7 @@
userPublicEnroll.setUserId(AuthUtil.getUserId());
// 判断是否一户一票 还是一人一票
IPublicDiscussService bean = SpringUtil.getBean(IPublicDiscussService.class);
- PublicDiscussEntity one = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getId, userPublicEnroll.getPublicDiscussId()));
+ PublicDiscussEntity one = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getArticleId, userPublicEnroll.getArticleId()));
// 一户一票
if (one.getVoteRestrictions().equals(CommonConstant.NUMBER_ONE)) {
long count = userPublicEnrollService.count(Wrappers.<UserPublicEnrollEntity>lambdaQuery()
diff --git a/src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java b/src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java
index 6d28ff7..9cc4d3a 100644
--- a/src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java
+++ b/src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java
@@ -32,10 +32,10 @@
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.modules.discuss.entity.PublicDiscussEntity;
-import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.service.IPublicDiscussService;
import org.springblade.modules.discuss.service.IUserTopicsService;
+import org.springblade.modules.discuss.vo.TopicsVO;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import org.springblade.modules.discuss.wrapper.UserTopicsWrapper;
import org.springframework.web.bind.annotation.*;
@@ -157,10 +157,8 @@
@PostMapping("/updateBath")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "批量更新", notes = "传入topics")
- public R updateBath(@Valid @RequestBody List<TopicsEntity> topics) {
-
+ public R updateBath(@Valid @RequestBody List<TopicsVO> topics) throws Exception {
Boolean result = userTopicsService.batchSave(topics);
-
return R.status(result);
}
diff --git a/src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java b/src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java
index 47348dc..b099b1b 100644
--- a/src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java
+++ b/src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java
@@ -21,7 +21,6 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import org.springblade.core.mp.base.BaseEntity;
import java.io.Serializable;
import java.util.Date;
@@ -106,7 +105,9 @@
@TableField("parent_id")
private Integer parentId;
- /** 层级 */
+ /**
+ * 层级
+ */
@ApiModelProperty(value = "层级", example = "")
@TableField("level")
private Integer level;
@@ -114,5 +115,10 @@
@ApiModelProperty(value = "选中", example = "")
@TableField("selected")
private String selected;
+
+
+ @ApiModelProperty(value = "文章id", example = "")
+ @TableField("article_id")
+ private Integer articleId;
}
diff --git a/src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java b/src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java
index 18155ed..a43fba8 100644
--- a/src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java
+++ b/src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java
@@ -21,7 +21,6 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import org.springblade.core.mp.base.BaseEntity;
import java.io.Serializable;
import java.util.Date;
@@ -78,11 +77,17 @@
@ApiModelProperty(value = "签名地址", example = "")
@TableField("signature_path")
- private String signaturePath;
+ private String signaturePath;
- /** 门牌地址编码 */
+ /**
+ * 门牌地址编码
+ */
@ApiModelProperty(value = "门牌地址编码")
@TableField("house_code")
private String houseCode;
+
+ @ApiModelProperty(value = "文章id", example = "")
+ @TableField("article_id")
+ private Integer articleId;
}
diff --git a/src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java b/src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java
index ba1a827..12860a6 100644
--- a/src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java
+++ b/src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java
@@ -93,7 +93,7 @@
@ApiModelProperty(value = "签名地址", example = "")
@TableField("signature_path")
- private String signaturePath;
+ private String signaturePath;
/**
* 门牌地址编码
@@ -103,4 +103,7 @@
private String houseCode;
+ @ApiModelProperty(value = "文章id", example = "")
+ @TableField("article_id")
+ private Integer articleId;
}
diff --git a/src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml b/src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml
index a9af06d..4486642 100644
--- a/src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml
+++ b/src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml
@@ -62,7 +62,8 @@
jpd.vote_number_public,
jpd.appoint_user,
jpd.user_ids,
- jpd.event_type
+ jpd.event_type,
+ jpd.signature_flag
from jczz_public_discuss jpd
<where>
<if test="publicDiscuss.id != null "> and id = #{publicDiscuss.id}</if>
@@ -126,11 +127,11 @@
jpd.user_ids,
jpd.event_type,
jpd.signature_flag,
- (SELECT user_id from jczz_user_public_enroll where user_id = #{userId} and public_discuss_id = jpd.id)userId
+ (SELECT user_id from jczz_user_public_enroll where user_id = #{userId} and article_id = jpd.article_id)userId
from
jczz_public_discuss jpd
<where>
- <if test="id != null "> and jpd.id = #{id}</if>
+ <if test="articleId != null ">and jpd.article_id = #{articleId}</if>
</where>
</select>
diff --git a/src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml b/src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml
index c95330c..a9a4940 100644
--- a/src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml
+++ b/src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml
@@ -86,8 +86,10 @@
jt.delete_flag,
jt.public_discuss_id,
jt.parent_id,
+ jt.article_id,
jt.LEVEL,
- ( SELECT jut.selected FROM jczz_user_topics jut WHERE jut.topics_id = jt.id AND jut.user_id = #{userId} ) selected
+ ( SELECT jut.selected FROM jczz_user_topics jut WHERE jut.article_id = jt.article_id AND jut.user_id = #{userId}
+ ) selected
FROM
jczz_topics jt
<where>
@@ -104,6 +106,7 @@
<if test="publicDiscussId != null "> and jt.public_discuss_id = #{publicDiscussId}</if>
<if test="parentId != null "> and jt.parent_id = #{parentId}</if>
<if test="level != null "> and jt.level = #{level}</if>
+ <if test="articleId != null ">and jt.article_id = #{articleId}</if>
and jt.delete_flag = 0
</where>
</select>
diff --git a/src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml b/src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml
index 13d47f4..94676e8 100644
--- a/src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml
+++ b/src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml
@@ -51,6 +51,7 @@
<if test="userPublicEnroll.createTime != null "> and jup.create_time = #{userPublicEnroll.createTime}</if>
<if test="userPublicEnroll.updateTime != null "> and jup.update_time = #{userPublicEnroll.updateTime}</if>
<if test="userPublicEnroll.deletedFlag != null "> and jup.deleted_flag = #{userPublicEnroll.deletedFlag}</if>
+ <if test="userPublicEnroll.articleId != null ">and jup.article_id = #{userPublicEnroll.articleId}</if>
</where>
</select>
diff --git a/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml b/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
index c7b0108..105af85 100644
--- a/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
+++ b/src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml
@@ -31,7 +31,7 @@
<select id="selectUserTopicsPage" resultMap="userTopicsResultMap">
SELECT
- jut.public_discuss_id,
+ jut.article_id,
bu.avatar,
bu.`name`,
bu.phone,
@@ -49,8 +49,8 @@
<if test="userTopics.createTime != null ">and jut.create_time = #{userTopics.createTime}</if>
<if test="userTopics.updateTime != null ">and jut.update_time = #{userTopics.updateTime}</if>
<if test="userTopics.deleteFlag != null ">and jut.delete_flag = #{userTopics.deleteFlag}</if>
- <if test="userTopics.publicDiscussId != null ">and jut.public_discuss_id = #{userTopics.publicDiscussId}
- GROUP BY jut.public_discuss_id,
+ <if test="userTopics.articleId != null ">and jut.article_id = #{userTopics.articleId}
+ GROUP BY jut.article_id,
bu.avatar,
bu.`name`,
bu.phone,
@@ -60,16 +60,17 @@
</where>
</select>
- <select id="selectUserTopicsList" parameterType="org.springblade.modules.discuss.dto.UserTopicsDTO" resultMap="userTopicsResultMap">
+ <select id="selectUserTopicsList" parameterType="org.springblade.modules.discuss.dto.UserTopicsDTO"
+ resultMap="userTopicsResultMap">
<include refid="selectUserTopics"/>
<where>
- <if test="id != null "> and id = #{id}</if>
- <if test="userId != null "> and user_id = #{userId}</if>
- <if test="topicsId != null "> and topics_id = #{topicsId}</if>
- <if test="createTime != null "> and create_time = #{createTime}</if>
- <if test="updateTime != null "> and update_time = #{updateTime}</if>
- <if test="deleteFlag != null "> and delete_flag = #{deleteFlag}</if>
- <if test="publicDiscussId != null "> and public_discuss_id = #{publicDiscussId}</if>
+ <if test="id != null ">and id = #{id}</if>
+ <if test="userId != null ">and user_id = #{userId}</if>
+ <if test="topicsId != null ">and topics_id = #{topicsId}</if>
+ <if test="createTime != null ">and create_time = #{createTime}</if>
+ <if test="updateTime != null ">and update_time = #{updateTime}</if>
+ <if test="deleteFlag != null ">and delete_flag = #{deleteFlag}</if>
+ <if test="publicDiscussId != null ">and public_discuss_id = #{publicDiscussId}</if>
</where>
</select>
diff --git a/src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java b/src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java
index 8ea6ca6..031af4d 100644
--- a/src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java
+++ b/src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java
@@ -18,8 +18,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
-import org.springblade.modules.discuss.entity.TopicsEntity;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
+import org.springblade.modules.discuss.vo.TopicsVO;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import java.util.List;
@@ -42,7 +42,7 @@
IPage<UserTopicsVO> selectUserTopicsPage(IPage<UserTopicsVO> page, UserTopicsVO userTopics);
- Boolean batchSave(List<TopicsEntity> topics);
+ Boolean batchSave(List<TopicsVO> topics) throws Exception;
Integer getCount(Integer id);
}
diff --git a/src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java b/src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java
index d6f00db..16cbbd8 100644
--- a/src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java
+++ b/src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java
@@ -23,13 +23,18 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.Nullable;
+import org.springblade.common.constant.CommonConstant;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.discuss.entity.PublicDiscussEntity;
import org.springblade.modules.discuss.entity.TopicsEntity;
-import org.springblade.modules.discuss.entity.UserPublicEnrollEntity;
import org.springblade.modules.discuss.entity.UserTopicsEntity;
import org.springblade.modules.discuss.mapper.UserTopicsMapper;
+import org.springblade.modules.discuss.service.IPublicDiscussService;
import org.springblade.modules.discuss.service.ITopicsService;
import org.springblade.modules.discuss.service.IUserTopicsService;
+import org.springblade.modules.discuss.vo.TopicsVO;
import org.springblade.modules.discuss.vo.UserTopicsVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -57,29 +62,56 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Boolean batchSave(List<TopicsEntity> topics) {
+ public Boolean batchSave(List<TopicsVO> topics) throws Exception {
+ // 判断是否一户一票 还是一人一票
+ IPublicDiscussService bean = SpringUtil.getBean(IPublicDiscussService.class);
+ PublicDiscussEntity one = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getArticleId, topics.get(0).getArticleId()));
+ // 一户一票
+ if (one.getVoteRestrictions().equals(CommonConstant.NUMBER_ONE)) {
+ long count = count(Wrappers.<UserTopicsEntity>lambdaQuery().eq(UserTopicsEntity::getHouseCode, topics.get(0).getHouseCode()));
+ if (count > 1) {
+ throw new Exception("您的房屋已投票,不能重复投票!");
+ }
+ } else {
+ //
+ long count = count(Wrappers.<UserTopicsEntity>lambdaQuery().eq(UserTopicsEntity::getUserId, AuthUtil.getUserId()));
+ if (count > 1) {
+ throw new Exception("您的已投票,不能重复投票!");
+ }
+ }
+ Boolean userTopics = getaBoolean(topics);
+ if (userTopics != null) return userTopics;
+ return false;
+ }
+
+ @Nullable
+ private Boolean getaBoolean(List<TopicsVO> topics) {
List<UserTopicsEntity> objects = new ArrayList<>();
- for (TopicsEntity topic : topics) {
+ for (TopicsVO topic : topics) {
UserTopicsEntity userTopicsEntity = new UserTopicsEntity();
userTopicsEntity.setUserId(AuthUtil.getUserId());
userTopicsEntity.setSelected(topic.getSelected());
userTopicsEntity.setTopicsId(topic.getId());
userTopicsEntity.setPublicDiscussId(topic.getPublicDiscussId());
objects.add(userTopicsEntity);
+ // 单选
if (topic.getOptionRange().equals(0)) {
if (StringUtils.isBlank(topic.getSelected())) {
break;
}
UserTopicsEntity userTopics = new UserTopicsEntity();
- userTopics.setTopicsId(Integer.valueOf(topic.getSelected()));
+ userTopics.setSelected(topic.getSelected());
userTopics.setUserId(AuthUtil.getUserId());
userTopics.setPublicDiscussId(topic.getPublicDiscussId());
+ userTopics.setArticleId(topic.getArticleId());
+ userTopics.setHouseCode(topic.getHouseCode());
UpdateWrapper<TopicsEntity> objectUpdateWrapper = new UpdateWrapper<>();
objectUpdateWrapper.setSql("number = number + 1");
objectUpdateWrapper.eq("id", topic.getSelected());
topicsService.update(null, objectUpdateWrapper);
- baseMapper.insert(userTopics);
+ return save(userTopics);
} else {
+ // 多选
if (StringUtils.isBlank(topic.getSelected())) {
break;
}
@@ -87,19 +119,21 @@
List<UserTopicsEntity> objectsTwo = new ArrayList<>();
for (Object o : objects1) {
UserTopicsEntity userTopics = new UserTopicsEntity();
- userTopics.setTopicsId((Integer) o);
+ userTopics.setSelected(topic.getSelected());
userTopics.setUserId(AuthUtil.getUserId());
userTopics.setPublicDiscussId(topic.getPublicDiscussId());
+ userTopics.setArticleId(topic.getArticleId());
+ userTopics.setHouseCode(topic.getHouseCode());
UpdateWrapper<TopicsEntity> objectUpdateWrapper = new UpdateWrapper<>();
objectUpdateWrapper.setSql("number = number + 1");
objectUpdateWrapper.eq("id", o);
objectsTwo.add(userTopics);
topicsService.update(null, objectUpdateWrapper);
}
- saveOrUpdateBatch(objectsTwo);
+ return save(objectsTwo.get(0));
}
}
- return saveOrUpdateBatch(objects);
+ return null;
}
diff --git a/src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java b/src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java
index 3c2fbb8..f84db50 100644
--- a/src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java
+++ b/src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java
@@ -16,11 +16,9 @@
*/
package org.springblade.modules.discuss.vo;
-import org.springblade.modules.discuss.dto.TopicsDTO;
-import org.springblade.modules.discuss.entity.TopicsEntity;
-import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springblade.modules.discuss.entity.TopicsEntity;
import java.util.List;
@@ -38,4 +36,6 @@
private List<TopicsVO> children;
+ private String houseCode;
+
}
--
Gitblit v1.9.3