From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 20 五月 2025 23:48:08 +0800
Subject: [PATCH] 修改文件上传类型限制

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java |  312 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 312 insertions(+), 0 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
new file mode 100644
index 0000000..f8a74a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
@@ -0,0 +1,312 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
+import com.panzhihua.common.model.vos.community.ComActDiscussVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"一起议"})
+@RestController
+@RequestMapping("/")
+public class DiscussApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "一起议-新增")
+    @PostMapping("discuss")
+    public R addDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String discussSubject = comActDiscussDTO.getDiscussSubject();
+        if (StrUtil.isNotBlank(discussSubject)) {
+            String result = checkService.checkMessageBy(discussSubject, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+
+        //微信图片审核
+        String photoPah = comActDiscussDTO.getPhotoPah();
+        if (StrUtil.isNotBlank(photoPah)) {
+            if (!checkService.checkImageBy(photoPah, appId)) {
+                return R.fail(501, "上传图片存在违规信息");
+            }
+        }
+
+        Integer type = comActDiscussDTO.getType();
+        String voteTitle = comActDiscussDTO.getVoteTitle();
+        List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
+        if (type.equals(2)) {
+            if (ObjectUtils.isEmpty(voteTitle)) {
+                return R.fail("投票标题不能为空");
+            }
+            if (ObjectUtils.isEmpty(discussOptions)) {
+                return R.fail("选项不能为空");
+            }
+            if (discussOptions.size() < 2) {
+                return R.fail("请至少设置两个投票选项");
+            }
+            //设置投票开始时间 nowDate
+            comActDiscussDTO.setStartTime(DateUtils.format(new Date(), DateUtils.ymdhms_format));
+        }
+        String address = comActDiscussDTO.getAddress();
+        if (ObjectUtils.isEmpty(address)) {
+            return R.fail("地址不能为空");
+        } else if (address.contains("null")) {
+            comActDiscussDTO.setAddress(null);
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comActDiscussDTO.setUserId(userId);
+        comActDiscussDTO.setCommunityId(communityId);
+        comActDiscussDTO.setIsApplets(true);
+        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
+        return communityService.addDiscuss(comActDiscussDTO);
+    }
+
+    @ApiOperation(value = "一起议-分页查询", response = ComActDiscussVO.class)
+    @PostMapping("pagediscuss")
+    public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        if (Objects.isNull(pageComActDiscussDTO.getType())) {
+            return R.fail("查询类型不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            pageComActDiscussDTO.setLoginUserId(loginUserInfo.getUserId());
+
+            Integer isMy = pageComActDiscussDTO.getIsMy();
+            if (null != isMy && isMy.intValue() == 1) {
+                pageComActDiscussDTO.setUserId(loginUserInfo.getUserId());
+            }
+        }
+        return communityService.pageDiscussApplets(pageComActDiscussDTO);
+    }
+
+    @ApiOperation(value = "一起议-分页查询-脱敏", response = ComActDiscussVO.class)
+    @PostMapping("pageDiscussDesensitize")
+    public R pageDiscussDesensitize(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        if (Objects.isNull(pageComActDiscussDTO.getType())) {
+            return R.fail("查询类型不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            pageComActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+            pageComActDiscussDTO.setLoginUserId(loginUserInfo.getUserId());
+
+            Integer isMy = pageComActDiscussDTO.getIsMy();
+            if (null != isMy && isMy.intValue() == 1) {
+                pageComActDiscussDTO.setUserId(loginUserInfo.getUserId());
+            }
+        }
+        return communityService.pageDiscussAppletsDesensitize(pageComActDiscussDTO);
+    }
+
+
+    @ApiOperation(value = "一起议-回复")
+    @PostMapping("discusscomment")
+    public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long discussId = comActDiscussCommentDTO.getDiscussId();
+        if (null == discussId || 0 == discussId) {
+            return R.fail("一起议主键不能为空");
+        }
+        String result = checkService.checkMessageBy(comment, this.getLoginUserInfo().getOpenid(), this.getAppId());
+        if (StrUtil.isNotBlank(result)) {
+            return R.fail(501, "填写内容存在 " + result + " 违规信息");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        // 议事投票计算积分
+        AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(discussId,
+                AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
+        integralUserDTO.setIsComment(1);
+        communityService.addIntegralTradeAdmin(integralUserDTO);
+        return communityService.addDiscussComment(comActDiscussCommentDTO);
+
+    }
+
+    @ApiOperation(value = "一起议-点赞、取消点赞")
+    @PutMapping("discussuser")
+    public R putDiscussUser(@RequestBody @Validated ComActDiscussUserDTO comActDiscussUserDTO) {
+        comActDiscussUserDTO.setUserId(this.getUserId());
+        return communityService.putDiscussUser(comActDiscussUserDTO);
+    }
+
+    @ApiOperation(value = "一起议-评论-点赞、取消点赞")
+    @PutMapping("discusscommentuser")
+    public R putDiscussCommentUser(@RequestBody @Validated ComActDiscussCommentUserDTO comActDiscussUserDTO) {
+        comActDiscussUserDTO.setUserId(this.getUserId());
+        return communityService.putDiscussCommentUser(comActDiscussUserDTO);
+    }
+
+    @ApiOperation(value = "一起议-详情", response = ComActDiscussVO.class)
+    @GetMapping("discuss")
+    @ApiImplicitParam(name = "id", value = "一起议主键", required = true)
+    public R detailDiscuss(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailDiscussApplets(id, userId);
+    }
+
+    @ApiOperation(value = "一起议-详情-脱敏", response = ComActDiscussVO.class)
+    @GetMapping("discussDesensitize")
+    @ApiImplicitParam(name = "id", value = "一起议主键", required = true)
+    public R detailDiscussDesensitize(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailDiscussAppletsDesensitize(id, userId);
+    }
+
+    @ApiOperation(value = "一起议-评论-分页查询", response = ComActDiscussCommentVO.class)
+    @PostMapping("pagediscusscomment")
+    public R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        Long id = pageComActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("一起议主键不能为空");
+        }
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActDiscussCommentDTO.setLoginUserId(userId);
+        return communityService.pageDiscussCommentApplets(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-删除 小程序
+     *
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @ApiOperation(value = "一起议-评论-删除接口")
+    @DeleteMapping("deleteCommentApplets")
+    public R deleteCommentApplets(@RequestParam("id") String id)
+    {
+        return communityService.deleteCommentApplets(id);
+    }
+
+
+
+    @ApiOperation(value = "一起议-评论-分页查询-脱敏", response = ComActDiscussCommentVO.class)
+    @PostMapping("pageDiscussCommentDesensitize")
+    public R pageDiscussCommentDesensitize(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        Long id = pageComActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("一起议主键不能为空");
+        }
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActDiscussCommentDTO.setLoginUserId(userId);
+        return communityService.pageDiscussCommentAppletsDesensitize(pageComActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "一起议-评论-回复")
+    @PostMapping("discusscommentback")
+    public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long id = comActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("评论主键不能为空");
+        }
+        String result = checkService.checkMessageBy(comment, this.getLoginUserInfo().getOpenid(), this.getAppId());
+        if (StrUtil.isNotBlank(result)) {
+            return R.fail(501, "填写内容存在 " + result + " 违规信息");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        return communityService.addDiscussCommentBack(comActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "一起议-投票")
+    @PostMapping("discussoptionuser")
+    public R addDiscussOptionUser(@RequestBody @Valid DiscussVoteOptionDTO discussVoteOptionDTO) {
+        List<ComActDiscussVoteOptionDTO> options = discussVoteOptionDTO.getOptions();
+        if (options.isEmpty()) {
+            return R.fail("选项内容不能为空");
+        }
+        discussVoteOptionDTO.setUserId(this.getUserId());
+        options.forEach(option -> {
+            // 议事投票计算积分
+            AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(option.getId(),
+                    AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
+            integralUserDTO.setIsComment(2);
+            communityService.addIntegralTradeAdmin(integralUserDTO);
+        });
+        return communityService.addDiscussOptionUser(discussVoteOptionDTO);
+    }
+
+    @ApiOperation(value = "一起议-增加浏览量")
+    @PostMapping("discuss/increase-view-num")
+    public void increaseViewNum(@RequestParam("discussId")
+                                @ApiParam(value = "一起议主键id", required = true)
+                                        Long discussId) {
+        communityService.increaseViewNum(discussId);
+    }
+
+    @ApiOperation(value = "一起议-公布/编辑投票结果")
+    @PostMapping("discuss/edit-result")
+    public R editDiscussResult(@RequestBody @Validated(PutGroup.class) ComActDiscussDTO comActDiscussDTO) {
+        comActDiscussDTO.setUserId(this.getUserId());
+        return communityService.editDiscussResult(comActDiscussDTO);
+    }
+
+    @ApiOperation(value = "一起议-获取是否有发布权限", response = Boolean.class)
+    @GetMapping("discuss/permissions")
+    public R getDiscussPermissions() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        ComActDiscussDTO comActDiscussDTO = new ComActDiscussDTO();
+        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
+        comActDiscussDTO.setIsApplets(true);
+        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.getDiscussPermissions(comActDiscussDTO);
+    }
+}

--
Gitblit v1.7.1