yanghui
2022-11-01 8f2544f1d0e5e82c0e7ee1d89abc1c916b0b9f9f
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -17,6 +17,8 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -101,6 +103,7 @@
import com.panzhihua.service_user.model.dos.SysUserNoticeDO;
import com.panzhihua.service_user.model.dos.SysUserRoleDO;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
import com.panzhihua.service_user.model.dtos.UsersStatisticsDTO;
import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
import com.panzhihua.service_user.service.UserService;
@@ -221,6 +224,10 @@
            sysUserDO1.setPassword(encode);
            sysUserDO1.setType(1);
            sysUserDO1.setAppId(appId);
            //设置默认头像地址
            sysUserDO1.setImageUrl("https://www.psciio.com//idcard/f15c91f940624ed59537ecced1059f18.jpg");
            //设置默认用户名
            sysUserDO1.setNickName("用户" + RandomUtil.randomString(8));
            num = userDao.insert(sysUserDO1);
        } else {
            String encode = new BCryptPasswordEncoder().encode(UserConstants.PASSWORD);
@@ -302,7 +309,7 @@
        Boolean isIndustryOrExpertAccount=(userDao.isIndustryCenterAccount(name)>0 || userDao.isExpertAccount(name)>0);
        if (1 == type) {
            sysUserDO = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name).eq(SysUserDO::getAppId, appId));
        }else if(isIndustryOrExpertAccount) {
            //三说会堂行业分中心或专家后台账号登陆
            sysUserDO = userDao.selectOne(
@@ -324,6 +331,9 @@
            return R.fail();
        }
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        if (nonNull(sysUserDO.getStreetId())){
            loginUserInfoVO.setStreetId(sysUserDO.getStreetId());
        }
        loginUserInfoVO.setUserId(sysUserDO.getUserId());
        loginUserInfoVO.setName(sysUserDO.getName());
        loginUserInfoVO.setPassword(sysUserDO.getPassword());
@@ -353,6 +363,13 @@
            roleDOList.forEach(sysRoleDO -> {
                set.add(sysRoleDO.getRoleKey());
            });
        }
        //是否为人大代表
        if (StringUtils.isNotEmpty(sysUserDO.getPhone()) && StringUtils.isNotEmpty(sysUserDO.getName())){
            int i = userDao.isDpcMember(sysUserDO.getPhone(), sysUserDO.getName());
            if (i>0){
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        return R.ok(loginUserInfoVO);
    }
@@ -477,31 +494,53 @@
        if(countSocialOrg>0){
            loginUserInfoVO.setUserType(3);
        }
        else {
            if(loginUserInfoVO.getStreetId()!=null){
                loginUserInfoVO.setUserType(1);
        if (nonNull(sysUserDO.getAccount())){
            if (isStreetAccount(sysUserDO.getAccount())){
                //街道账号
                loginUserInfoVO.setLevel(3);
            }
            else {
                loginUserInfoVO.setUserType(2);
                loginUserInfoVO.setLevel(4);
            if (sysUserDO.getAccount().equals("admin")){
                loginUserInfoVO.setLevel(1);
            }
        }
        if (loginUserInfoVO.getType().equals(3)){
            loginUserInfoVO.setLevel(4);
        }
        if (sysUserDO.getType().equals(11)){
            //专家
            loginUserInfoVO.setLevel(5);
        }else if (sysUserDO.getType().equals(12)){
            //行业分中心
            loginUserInfoVO.setLevel(2);
        }else if (isNull(loginUserInfoVO.getLevel())){
            loginUserInfoVO.setLevel(1);
        }
        //是否为三说会堂专家
        ComSanshuoExpertVO expertVO=userDao.isExpert(loginUserInfoVO.getPhone());
        if (nonNull(expertVO)){
            loginUserInfoVO.setType(13);
        }
        //是否为人大代表
        if (StringUtils.isNotEmpty(phone) && StringUtils.isNotEmpty(sysUserDO.getName())){
            int i = userDao.isDpcMember(phone, sysUserDO.getName());
            if (i>0){
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        return R.ok(loginUserInfoVO);
    }
    /**
     * 是否为综治后台街道账号
     * */
    public Boolean isStreetAccount(String name){
        Boolean flag=false;
        String[] account={"glpz","qxpjd","tjdjd","dbdjd","yqjd","bcg","hmkjd","dhjd","jsgyy","dzhljd"};
        if (nonNull(name)){
            if (ArrayUtil.contains(account,name)){
                flag=true;
            }
        }
        return flag;
    }
    /**
@@ -551,7 +590,7 @@
        LambdaQueryWrapper<SysUserDO> queryWrapper = new LambdaQueryWrapper<>();
        List<ActivityManagerVO> activityManagerVOS = new ArrayList<>();
        queryWrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getCommunityId, communityId)
            .eq(SysUserDO::getStatus, 1).eq(SysUserDO::getType, 3);
                .eq(SysUserDO::getStatus, 1).eq(SysUserDO::getType, 3);
        if (!ObjectUtils.isEmpty(param)) {
            queryWrapper = queryWrapper.eq(SysUserDO::getName, param);
        }
@@ -1545,11 +1584,11 @@
                || operlog.getTitle().equals(UPDATEACIDRECORD));
        if (flag) {
            //保存数据
            try {
                operlog.setBeforeUpdateData(saveBeforeUpdateData(operlog));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
//            try {
////                operlog.setBeforeUpdateData(saveBeforeUpdateData(operlog));
//            } catch (JsonProcessingException e) {
//                e.printStackTrace();
//            }
        }
        SysOperLogDO sysOperLogDO = new SysOperLogDO();
        BeanUtils.copyProperties(operlog, sysOperLogDO);
@@ -1579,6 +1618,11 @@
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        //因操作日志数据量太大,如果没有时间查询条件,默认查询最近十五天的数据
        if (StrUtil.isEmpty(sysOperLogVO.getStartTime()) && StrUtil.isEmpty(sysOperLogVO.getEndTime())){
            sysOperLogVO.setStartTime(com.panzhihua.common.utlis.DateUtils.getBeforeDay(15));
            sysOperLogVO.setEndTime(com.panzhihua.common.utlis.DateUtils.getCurrentDateymd());
        }
        IPage<SysOperLogVO> iPage = sysOperLogDAO.pageOperLog(page, sysOperLogVO);
        return R.ok(iPage);
    }
@@ -3256,16 +3300,19 @@
    @Override
    public R updateUserPartyStatus(Long userId) {
        SysUserDO sysUserDO = userDao.selectById(userId);
        if (sysUserDO != null) {
            sysUserDO.setIsPartymember(1);
            int updated = userDao.updateById(sysUserDO);
            if (updated > 0) {
                // 删除用户信息缓存
                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
                stringRedisTemplate.delete(userKey);
        List<SysUserDO> sysUserDOs = userDao.selectByUserId(userId);
        for (SysUserDO sysUserDO : sysUserDOs) {
            if (sysUserDO != null) {
                sysUserDO.setIsPartymember(1);
                int updated = userDao.updateById(sysUserDO);
                if (updated > 0) {
                    // 删除用户信息缓存
                    String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
                    stringRedisTemplate.delete(userKey);
                }
            }
        }
        return R.ok();
    }
@@ -3557,15 +3604,18 @@
                activeDate = getMonthTwentyDays();
            }
        }
        //获取最近活跃人数
        Map<String, Long> active = userDao.getActive(activeX, streetId, areaCode, appId);
        List<UsersStatisticsDTO> actives = userDao.getActive(activeX, streetId, areaCode, appId);
        //获取最近注册人数
        Map<String, Long> dailyAdd = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
        List<UsersStatisticsDTO> dailyAdds = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
        Map<String, String> activeMap = actives.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
        Map<String, String> dailyAddMap = dailyAdds.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
        for (Date date : activeDate) {
            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
            activeY.add(active.containsKey(dateStr) ? active.get("activeUser").toString() : "0");
            adY.add(dailyAdd.containsKey(dateStr) ? dailyAdd.get("addUser").toString() : "0");
            activeY.add(activeMap.containsKey(dateStr) ? activeMap.get(dateStr) : "0");
            adY.add(dailyAddMap.containsKey(dateStr) ? dailyAddMap.get(dateStr) : "0");
        }
        vo.setUserX(getMAndD(activeDate));
@@ -3583,7 +3633,7 @@
                String accessToken = "";
                WxXCXTempSend util = new WxXCXTempSend();
                try {
                    accessToken = util.getAccessToken();
                    accessToken = util.getAccessToken("wx118de8a734d269f0");
                } catch (Exception e) {
                    e.printStackTrace();
                }
@@ -3593,15 +3643,15 @@
                        WxUtil.sendUuWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sU18zbyzxFldHAdOREaQCR5uq_uMvCKTmGtklO1xw-w");
                        break;
                    case 4:
                        status = "车美已开始服务";
                        status = "开始服务";
                        WxUtil.sendUuWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                        break;
                    case 6:
                        status = "订单确认完成";
                        status = "订单完成";
                        WxUtil.sendUuWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "k1aV97H3pDNNcNcDTeZBD9jQemNDADnRE801HhTXweI");
                        break;
                    case 9:
                        status = "订单已取消";
                        status = "订单取消";
                        WxUtil.sendUuWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "9_2FhQPDxZoUqmAuIZ1L1zjjYXokdNvu7A0gzKfvruI");
                        break;
                }
@@ -3629,15 +3679,15 @@
                        WxUtil.sendWsWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
                        break;
                    case 4:
                        status = "车美已开始服务";
                        status = "开始服务";
                        WxUtil.sendWsWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
                        break;
                    case 6:
                        status = "订单确认完成";
                        status = "订单完成";
                        WxUtil.sendWsWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
                        break;
                    case 9:
                        status = "订单已取消";
                        status = "订单取消";
                        WxUtil.sendWsWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
                        break;
                }