huanghongfa
2021-01-04 39fd893c2d4cf695284826655c3f59bd769cfedd
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -7,8 +7,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.constants.SecurityConstants;
import com.panzhihua.common.constants.UserConstants;
import com.panzhihua.common.model.dtos.PageDTO;
import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
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.partybuilding.ActivityManagerVO;
import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
import com.panzhihua.common.model.vos.user.*;
@@ -54,6 +59,10 @@
    private SysOperLogDAO sysOperLogDAO;
    @Resource
    private SysUserAgreementDAO sysUserAgreementDAO;
    @Resource
    private SysUserFeedbackDAO sysUserFeedbackDAO;
    @Resource
    private SysUserNoticeDAO sysUserNoticeDAO;
    /**
@@ -213,7 +222,18 @@
    @Override
    public R changePassword(ChangePasswordVO changePasswordVO) {
        Long userId = changePasswordVO.getUserId();
        SysUserDO sysUserDO1 = userDao.selectById(userId);
        String oldPassoword = sysUserDO1.getPassword();
        String newPassword = changePasswordVO.getNewPassword();
        if (oldPassoword.equals(newPassword)) {
            return R.fail("新老密码不能相同");
        }
         oldPassoword = new BCryptPasswordEncoder().encode(oldPassoword);
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        if( !encoder.matches(oldPassoword,newPassword)){
            return R.fail("老密码错误");
        }
        SysUserDO sysUserDO=new SysUserDO();
        sysUserDO.setUserId(userId);
        String encode = new BCryptPasswordEncoder().encode(newPassword);
@@ -706,9 +726,10 @@
        if (ObjectUtils.isEmpty(sysUserDO)) {
            return R.fail("用户不存在");
        }
        Integer type = sysUserDO.getType();
        if (type.intValue()!=2) {
            return R.fail("用户废运营平台用户");
        Long communityId = sysUserDO.getCommunityId();
        Long communityId1 = administratorsUserVO.getCommunityId();
        if (communityId1.intValue()!=communityId.intValue()) {
            return R.fail("用户不属于当前平台");
        }
        //删除用户
        int delete = userDao.deleteById(userId);
@@ -822,6 +843,182 @@
        return R.ok();
    }
    /**
     * 用户标签
     *
     * @param communityId 社区id
     * @return 标签集合
     */
    @Override
    public R listComMngUserTag(Long communityId) {
        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getCommunityId, communityId));
        if (ObjectUtils.isEmpty(comMngUserTagDOS)) {
            return R.fail();
        }
        List<ComMngUserTagVO> comMngUserTagVOList=new ArrayList<>();
        comMngUserTagDOS.forEach(comMngUserTagDO -> {
            ComMngUserTagVO comMngUserTagVO=new ComMngUserTagVO();
            BeanUtils.copyProperties(comMngUserTagDO,comMngUserTagVO);
            comMngUserTagVOList.add(comMngUserTagVO);
        });
        return R.ok(comMngUserTagVOList);
    }
    /**
     * 新增删除用户标签
     *
     * @param systemmanagementConfigVO 操作内容
     * @return 操作结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R putComMngUserTag(SystemmanagementConfigVO systemmanagementConfigVO) {
        Long communityId = systemmanagementConfigVO.getCommunityId();
        List<ComMngUserTagVO> comMngUserTagVOList = systemmanagementConfigVO.getComMngUserTagVOList();
        if (!ObjectUtils.isEmpty(comMngUserTagVOList)) {
            comMngUserTagDAO.delete(null);
            comMngUserTagVOList.forEach(comMngUserTagVO -> {
                ComMngUserTagDO comMngUserTagDO=new ComMngUserTagDO();
                comMngUserTagDO.setCommunityId(communityId);
                comMngUserTagDO.setTagName(comMngUserTagVO.getTagName());
                comMngUserTagDAO.insert(comMngUserTagDO);
            });
            return R.ok();
        }else {
            return R.fail("用户标签不能为空");
        }
    }
    /**
     * 分页查询小程序用户
     *
     * @param pageUserAppletsBackstageDTO 查询参数
     * @return 分页集合
     */
    @Override
    public R pageUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
        Page page = new Page<>();
        Long pageNum = pageUserAppletsBackstageDTO.getPageNum();
        Long pageSize = pageUserAppletsBackstageDTO.getPageSize();
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<SysUserVO> iPage = userDao.pageUserAppletsBackstage(page, pageUserAppletsBackstageDTO);
        return R.ok(iPage);
    }
    /**
     * 编辑用户状态
     *
     * @param pageUserAppletsBackstageDTO 启用或者禁用 1 启用 2 禁用
     * @return 编辑结果
     */
    @Override
    public R putUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
        Long userId = pageUserAppletsBackstageDTO.getUserId();
        Integer status = pageUserAppletsBackstageDTO.getStatus();
        SysUserDO sysUserDO=new SysUserDO();
        sysUserDO.setUserId(userId);
        sysUserDO.setStatus(status);
        int update = userDao.updateById(sysUserDO);
        if (update>0) {
            return R.ok();
        }
        return R.fail("用户不存在");
    }
    /**
     * 调试接口--清除昵称、社区、小区
     *
     * @param userId 登录用户id
     * @return 清除结果
     */
    @Override
    public R deleteUserTest(Long userId) {
        int num=userDao.deleteUserTest(userId);
        if (num>0) {
            return R.ok();
        }
        return R.fail("清除失败");
    }
    /**
     * 用户协议和隐私政策
     *
     * @param type 所属app 1居民端app 2网格员端app 3商家端app
     * @return 协议内容
     */
    @Override
    public R userAgreement(int type) {
        SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO.selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type));
        return R.ok(sysUserAgreementDO);
    }
    /**
     * 意见反馈
     *
     * @param sysUserFeedbackDTO 反馈内容
     * @return 反馈结果
     */
    @Override
    public R addFeedback(SysUserFeedbackDTO sysUserFeedbackDTO) {
        SysUserFeedbackDO sysUserFeedbackDO=new SysUserFeedbackDO();
        BeanUtils.copyProperties(sysUserFeedbackDTO,sysUserFeedbackDO);
        int insert = sysUserFeedbackDAO.insert(sysUserFeedbackDO);
        if (insert>0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 分页通知列表
     *
     * @param pageDTO 分页参数
     * @return 分页结果
     */
    @Override
    public R pageNotice(PageDTO pageDTO) {
        Long userId=pageDTO.getUserId();
        Integer integer = sysUserNoticeDAO.selectCount(new QueryWrapper<SysUserNoticeDO>().lambda().eq(SysUserNoticeDO::getUserId, userId).eq(SysUserNoticeDO::getStatus, 0));
        Page page = new Page<>();
        Long pageNum = pageDTO.getPageNum();
        Long pageSize = pageDTO.getPageSize();
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<SysUserNoticeVO> iPage = userDao.pageNotice(page, pageDTO);
        Map<String,Object> map=new HashMap<>(2);
        map.put("page",iPage);
        map.put("unreadNum",null==integer?0:integer);
        return R.ok(map);
    }
    /**
     * 通知已读
     *
     * @param noticeReadDTO 通知已读
     * @return 修改状态
     */
    @Override
    public R putNotice(NoticeReadDTO noticeReadDTO) {
        Integer all = noticeReadDTO.getAll();
        Long userId = noticeReadDTO.getUserId();
        int num=0;
        SysUserNoticeDO sysUserNoticeDO=new SysUserNoticeDO();
        if (null!=all&&1==all.intValue()) {
            sysUserNoticeDO.setStatus(1);
            num=sysUserNoticeDAO.update(sysUserNoticeDO,new UpdateWrapper<SysUserNoticeDO>().lambda().eq(SysUserNoticeDO::getUserId,userId).eq(SysUserNoticeDO::getStatus,0));
        }else{
            sysUserNoticeDO.setId(noticeReadDTO.getId());
            sysUserNoticeDO.setStatus(1);
            num=sysUserNoticeDAO.updateById(sysUserNoticeDO);
        }
        if (num>0) {
            return R.ok();
        }
       return R.fail("通知不存在");
    }
    public static void main(String[] args) {
        String encode = new BCryptPasswordEncoder().encode("123456");
        System.out.println(encode);