From 7ea43dac46900dab7535bdd3ec957b45e43b5270 Mon Sep 17 00:00:00 2001
From: DESKTOP-71BH0QO\L、ming <172680469@qq.com>
Date: 星期三, 28 四月 2021 17:38:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test

---
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java |  383 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 364 insertions(+), 19 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
index c95c697..440f86e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
@@ -1,21 +1,36 @@
 package com.panzhihua.applets.api;
 
-import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.applets.model.dtos.ComPbMemberCertificationDTO;
+import com.panzhihua.common.model.dtos.user.SysUserEditTipsDTO;
+import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO;
+import com.panzhihua.common.model.vos.user.*;
 import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.exceptions.UnAuthenticationException;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.validated.AddGroup;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -23,6 +38,7 @@
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2020-11-24 12:03
  **/
+@Slf4j
 @RestController
 @RequestMapping("/user/")
 @Api(tags = {"我的模块"})
@@ -31,26 +47,355 @@
     private UserService userService;
     @Resource
     private CommunityService communityService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private CheckService checkService;
 
-    @ApiOperation(value = "当前登录用户信息",response = LoginUserInfoVO.class)
+    @ApiOperation(value = "当前登录用户信息", response = LoginUserInfoVO.class)
     @GetMapping("info")
-    public R getUserInfo(){
-        Long userId = this.getUserId();
-        boolean empty = ObjectUtils.isEmpty(userId);
-        if (empty) {
-           throw new UnAuthenticationException();
-        }
+    public R getUserInfo() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        Long areaId = loginUserInfo.getAreaId();
         R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+        String phone = loginUserInfo.getPhone();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO) data;
