tangxiaobao
2021-08-16 ac4d876533a711a12704ea50e609342e13b2ca08
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -24,9 +24,7 @@
import com.panzhihua.common.model.vos.user.*;
//import com.panzhihua.common.service.grid.GridService;
import com.panzhihua.common.service.partybuilding.PartyBuildingService;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.RealNameUtil;
import com.panzhihua.common.utlis.SensitiveUtil;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_user.dao.*;
import com.panzhihua.service_user.model.dos.*;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
@@ -88,6 +86,8 @@
    private EventGridMemberBuildingRelationService buildingRelationService;
    @Resource
    private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
    @Resource
    private LcCompareMemberCodeMapper lcCompareMemberCodeMapper;
//    @Resource
//    private GridService gridService;
@@ -172,7 +172,7 @@
        userDao.updateServiceTeam(purePhoneNumber, purePhoneNumber);
        int i = userDao.updateById(sysUserDO);
        if (i > 0) {
            return R.ok();
            return R.ok(purePhoneNumber);
        } else {
            return R.fail("维护微信手机号失败");
        }
@@ -396,23 +396,12 @@
    /**
     * 分页查询人口管理
     *
     * @param loginUserInfoVO 查询参数
     * @param userInfoVO 查询参数
     * @return 分页数据
     */
    @Override
    public R pageUser(LoginUserInfoVO loginUserInfoVO) {
        Page page = new Page<>();
        Long pageNum = loginUserInfoVO.getPageNum();
        Long pageSize = loginUserInfoVO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<LoginUserInfoVO> iPage = userDao.pageUser(page, loginUserInfoVO);
    public R pageUser(AppletUserInfoVO userInfoVO) {
        IPage<AppletUserInfoVO> iPage = userDao.pageUser(new Page<>(userInfoVO.getPageNum(),userInfoVO.getPageSize()), userInfoVO);
        iPage.getRecords().forEach(record -> {
            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
@@ -600,17 +589,18 @@
     */
    @Override
    public R putUserCommunityArea(LoginUserInfoVO loginUserInfoVO) {
        SysUserDO sysUserDO = new SysUserDO();
        sysUserDO.setCommunityId(loginUserInfoVO.getCommunityId());
//        sysUserDO.setAreaId(loginUserInfoVO.getAreaId());
        sysUserDO.setUserId(loginUserInfoVO.getUserId());
        int update = userDao.updateById(sysUserDO);
        if (update > 0) {
            //删除用户信息缓存
            String userKey = UserConstants.LOGIN_USER_INFO + loginUserInfoVO.getUserId();
            stringRedisTemplate.delete(userKey);
            return R.ok();
        }
//        SysUserDO sysUserDO = new SysUserDO();
//        sysUserDO.setCommunityId(loginUserInfoVO.getCommunityId());
////        sysUserDO.setAreaId(loginUserInfoVO.getAreaId());
//        sysUserDO.setUserId(loginUserInfoVO.getUserId());
//        int update = userDao.updateById(sysUserDO);
//        if (update > 0) {
//            //删除用户信息缓存
//            String userKey = UserConstants.LOGIN_USER_INFO + loginUserInfoVO.getUserId();
//            stringRedisTemplate.delete(userKey);
//            return R.fail();
//        }
        return R.fail();
    }
@@ -626,23 +616,28 @@
        String idCard = loginUserInfoVO.getIdCard();
        String name = loginUserInfoVO.getName();
        log.info("用户实名认证发送请求,姓名:" + name + "身份证号码:" + idCard);
        try {
            boolean b = RealNameUtil.authentication(idCard, name);
            if (!b) {
                return R.fail("身份认证失败:请填写真实信息");
            }
        }catch (ServiceException serviceException){
            return R.fail(serviceException.getMessage());
        }
//        try {
//            boolean b = RealNameUtil.authentication(idCard, name);
//            if (!b) {
//                return R.fail("身份认证失败:请填写真实信息");
//            }
//        }catch (ServiceException serviceException){
//            return R.fail(serviceException.getMessage());
//        }
        SysUserDO sysUserDO = new SysUserDO();
        sysUserDO.setName(name);
        sysUserDO.setIdCard(idCard);
        //通过身份证号判断性别以及出生日期
        sysUserDO.setSex(IdCard.sex(idCard));
        sysUserDO.setBirthday(IdCard.birthDay(idCard));
        sysUserDO.setJob(loginUserInfoVO.getJob());
        if(!StringUtils.isEmpty(loginUserInfoVO.getJob())){
            sysUserDO.setJob(loginUserInfoVO.getJob());
        }
        sysUserDO.setUserId(loginUserInfoVO.getUserId());
        sysUserDO.setFaceUrl(loginUserInfoVO.getFaceUrl());
        if(!StringUtils.isEmpty(loginUserInfoVO.getPhone())){
            sysUserDO.setPhone(loginUserInfoVO.getPhone());
        }
        sysUserDO.setFaceState(null);
        SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard));
        if (!ObjectUtils.isEmpty(sysUserDO1)) {
@@ -660,6 +655,19 @@
                userDao.updateById(sysUserDO);
                //修改审核绑定的userId
                userDao.updateComPbMemberUserId(idCard,sysUserDO.getUserId());
            }
            SysUserDO user = userDao.selectById(loginUserInfoVO.getUserId());
            if(user != null){
                //实名认证成功推送订阅消息给用户
                try {
                    WxXCXTempSend util = new WxXCXTempSend();
                    String accessToken = util.getAppAccessToken();
                    //用户实名认证推送消息
                    WxUtil.sendSubscribeRZSH(user.getOpenid(),accessToken,"实名认证", com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(),"认证成功");
                }catch (Exception e){
                    log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
                }
            }
            return R.ok();
        }
@@ -1938,7 +1946,24 @@
            //关联市平台网格员
            if(eventGridMemberAddDTO.getLcMemberId() != null){
                this.userDao.addLcMember(eventGridMemberAddDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
                LcCompareCodeMemberDO compareCodeMemberDO = lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId,eventGridMemberAddDTO.getLcMemberId()));
                if(compareCodeMemberDO != null){
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setUpdateAt(new Date());
                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
                }else{
                    compareCodeMemberDO = new LcCompareCodeMemberDO();
                    compareCodeMemberDO.setId(Snowflake.getId());
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setLcGridMemberId(eventGridMemberAddDTO.getLcMemberId());
                    compareCodeMemberDO.setLcBindUserId(eventGridMemberAddDTO.getLcBindUserId());
                    compareCodeMemberDO.setLcGridMemberName(eventGridMemberAddDTO.getLcMemberName());
                    compareCodeMemberDO.setCreateAt(new Date());
                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
                }
            }
            //网格员关联楼栋
