huanghongfa
2021-04-20 4e8be752d24ae22362455c16f75d3bcbccb23359
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
New file
@@ -0,0 +1,747 @@
package com.panzhihua.service_user.api;
import com.panzhihua.common.model.dtos.PageDTO;
import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
import com.panzhihua.common.model.dtos.community.ExportUserDTO;
import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
import com.panzhihua.common.model.dtos.user.*;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.service_user.service.SysUserInputService;
import com.panzhihua.service_user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 用户
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-11-24 09:00
 **/
@Slf4j
@RestController("/")
public class UserApi {
    @Resource
    private UserService userService;
    @Resource
    private SysUserInputService sysUserInputService;
    /**
     * 新增微信用户
     * @param openid 微信小程序标志
     * @param sessionKey 会话密钥
     * @param unionid 微信平台唯一ID
     * @return 新增结果
     */
    @PostMapping("/addOrUpdate")
    public R addOrUpdate(@RequestParam("openid") String openid, @RequestParam("sessionKey")String sessionKey, @RequestParam("unionid")String unionid){
        return userService.updateInsertUser(openid,sessionKey,unionid);
    }
    /**
     * 维护小程序用户基本信息 头像 昵称 性别
     * @param userId 数据库用户ID
     * @param nickName 昵称
     * @param gender 性别
     * @param avatarUrl 头像
     * @return 维护结果
     */
    @PostMapping("/updateUserWeiXinInfo")
    public R updateUserWeiXinInfo(@RequestParam("userId")Long userId, @RequestParam("nickName")String nickName, @RequestParam("gender")int gender, @RequestParam("avatarUrl")String avatarUrl){
        return userService.updateUserWeiXinInfo(userId,nickName,gender,avatarUrl);
    }
    /**
     * 维护微信用户手机号
     * @param userId 数据库ID
     * @param purePhoneNumber 没有区号的手机号
     * @return 维护结果
     */
    @PostMapping("/updateUserWeiXinPhone")
    public R updateUserWeiXinPhone(@RequestParam("userId")Long userId, @RequestParam("purePhoneNumber")String purePhoneNumber){
        return userService.updateUserWeiXinPhone(userId,purePhoneNumber);
    }
    /**
     * 获取平台用户
     * @param userName 登录账户+_type
     * @return 平台用户信息
     */
    @PostMapping("/getUserInfo")
    public R<LoginUserInfoVO> getUserInfo(@RequestParam("userName") String userName){
        int index = userName.lastIndexOf("_");
        String type = userName.substring(index+1, userName.length());
        String name = userName.substring(0, index);
        return userService.getUserInfo(name,Integer.parseInt(type));
    }
    /**
     * 获取平台用户
     * @param userId 用户ID
     * @return 平台用户信息
     */
    @PostMapping("/getUserInfoUserId")
    public R<LoginUserInfoVO> getUserInfoByUserId(@RequestParam("userId") String userId){
        return userService.getUserInfo(userId);
    }
    /**
     * 修改用户登录密码
     * @param changePasswordVO 新密码
     * @return 修改结果
     */
    @PostMapping("changepassword")
    public R changePassword(@RequestBody ChangePasswordVO changePasswordVO){
        return userService.changePassword(changePasswordVO);
    }
    /**
     * 某社区后台人员查询
     * @param param 名字
     * @param communityId 社区id
     * @return 人员集合
     */
    @PostMapping("listactivitymanager")
    public R listActivityManager(@RequestParam("param") String param, @RequestParam("communityId")Long communityId){
        return userService.listActivityManager(param,communityId);
    }
    /**
     *分页查询人脸识别
     * @param loginUserInfoVO 查询参数
     * @return 分页集合
     */
    @PostMapping("pageuserface")
    public R pageUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.pageUserFace(loginUserInfoVO);
    }
    /**
     * 编辑人脸采集数据通过、驳回、删除
     * @param loginUserInfoVO 操作信息
     * @return 操作结果
     */
    @PostMapping("putuserface")
    public R putUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.putUserFace(loginUserInfoVO);
    }
    /**
     *分页查询人口管理
     * @param loginUserInfoVO 查询参数
     * @return 分页数据
     */
    @PostMapping("pageuser")
    public R pageUser(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.pageUser(loginUserInfoVO);
    }
    /**
     * 查询所有人员标签
     * @return 标签集合
     */
    @PostMapping("listtag")
    public R listTag(){
        return userService.listTag();
    }
    /**
     * 查询当前社区所有标签以及预设标签
     * @return 标签集合
     */
    @PostMapping("listtag/getTag")
    public R listTags(@RequestParam("communityId") Long communityId){
        return userService.listTags(communityId);
    }
    /**
     * 人员详情
     * @param userId 用户id
     * @return 人员详情
     */
    @PostMapping("detailuser")
    public R detailUser(@RequestParam("userId") Long userId){
        return userService.detailUser(userId);
    }
    /**
     * 设置用户标签
     * @param loginUserInfoVO 标签信息
     * @return 设置结果
     */
    @PostMapping("putusertag")
    public R putUserTag(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.putUserTag(loginUserInfoVO);
    }
    /**
     * 修改用户志愿者状态
     * @param phone 志愿者手机号
     * @param type 1是志愿者 0 不是
     */
    @PostMapping("putuserisvolunteer")
    R putUserIsVolunteer(@RequestParam("phone")String phone,@RequestParam("type")int type){
        return userService.putUserIsVolunteer(phone,type);
    }
    /**
     * 用户绑定社区、小区
     * @param loginUserInfoVO 社区小区数据
     * @return 绑定结果
     */
    @PostMapping("putusercommunityarea")
    R putUserCommunityArea(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.putUserCommunityArea(loginUserInfoVO);
    }
    /**
     * 用户实名认证
     * @param loginUserInfoVO 认证数据
     * @return 认证结果
     */
    @PostMapping("putuserauthentication")
    public R putUserAuthentication(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.putUserAuthentication(loginUserInfoVO);
    }
    /**
     * 修改用户手机号
     * @param userPhoneVO 手机号信息
     * @return 修改结果
     */
    @PostMapping("putuserphone")
    public R putUserphone(@RequestBody UserPhoneVO userPhoneVO){
        return userService.putUserphone(userPhoneVO);
    }
    /**
     * 修改用户信息
     * @param loginUserInfoVO 修改内容
     * @return 修改结果
     */
    @PostMapping("putuser")
    public R putUser(@RequestBody LoginUserInfoVO loginUserInfoVO){
        return userService.putUser(loginUserInfoVO);
    }
    /**
     * 家庭成员列表
     * @param userId 登录用户
     * @return 成员集合
     */
    @PostMapping("listfamily")
    public R listFamily(@RequestParam("userId")Long userId){
        return userService.listFamily(userId);
    }
    /**
     * 新增家庭成员
     * @param comMngFamilyInfoVO 家庭成员基本信息
     * @return 增加结果
     */
    @PostMapping("addFamily")
    public R addFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO){
        return userService.addFamily(comMngFamilyInfoVO);
    }
    /**
     * 编辑家庭成员
     * @param comMngFamilyInfoVO 家庭成员信息
     * @return 编辑结果
     */
    @PostMapping("putfamily")
    public R putFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO){
        return userService.putFamily(comMngFamilyInfoVO);
    }
    /**
     * 新增运营、社区后台账户
     * @param administratorsUserVO 账户信息
     * @return 新增结果
     */
    @PostMapping("adduserbackstage")
    public R addUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){
        return userService.addUserBackstage(administratorsUserVO);
    }
    /**
     * 编辑运营、社区后台账户
     * @param administratorsUserVO 编辑账户内容
     * @return 编辑结果
     */
    @PostMapping("putuserbackstage")
    R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){
        return userService.putUserBackstage(administratorsUserVO);
    }
    /**
     * 删除后台用户
     * @param administratorsUserVO 用户主键
     * @return 删除结果
     */
    @PostMapping("deleteuserbackstage")
    public R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){
        return userService.deleteUserBackstage(administratorsUserVO);
    }
    /**
     * 分页查询后台用户
     * @param administratorsUserVO 查询参数
     * @return 后台用户
     */
    @PostMapping("pageuserbackstage")
    public R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){
        return userService.pageUserBackstage(administratorsUserVO);
    }
    /**
     * 保存操作日志
     * @param operlog 日志内容
     * @return 保存结果
     */
    @PostMapping("addoperlog")
    public R addOperLog(@RequestBody SysOperLogVO operlog){
        return userService.addOperLog(operlog);
    }
    /**
     * 分页展示操作日志
     * @param sysOperLogVO 分页参数
     * @return 分页集合
     */
    @PostMapping("pageoperlog")
    public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO){
        return userService.pageOperLog(sysOperLogVO);
    }
    /**
     * 用户协议
     * @return 协议集合
     */
    @PostMapping("listagreement")
    public R listAgreement(){
        return userService.listAgreement();
    }
    /**
     * 编辑用户协议
     * @param sysUserAgreementVO 编辑内容
     * @return 编辑结果
     */
    @PostMapping("putagreement")
    public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO){
        return userService.putAgreement(sysUserAgreementVO);
    }
    /**
     * 用户标签
     * @param communityId 社区id
     * @return 标签集合
     */
    @PostMapping("listcommngusertag")
    public R listComMngUserTag(@RequestParam("communityId")Long communityId){
        return userService.listComMngUserTag(communityId);
    }
    /**
     * 新增删除用户标签
     * @param systemmanagementConfigVO 操作内容
     * @return 操作结果
     */
    @PostMapping("putcommngusertag")
    public R putComMngUserTag(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO){
        return userService.putComMngUserTag(systemmanagementConfigVO);
    }
    /**
     * 分页查询小程序用户
     * @param pageUserAppletsBackstageDTO 查询参数
     * @return 分页集合
     */
    @PostMapping("pageuserappletsbackstage")
    public R pageUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO){
        return userService.pageUserAppletsBackstage(pageUserAppletsBackstageDTO);
    }
    /**
     * 编辑用户状态
     * @param pageUserAppletsBackstageDTO 启用或者禁用 1 启用 2 禁用
     * @return 编辑结果
     */
    @PostMapping("putuserappletsbackstage")
    public R putUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO){
        return userService.putUserAppletsBackstage(pageUserAppletsBackstageDTO);
    }
    /**
     * 调试接口--清除昵称、社区、小区
     * @param userId 登录用户id
     * @return 清除结果
     */
    @PostMapping("deleteusertest")
    public R deleteUserTest(@RequestParam("userId")Long userId){
        return userService.deleteUserTest(userId);
    }
    /**
     * 用户协议和隐私政策
     * @param type 所属app 1居民端app 2网格员端app 3商家端app
     * @return 协议内容
     */
    @PostMapping("useragreement")
    public R userAgreement(@RequestParam("type")int type){
        return userService.userAgreement(type);
    }
    /**
     * 意见反馈
     * @param sysUserFeedbackDTO 反馈内容
     * @return 反馈结果
     */
    @PostMapping("addfeedback")
    public R addFeedback(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO){
        return userService.addFeedback(sysUserFeedbackDTO);
    }
    /**
     * 分页通知列表
     * @param pageDTO 分页参数
     * @return 分页结果
     */
    @PostMapping("pagenotice")
    public R pageNotice(@RequestBody PageDTO pageDTO){
        return userService.pageNotice(pageDTO);
    }
    /**
     * 通知已读
     * @param noticeReadDTO 通知已读
     * @return 修改状态
     */
    @PostMapping("putnotice")
    public R putNotice(@RequestBody NoticeReadDTO noticeReadDTO){
        return userService.putNotice(noticeReadDTO);
    }
    /**
     * 分页查询用户意见反馈
     * @param pageFeedBackDTO 分页查询参数
     * @return 意见集合
     */
    @PostMapping("pagefeedback")
    public R pageFeedback(@RequestBody PageFeedBackDTO pageFeedBackDTO){
        return userService.pageFeedback(pageFeedBackDTO);
    }
    /**
     * 未读消息汇总
     * @param userId 登录用户信息
     * @return 未读汇总
     */
    @PostMapping("noticeunreadnum")
    public R noticeUnreadNum(@RequestParam("userId")Long userId){
        return userService.noticeUnreadNum(userId);
    }
    /**
     * 反馈意见详情
     * @param id 反馈主键
     * @return 反馈详情
     *
     */
    @PostMapping("detailfeedback")
    public R detailFeedback(@RequestParam("id")Long id){
        return userService.detailFeedback(id);
    }
    /**
     * 数据看板
     * @return 运营后台数据看板
     */
    @PostMapping("datakanban")
    public R dataKanban(){
        return userService.dataKanban();
    }
    /**
     * 社区管理后台数据看板
     * @param communityId 社区id
     * @return 看板用户数据
     */
    @PostMapping("indexdatacommunitybackstage")
    public R indexDataCommunityBackstage(@RequestParam("communityId")Long communityId){
        return userService.indexDataCommunityBackstage(communityId);
    }
    /**
     * 定时任务维护用户持续登录时间
     * @return 维护结果
     */
    @PostMapping("timedtaskcontinuouslandingdays")
    public R timedTaskContinuousLandingDays(){
        return userService.timedTaskContinuousLandingDays();
    }
    /**
     * 新增用户通知
     * @param sysUserNoticeVO 通知内容
     * @return 新增结果
     */
    @PostMapping("addnotice")
    public R addNotice(@RequestBody SysUserNoticeVO sysUserNoticeVO){
        return userService.addNotice(sysUserNoticeVO);
    }
    /**
     * 修改用户的党员状态
     * @param idCard 身份证号
     * @return 修改结果
     */
    @PostMapping("updateuserispartymember")
    public R updateUserIsPartymember(@RequestParam("idCard")String idCard){
        return userService.updateUserIsPartymember(idCard);
    }
    /**
     * 获取各种协议
     * @param type  1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
     * @return 协议内容
     */
    @PostMapping("agreement")
    public R agreement(@RequestParam("type")Integer type){
        return userService.agreement(type);
    }
    /**
     * 维护用户最后登录时间
     * @param userId 用户主键
     * @return 维护结果
     */
    @PostMapping("putuserlastlogintime")
    public R putUserLastLoginTime(@RequestParam("userId")Long userId){
        return userService.putUserLastLoginTime(userId);
    }
    /**
     * 删除意见反馈
     * @param id 主键
     * @return 删除结果
     */
    @PostMapping("deletefeedback")
    public R deleteFeedback(@RequestParam("id")Long id){
        return userService.deleteFeedback(id);
    }
    /**
     * 校验小区是否存在
     * @param areaName 小区名字
     * @return 校验结果
     */
    @PostMapping("checkaereaname")
    public R checkAereaName(@RequestParam("areaName")String areaName){
        return userService.checkAereaName(areaName);
    }
    /**
     * 批量导入居民用户
     * @param list 居民用户集合
     * @param areaName 小区名字
     * @return 导入结果
     */
    @PostMapping("batchsaveuser")
    public R batchSaveUser(@RequestBody List<EexcelUserDTO> list,@RequestParam("areaName")StringBuffer areaName){
        R r = null;
        try {
            r = sysUserInputService.batchSaveUser(list, areaName);
        } catch (Exception e) {
            String message = e.getMessage();
            log.error(message);
            if (message.contains("unique_id_card")) {
                int i = message.indexOf("'");
                String idcard = message.substring(i + 1, message.indexOf("'", i + 1));
//                System.out.println(idcard);
                return R.fail("身份证存在重复"+idcard);
            }else {
                return R.fail(e.getMessage());
            }
        }
        return r;
    }
    /**
     * 社区人员详情包括导入人员
     * @param userId 人员id
     * @return CommunityUserInfoVO
     */
    @PostMapping("detailusercomunity")
    public R detailUserComunity(@RequestParam("userId")Long userId){
        CommunityUserInfoVO communityUserInfoVO=new CommunityUserInfoVO();
        if(userId<100000000l){
            communityUserInfoVO=userService.detailUserComunity(userId);
        }else{
            communityUserInfoVO=sysUserInputService.detailUserComunity(userId);
        }
        return R.ok(communityUserInfoVO);
    }
    /**
     *  用户搜索了就下载搜索的用户否则下载所有用户
     * @param exportUserDTO 用户搜索内容
     * @return List<EexcelUserDTO> excel内容
     */
    @PostMapping("export")
    public R export(@RequestBody ExportUserDTO exportUserDTO){
      return userService.export(exportUserDTO);
    }
    /**
     * 通过手机号码查询用户信息
     * @param phone
     * @return
     */
    @GetMapping("getUserByPhone")
    public R getSysUserVOByPhone(@RequestParam(value = "phone") String phone){
        return userService.getSysUserVOByPhone(phone);
    }
    /**
     * 通过账号和渠道查询用户信息
     * @param account
     * @return
     */
    @GetMapping("getUserByAccount")
    public R getSysUserVOByAccount(@RequestParam(value = "account") String account,@RequestParam(value = "type") Integer type){
        return userService.getSysUserVOByAccount(account, type);
    }
    /**
     *分页查询人口管理
     * @param pageInputUserDTO 查询参数
     * @return 分页数据
     */
    @PostMapping("common/data/user/page")
    public R pageInputUser(@RequestBody PageInputUserDTO pageInputUserDTO){
        return sysUserInputService.pageInputUser(pageInputUserDTO);
    }
    /**
     * 设置用户标签
     * @param inputUserTagsDTO 标签信息
     * @return 设置结果
     */
    @PostMapping("common/data/user/tags")
    public R setInputUserTag(@RequestBody InputUserTagsDTO inputUserTagsDTO){
        return sysUserInputService.putUserTag(inputUserTagsDTO);
    }
    /**
     * 批量导入居民用户
     * @param list 居民用户集合
     * @param areaName 小区名字
     * @return 导入结果
     */
    @PostMapping("common/data/user/import")
    public R batchSaveInputUser(@RequestBody List<EexcelUserDTO> list,@RequestParam("areaName")StringBuffer areaName){
        R r = null;
        try {
            r = sysUserInputService.batchSaveUser(list, areaName);
        } catch (Exception e) {
            String message = e.getMessage();
            log.error(message);
            if (message.contains("unique_id_card")) {
                int i = message.indexOf("'");
                String idcard = message.substring(i + 1, message.indexOf("'", i + 1));
//                System.out.println(idcard);
                return R.fail("身份证存在重复"+idcard);
            }else {
                return R.fail(e.getMessage());
            }
        }
        return r;
    }
    /**
     *  居民管理》居民详情
     * @param id 人员id
     * @return CommunityUserInfoVO
     */
    @PostMapping("common/data/user/detail")
    public R inputUserDetail(@RequestParam("id")Long id){
        return sysUserInputService.inputUserDetail(id);
    }
    /**
     *  用户搜索了就下载搜索的用户否则下载所有用户
     * @param exportUserDTO 用户搜索内容
     * @return List<EexcelUserDTO> excel内容
     */
    @PostMapping("common/data/user/export")
    public R inputUserExport(@RequestBody ExportUserDTO exportUserDTO){
        return sysUserInputService.exportInputUser(exportUserDTO);
    }
    /**
     * 特殊群体
     * @param pageInputUserDTO
     * @return
     */
    @PostMapping("common/data/special/page")
    R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) {
        return sysUserInputService.specialInputUser(pageInputUserDTO);
    }
    /**
     * 特殊群体
     * @param id
     * @return
     */
    @DeleteMapping("common/data/special/delete")
    R deleteSpecialInputUser(@RequestParam(value = "id") Long id) {
        return sysUserInputService.deleteSpecialInputUser(id);
    }
    /**
     * 特殊群体标签列表
     * @param comMngUserTagDTO
     * @return
     */
    @PostMapping("common/data/special/tags/page")
    R specialInputUserTags(@RequestBody ComMngUserTagDTO comMngUserTagDTO) {
        return sysUserInputService.specialInputUserTags(comMngUserTagDTO);
    }
    /**
     * 新增或修改特殊群体标签
     * @param comMngTagVO
     * @return
     */
    @PostMapping("common/data/special/tags/save")
    R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO) {
        return sysUserInputService.saveSpecialInputUserTags(comMngTagVO);
    }
    /**
     * 删除特殊群体标签
     * @param id
     * @return
     */
    @DeleteMapping("common/data/special/tags/delete")
    R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id) {
        return sysUserInputService.deleteSpecialInputUserTags(id);
    }
    /**
     * 特殊群体导出
     * @param exportSpecialUserDTO
     * @return
     */
    @PostMapping("common/data/special/export")
    R specialUserExport(@RequestBody ExportSpecialUserDTO exportSpecialUserDTO) {
        return sysUserInputService.specialUserExport(exportSpecialUserDTO);
    }
}