linwei
2024-01-06 6a53233a381819bcdcc7acdc3a018db9b3b8a311
议事报名
12 files modified
130 ■■■■ changed files
src/main/java/org/springblade/modules/discuss/controller/UserPublicEnrollController.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/controller/UserTopicsController.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/TopicsEntity.java 10 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/UserPublicEnrollEntity.java 11 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/UserTopicsEntity.java 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/TopicsMapper.xml 5 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserPublicEnrollMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/UserTopicsMapper.xml 23 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/IUserTopicsService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java 50 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/vo/TopicsVO.java 6 ●●●● patch | view | raw | blame | history
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()
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);
    }
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;
}
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;
}
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;
}
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>
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>
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>
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>
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);
}
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;
    }
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;
}