@@ -1988,7 +2013,12 @@
        if(!gridMemberPage.getRecords().isEmpty()){
            gridMemberPage.getRecords().forEach(gridMember -> {
                //查询网格员关联市平台网格员id
                gridMember.setLcMemberId(this.userDao.getLcMemberId(gridMember.getUserId()));
                Map<String,String> lcMemberMap = this.userDao.getLcMemberId(gridMember.getUserId());
                if(lcMemberMap != null){
                    gridMember.setLcMemberId(lcMemberMap.get("lc_grid_member_id"));
                    gridMember.setLcMemberName(lcMemberMap.get("lc_grid_member_name"));
                    gridMember.setLcBindUserId(lcMemberMap.get("lc_bind_user_id"));
                }
                //查询网格员关联楼栋信息
                List<GridMemberBuildingVO> memberBuildingList = eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
@@ -2041,7 +2071,24 @@
            //关联市平台网格员
            if(gridMemberDTO.getLcMemberId() != null){
                //关联现有的网格员信息
                this.userDao.addLcMember(gridMemberDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
                LcCompareCodeMemberDO compareCodeMemberDO = lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId,gridMemberDTO.getLcMemberId()));
                if(compareCodeMemberDO != null){
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setUpdateAt(new Date());
                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
                }else{
                    compareCodeMemberDO = new LcCompareCodeMemberDO();
                    compareCodeMemberDO.setId(Snowflake.getId());
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setLcGridMemberId(gridMemberDTO.getLcMemberId());
                    compareCodeMemberDO.setLcBindUserId(gridMemberDTO.getLcBindUserId());
                    compareCodeMemberDO.setLcGridMemberName(gridMemberDTO.getLcMemberName());
                    compareCodeMemberDO.setCreateAt(new Date());
                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
                }
            }
            //清除原网格员与楼栋关联关系
            this.userDao.delGridMemberRelation(sysUserDO.getUserId());
@@ -2177,4 +2224,18 @@
    public R getGridsMemberList(Long communityId){
        return R.ok(this.userDao.getGridsMemberList(communityId));
    }
    /**
     * 根据用户id查询用户openid
     * @param userId    用户id
     * @return  openid
     */
    @Override
    public R getUserOpenId(Long userId){
        SysUserDO userDO = this.userDao.selectById(userId);
        if(userDO != null){
            return R.ok(userDO.getOpenid());
        }
        return R.fail();
    }
}