From 38365ee0424879f654ef3b87031c537d7b27b8e3 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 08 Nov 2023 14:41:24 +0800 Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into wb --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 120 insertions(+), 53 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index e6b33b5..86fd061 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -1,29 +1,5 @@ package com.moral.api.service.impl; -import com.moral.api.utils.StringUtils; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.codec.digest.DigestUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.ObjectUtils; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -import javax.servlet.http.HttpServletRequest; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -32,36 +8,43 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.moral.api.entity.Group; -import com.moral.api.entity.Menu; -import com.moral.api.entity.Organization; -import com.moral.api.entity.ResponsibilityUnit; -import com.moral.api.entity.User; -import com.moral.api.entity.UserGroup; -import com.moral.api.entity.UserLog; -import com.moral.api.exception.BusinessException; -import com.moral.api.mapper.MenuMapper; -import com.moral.api.mapper.ResponsibilityUnitMapper; -import com.moral.api.mapper.UserGroupMapper; -import com.moral.api.mapper.UserLogMapper; -import com.moral.api.mapper.UserMapper; +import com.moral.api.config.Interceptor.UserHelper; +import com.moral.api.entity.*; +import com.moral.api.mapper.*; import com.moral.api.pojo.bo.UserBO; +import com.moral.api.pojo.enums.AllocationApproveEnum; +import com.moral.api.pojo.enums.FileTableEnum; +import com.moral.api.pojo.enums.StateEnum; +import com.moral.api.pojo.enums.SysDictTypeEnum; + +import com.moral.api.pojo.vo.file.FileVo; +import com.moral.api.pojo.vo.user.QxUser; +import com.moral.api.service.FileTableService; import com.moral.api.service.ResponsibilityUnitService; import com.moral.api.service.UserService; -import com.moral.api.utils.HttpClientUtil; import com.moral.api.utils.OperationLogUtils; import com.moral.api.utils.WechatUtils; +import com.moral.api.vo.WxMssVo; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; -import com.moral.constant.ResultMessage; -import com.moral.util.AESUtils; -import com.moral.util.ConvertUtils; -import com.moral.util.DateUtils; -import com.moral.util.MD5Utils; -import com.moral.util.RegexUtils; -import com.moral.util.TokenUtils; -import com.moral.util.WebUtils; -import com.sun.org.apache.regexp.internal.RE; +import com.moral.util.*; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -88,10 +71,16 @@ private UserLogMapper userLogMapper; @Autowired + private FileTableService fileTableService; + + @Autowired private OperationLogUtils operationLogUtils; @Autowired private ResponsibilityUnitMapper responsibilityUnitMapper; + + @Autowired + private ResponsibilityUnitService responsibilityUnitService; @Value("${AES.KEY}") @@ -126,6 +115,7 @@ return result; } ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); + List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, userBo.getId()); //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); userInfo.put("userId", userBo.getId()); @@ -134,10 +124,11 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); - userInfo.put("unName",responsibilityUnit.getAreaName()); + userInfo.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); + userInfo.put("organizationId",userBo.getOrganizationId()); userInfo.put("openid", openId); try { @@ -148,7 +139,10 @@ result.put("unitId",userBo.getUnitId()); result.put("userId", userBo.getId()); result.put("account", userBo.getAccount()); - result.put("unName",Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); + List<FileVo> listFile = fileTableService.list(userBo.getId(), FileTableEnum.APP_ALLOCATION.value); + result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo()); + result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������"); + result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value :StateEnum.TAKE_EFFECT.value); } catch (Exception e) { log.error("token���������������" + e.getMessage()); result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode()); @@ -175,7 +169,7 @@ // 3.������������������������ ��������������������� String openid = SessionKeyOpenId.getString("openid"); - String sessionKey = SessionKeyOpenId.getString("session_key"); +// String sessionKey = SessionKeyOpenId.getString("session_key"); // 4.������������ ������������������������signature������������������������������signature2 = sha1(rawData + sessionKey) // String signature2 = DigestUtils.sha1Hex(rawData + sessionKey); @@ -206,20 +200,25 @@ userInfo.put("mobile", user.getMobile()); userInfo.put("unitId",user.getUnitId()); // userInfo.put("unName",user.getAreaName()); + userInfo.put("organizationId",user.getOrganizationId()); userInfo.put("wechat", user.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(user.getExpireTime())); userInfo.put("isAdmin", user.getIsAdmin()); ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(user.getUnitId()); + List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, user.getId()); try { //������token������������redis String token = TokenUtils.getTokenApp(new StringBuffer("00").append(user.getId().toString()).toString(),userInfo); result.put("token", token); - result.put("token", token); result.put("userName", user.getUserName()); result.put("unitId",user.getUnitId()); + List<FileVo> listFile = fileTableService.list(user.getId(), FileTableEnum.APP_ALLOCATION.value); + result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo()); result.put("userId", user.getId()); result.put("account", user.getAccount()); - result.put("unName",Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); + result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value); + result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������"); + result.put("openId",openid); } catch (Exception e) { log.error("token���������������" + e.getMessage()); result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode()); @@ -240,6 +239,74 @@ sysLog(userId+"������������������",user); return true; } + + + + /** + * ��������������� + * @param appAllocationPushUserCond + */ + @Override + @Async + public void pushOneUser(Allocation appAllocationPushUserCond) { + QxUser currentUser = UserHelper.getCurrentUser(); + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(appAllocationPushUserCond.getUnitId()); + Integer areaCode = responsibilityUnit.getAreaCode(); + + List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectAreaUnit(areaCode.toString().length()>6?responsibilityUnit.getParentCode():responsibilityUnit.getAreaCode()); + //������unitid + LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(User::getIsDelete,Constants.NOT_DELETE); + Integer state = appAllocationPushUserCond.getState(); + if (state==20){ + wrapper.eq(User::getUnitId,appAllocationPushUserCond.getUnitId()); + }else { + wrapper.eq(User::getUnitId,ObjectUtils.isEmpty(responsibilityUnits)?0:responsibilityUnits.get(0).getUnitId()); + } + + List<User> users = userMapper.selectList(wrapper); + if (ObjectUtils.isEmpty(users)){ + return; + } + + String dateString = DateUtils.dateToDateString(appAllocationPushUserCond.getEscalationTime(),"MM���dd���"); + //������������������������������������������������access_token������������������������������access_token������������������������������ + //��������������� + String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + WechatUtils.getAccessToken(); + //������������ + for (User user : users) { + if (user.getId().equals(currentUser.getUserId())){ + continue; + } + RestTemplate restTemplate = new RestTemplate(); + //��������������������� + WxMssVo wxMssVo = new WxMssVo(); + wxMssVo.setTouser(user.getOpenId());//���������openid��������������������������������������������������������������������� + wxMssVo.setTemplate_id("YNqUZ1MgMvwY3G-NENVbcmIBR5dUotSdnwcz96CWrho");//������������������id + wxMssVo.setLang("zh_CN"); + wxMssVo.setMiniprogramState("formal"); + wxMssVo.setPage("pages/index/index"); + Map<String, Object> m = new HashMap<>(); + HashMap<String, Object> map1 = new HashMap<>(); + HashMap<String, Object> map2 = new HashMap<>(); + HashMap<String, Object> map3 = new HashMap<>(); + HashMap<String, Object> map4 = new HashMap<>(); + map1.put("value",responsibilityUnit.getUnitName()+dateString+"������������"); + map2.put("value",appAllocationPushUserCond.getAllocationNum()); + map3.put("value",state==30? AllocationApproveEnum.IN_APPROVAL.name:AllocationApproveEnum.UNDER_RECTIFICATION.name); + map4.put("value",DateUtils.dateToDateString(new Date(),"yyyy���MM���dd���")); + m.put("thing18", map1); + m.put("character_string1", map2); + m.put("thing2", map3); + m.put("date4", map4); + wxMssVo.setData(JSON.toJSON(m)); + ResponseEntity<String> responseEntity = + restTemplate.postForEntity(url, wxMssVo, String.class); + String body = responseEntity.getBody(); + log.info("������:"+body+"������:"+user.getAccount()); + } + } + private void sysLog(String cont,User user){ //������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); @@ -294,7 +361,7 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); - userInfo.put("unName",responsibilityUnit.getAreaName()); + userInfo.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); -- Gitblit v1.8.0