+                R r1 = communityService.detailHouse(userId);
+                if (null != communityId && 0 != communityId) {
+                    R r2 = communityService.detailCommunity(communityId);
+                    if (R.isOk(r2)) {
+                        Object data1 = r2.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO.setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+                if (null != areaId && areaId != 0) {
+                    R r3 = communityService.detailArea(areaId);
+                    if (R.isOk(r3)) {
+                        Object data1 = r3.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO.setComMngStructAreaVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComMngStructAreaVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+                if (R.isOk(r1)) {
+                    Object data1 = r1.getData();
+                    if (!ObjectUtils.isEmpty(data1)) {
+                        loginUserInfoVO.setComMngStructHouseVOS((List<ComMngStructHouseVO>) data1);
+                        r.setData(loginUserInfoVO);
+                    }
+                }
+            }
+        }
         return r;
     }
 
-    @ApiOperation(value = "分页展示我的活动",response = ComActActivityVO.class)
-    @GetMapping("pagemyactivity")
-    public R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO){
+    @ApiOperation(value = "用户实名认证")
+    @PutMapping("putuserauthentication")
+    public R putUserAuthentication(@RequestBody @Validated(AddGroup.class) LoginUserInfoVO loginUserInfoVO) {
         Long userId = this.getUserId();
-//        todo 我的活动包括普通社区活动、志愿者活动、党建活动
-        comActActivityVO.setSponsorId(userId);//登录人id 暂时存入负责人字段
-        R r = communityService.pageMyActivity(comActActivityVO);
+        loginUserInfoVO.setUserId(userId);
+        R r = userService.putUserAuthentication(loginUserInfoVO);
+        if (R.isOk(r)) {
+            //通过发通知
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("实名制审核通过");
+            sysUserNoticeVO.setBusinessType(6);
+            sysUserNoticeVO.setBusinessContent("恭喜你,你已经通过了实名制认证");
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增实名认证未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        } else {
+            //未通过发通知
+            /**
+             SysUserNoticeVO sysUserNoticeVO=new SysUserNoticeVO();
+             sysUserNoticeVO.setUserId(userId);
+             sysUserNoticeVO.setType(3);
+             sysUserNoticeVO.setTitle("实名制审核未通过");
+             sysUserNoticeVO.setBusinessType(6);
+             sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s",r.getMsg()));
+             sysUserNoticeVO.setStatus(0);
+             sysUserNoticeVO.setBusinessStatus(1);
+             R r1 = userService.addNotice(sysUserNoticeVO);
+             if (R.isOk(r1)) {
+             log.info("新增实名认证未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+             }
+             */
+        }
         return r;
     }
+
+    @ApiOperation(value = "修改用户手机号")
+    @PutMapping("userphone")
+    public R putUserphone(@RequestBody UserPhoneVO userPhoneVO) {
+        Long userId = this.getUserId();
+        userPhoneVO.setUserId(userId);
+        R r = userService.putUserphone(userPhoneVO);
+        if (R.isOk(r)) {
+            communityService.putVolunteerPhone(userPhoneVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "修改用户信息")
+    @PutMapping("user")
+    public R putUser(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        Long userId = this.getUserId();
+        loginUserInfoVO.setUserId(userId);
+        return userService.putUser(loginUserInfoVO);
+    }
+
+    @ApiOperation(value = "修改用户首页活动提示")
+    @PostMapping("editUserTips")
+    public R putUserTips(@RequestBody SysUserEditTipsDTO userEditTipsDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        userEditTipsDTO.setUserId(userId);
+        return userService.editUserTips(userEditTipsDTO);
+    }
+
+    @ApiOperation(value = "房屋地址下拉列表")
+    @GetMapping("listhouse")
+    @ApiImplicitParam(name = "parentCode", value = "父级地址编码", required = false)
+    public R listHouses(String parentCode) {
+        Long areaId = this.getAreaId();
+        if (ObjectUtils.isEmpty(parentCode)) {
+            parentCode = "";
+        }
+        return communityService.listHouses(parentCode, areaId);
+    }
+
+    @ApiOperation(value = "新增房屋")
+    @PostMapping("houses")
+    public R addHouses(@RequestBody @Validated(AddGroup.class) ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        if (ObjectUtils.isEmpty(houseCode)) {
+            return R.fail("房屋地址编码不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comMngStructHouseVO.setUserId(loginUserInfo.getUserId());
+        comMngStructHouseVO.setAreaId(loginUserInfo.getAreaId());
+        return communityService.addHouses(comMngStructHouseVO);
+    }
+
+    @ApiOperation(value = "家庭成员列表")
+    @GetMapping("listfamily")
+    public R listFamily(@RequestParam(value = "pageNum") Long pageNum, @RequestParam("pageNum") Long pageSize) {
+        Long userId = this.getUserId();
+        return userService.listFamily(userId, pageNum, pageSize);
+    }
+
+    @ApiOperation(value = "新增家庭成员")
+    @PostMapping("addfamily")
+    public R addFamily(@RequestBody @Validated(AddGroup.class) ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        Long userId = this.getUserId();
+        comMngFamilyInfoVO.setUserId(userId);
+        return userService.addFamily(comMngFamilyInfoVO);
+    }
+
+    @ApiOperation(value = "编辑家庭成员")
+    @PutMapping("putfamily")
+    public R putFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        Long id = comMngFamilyInfoVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("成员主键不能为空");
+        }
+        comMngFamilyInfoVO.setUserId(this.getUserId());
+        return userService.putFamily(comMngFamilyInfoVO);
+    }
+
+    @ApiOperation(value = "我的活动", response = ComActActivityVO.class)
+    @GetMapping("listactivity")
+    public R listActivity() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
+        R r = communityService.listActivity(userId);
+        if (R.isOk(r)) {
+            comActActivityVOS = (List<ComActActivityVO>) r.getData();
+        }
+        R r1 = partyBuildingService.listActivity(userId, communityId);
+        if (R.isOk(r1)) {
+            List<ComActActivityVO> data = (List<ComActActivityVO>) r1.getData();
+            comActActivityVOS.addAll(data);
+        }
+        if (!ObjectUtils.isEmpty(comActActivityVOS)) {
+            String s = JSONArray.toJSONString(comActActivityVOS);
+            List<ComActActivityVO> comActActivityVOS1 = new ArrayList<>();
+            comActActivityVOS1 = JSONArray.parseArray(s, ComActActivityVO.class);
+            List<ComActActivityVO> collect = comActActivityVOS1.stream().sorted(Comparator.comparing(ComActActivityVO::getBeginAt).reversed()).collect(Collectors.toList());
+            comActActivityVOS = collect;
+        }
+        if (!ObjectUtils.isEmpty(comActActivityVOS)) {
+            List<ComActActivityVO> collect = comActActivityVOS.stream().sorted(Comparator.comparing(ComActActivityVO::getSingDate).reversed()).collect(Collectors.toList());
+            return R.ok(collect);
+        }
+        return R.ok(comActActivityVOS);
+    }
+
+    @ApiOperation(value = "分页查询我的随手拍", response = ComActEasyPhotoVO.class)
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        Long userId = this.getUserId();
+        comActEasyPhotoVO.setSponsorId(userId);
+        comActEasyPhotoVO.setCommunityId(null);
+        return communityService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "分页查询我的微心愿", response = ComActMicroWishVO.class)
+    @PostMapping("pagemicrowish")
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long userId = this.getUserId();
+        comActMicroWishVO.setUserId(userId);
+        comActMicroWishVO.setCommunityId(null);
+        Integer status = comActMicroWishVO.getStatus();
+        if (null != status && status == 1) {
+            comActMicroWishVO.setIsPageMyWish(1);
+        } else {
+            comActMicroWishVO.setIsPageMyWish(null);
+        }
+
+        return communityService.pageMicroWish(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "用户确认心愿")
+    @PutMapping("microwishconfirm")
+    public R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long userId = this.getUserId();
+        comActMicroWishVO.setUserId(userId);
+        comActMicroWishVO.setCommunityId(null);
+        Long id = comActMicroWishVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("心愿主键不能为空");
+        }
+        String evaluate = comActMicroWishVO.getEvaluate();
+        if (ObjectUtils.isEmpty(evaluate)) {
+            return R.fail("用户评价不能为空");
+        }
+        Integer score = comActMicroWishVO.getScore();
+        if (null == score || 0 == score) {
+            return R.fail("评分不能为空");
+        }
+        comActMicroWishVO.setEvaluateAt(new Date());
+        comActMicroWishVO.setStatus(6);
+        return communityService.putMicroWishConfirm(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "调试接口--清除昵称、社区、小区")
+    @DeleteMapping("usertest")
+    public R deleteUserTest() {
+        Long userId = this.getUserId();
+        return userService.deleteUserTest(userId);
+    }
+
+    @ApiOperation(value = "意见反馈")
+    @PostMapping("feedback")
+    public R addFeedback(@RequestBody @Validated(AddGroup.class) SysUserFeedbackDTO sysUserFeedbackDTO) {
+        //        微信内容审核
+        String msg = sysUserFeedbackDTO.getContent();
+        if (!checkService.checkMessage(msg)) {
+            return R.fail("内容违规");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long areaId = loginUserInfo.getAreaId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("未绑定社区");
+        }
+        sysUserFeedbackDTO.setCommunityId(communityId);
+        sysUserFeedbackDTO.setAreaId(areaId);
+        sysUserFeedbackDTO.setUserId(userId);
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+    @ApiOperation(value = "党员认证")
+    @PostMapping("partybuildingembercertification")
+    public R partybuildingembercertification(@RequestBody @Validated(AddGroup.class) ComPbMemberCertificationDTO comPbMemberCertificationDTO) {
+        //totest 党员认证
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("未绑定社区");
+        }
+
+        //判断用户是否已认证成功
+        R certUser = partyBuildingService.userCertification(userId);
+
+        Object certUserInfo = certUser.getData();
+        boolean userCertified = false;
+        if (certUserInfo != null) {
+            PartyBuildingMemberVO certUserVo = (PartyBuildingMemberVO) certUserInfo;
+            //已认证党员身份,直接返回
+            userCertified = certUserVo.getAuditResult() == 1;
+        }
+        //匹配手机,验证是否进行自动确认
+        if (userCertified) {
+            return R.fail("用户已完成党员认证");
+        }
+
+        PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+        BeanUtils.copyProperties(comPbMemberCertificationDTO, partyBuildingMemberVO);
+
+        //用户实名认证信息判断
+        String idCard = loginUserInfo.getIdCard();
+        partyBuildingMemberVO.setUserId(userId);
+        if (idCard == null) {
+            return R.fail("用户未完成实名认证");
+        } else {
+            partyBuildingMemberVO.setIdCard(loginUserInfo.getIdCard());
+            partyBuildingMemberVO.setName(loginUserInfo.getName());
+        }
+
+        R r = partyBuildingService.addPartyBuildingMember(partyBuildingMemberVO);
+        return r;
+    }
+
+    @ApiOperation(value = "党员认证查询")
+    @GetMapping("partybuildingembercertification")
+    public R partybuildingembercertification() {
+        //totest 党员认证查询
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        return partyBuildingService.userCertification(userId);
+    }
+
+
+    @ApiOperation(value = "获取用户电子档案", response = UserArchivesVO.class)
+    @PostMapping("getUserArchives")
+    public R getUserArchives() {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        return userService.getUserArchives(userId);
+    }
+
+    @ApiOperation(value = "编辑用户电子档案")
+    @PostMapping("updateUserArchives")
+    public R updateUserArchives(@RequestBody UpdateUserArchivesVO userArchivesVO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        userArchivesVO.setUserId(userId);
+        return userService.updateUserArchives(userArchivesVO);
+    }
 }

--
Gitblit v1.7.1