| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- package cn.com.goldenwater.dcproj.service.impl.synchronous;
- import cn.com.goldenwater.dcproj.constValue.AdCodeLabel;
- import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersZjDao;
- import cn.com.goldenwater.dcproj.dao.BisInspOrgDao;
- import cn.com.goldenwater.dcproj.dao.RelOrgInspTypeDao;
- import cn.com.goldenwater.dcproj.model.BisInspAll;
- import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
- import cn.com.goldenwater.dcproj.model.BisInspOrg;
- import cn.com.goldenwater.dcproj.model.BisInspPersOrg;
- import cn.com.goldenwater.dcproj.model.OlBisInspOrg;
- import cn.com.goldenwater.dcproj.model.UserRole;
- import cn.com.goldenwater.dcproj.param.BisInspAllRlationPersParam;
- import cn.com.goldenwater.dcproj.param.BisInspOrgParam;
- import cn.com.goldenwater.dcproj.param.BisInspPersOrgParam;
- import cn.com.goldenwater.dcproj.param.UserRoleParam;
- import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService;
- import cn.com.goldenwater.dcproj.service.BisInspAllRlationService;
- import cn.com.goldenwater.dcproj.service.BisInspAllService;
- import cn.com.goldenwater.dcproj.service.BisInspPersOrgService;
- import cn.com.goldenwater.dcproj.service.HnCasService;
- import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
- import cn.com.goldenwater.dcproj.service.UserRoleService;
- import cn.com.goldenwater.dcproj.service.impl.system.OrganizationTreeImpl;
- import cn.com.goldenwater.dcproj.utils.JWTTokenUtil;
- import cn.com.goldenwater.dcproj.utils.UserMsgSectrityUtils;
- import cn.com.goldenwater.id.util.UuidUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.servlet.http.HttpServletRequest;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.TimeUnit;
- @Service
- @Transactional
- public class HnCasServiceImpl implements HnCasService {
- @Value("${watermanage.appsecret}")
- private String appsecret;
- @Autowired
- private BisInspAllRlationPersService bisInspAllRlationPersService;
- @Autowired
- private OrganizationTreeImpl organizationTree;
- @Autowired
- private RedisTemplate redisTemplate;
- @Autowired
- private OlBisInspOrgService olBisInspOrgService;
- @Autowired
- private BisInspOrgDao bisInspOrgDao;
- @Autowired
- private BisInspAllRlationPersZjDao bisInspAllRlationPersZjDao;
- @Autowired
- private BisInspPersOrgService persOrgService;
- @Autowired
- private UserRoleService userRoleService;
- @Autowired
- private BisInspAllRlationService rlationService;
- @Autowired
- private RelOrgInspTypeDao relOrgInspTypeDao;
- @Autowired
- private BisInspAllService bisInspAllService;
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Override
- public BisInspAllRlationPers validateUser(Map<String, Object> ssoUserMap) throws Exception {
- //用户编号
- String userCode = ssoUserMap.get("userId").toString();
- // 真实姓名
- String trueName = ssoUserMap.get("userName").toString();
- String mobile = ssoUserMap.get("userId").toString();
- if (StringUtils.isNotBlank(userCode) && StringUtils.isNotBlank(mobile) && StringUtils.isNotBlank(trueName)) {
- BisInspAllRlationPersParam bisInspAllRlationPersParam = new BisInspAllRlationPersParam();
- bisInspAllRlationPersParam.setMobilenumb(mobile);
- BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersService.getBy(bisInspAllRlationPersParam);
- // 若本地用户无,则查询同步水管平台用户是否存在,不存在则请求水管平台接口同步用户,存在则添加本地用户数据
- if (bisInspAllRlationPers != null) {
- bisInspAllRlationPers.setOrgId("055");
- bisInspAllRlationPers.setOrgNm("海南省");
- return bisInspAllRlationPers;
- } else {
- bisInspAllRlationPers = addBisInspAllRlationPers(userCode, mobile, trueName);
- return bisInspAllRlationPers;
- // }
- }
- } else {
- this.logger.info("请求水管用户接口异常 ==> 用户编码:" + userCode + "或手机号:" + mobile);
- throw new Exception("请求水管用户接口异常 ==> 用户编码:" + userCode + "或手机号:" + mobile);
- }
- }
- @Override
- public BisInspAllRlationPers validateTicket(BisInspAllRlationPers bisInspAllRlationPers, String uuid, HttpServletRequest request) {
- bisInspAllRlationPers = getBisInspAllRlations(bisInspAllRlationPers);
- BisInspAllRlationPers pers = new BisInspAllRlationPers();
- pers.setGuid(bisInspAllRlationPers.getGuid());
- pers.setLoginTm(new Date());
- if (StringUtils.isBlank(bisInspAllRlationPers.getPersType())) {
- bisInspAllRlationPers.setPersType("3");
- pers.setPersType("3");
- }
- bisInspAllRlationPersService.update(pers);
- bisInspAllRlationPers.setPwd(null);
- String accessToken = JWTTokenUtil.sign(bisInspAllRlationPersService.getLoginUser(bisInspAllRlationPers), bisInspAllRlationPers.getGuid());
- redisTemplate.opsForValue().set(uuid, accessToken, JWTTokenUtil.maxAge, TimeUnit.MILLISECONDS);
- redisTemplate.opsForValue().set(uuid + bisInspAllRlationPers.getGuid(), accessToken, JWTTokenUtil.refreshmaxAge, TimeUnit.MILLISECONDS);
- //bisInspAllRlationPersService.sendChannel(uuid, bisInspAllRlationPers, request, PlusEnum.ADD.getNumber());
- bisInspAllRlationPers.setMobilenumb(UserMsgSectrityUtils.blurPhone(bisInspAllRlationPers.getMobilenumb()));
- return bisInspAllRlationPers;
- }
- /**
- * @Description 获取本系统
- * @Date 2020/7/14
- **/
- private BisInspAllRlationPers getBisInspAllRlations(BisInspAllRlationPers bisInspAllRlationPers) {
- BisInspOrg bisInspOrg = new BisInspOrg();
- if (StringUtils.isNotBlank(bisInspAllRlationPers.getOrgId())) {
- String orgId = bisInspAllRlationPers.getOrgId();
- bisInspOrg = olBisInspOrgService.getDefaultOrg(orgId);
- bisInspAllRlationPers.setDefaultOrg(bisInspOrg);
- BisInspOrgParam inspOrgParam = new BisInspOrgParam();
- inspOrgParam.setPersId(bisInspAllRlationPers.getGuid());
- List<BisInspOrg> inspOrgList = bisInspOrgDao.findPersOrgList(inspOrgParam);
- bisInspAllRlationPers.setAllOrg(inspOrgList);
- }
- if (StringUtils.isNotBlank(bisInspAllRlationPers.getGuid())) {
- List<BisInspAll> allNode = organizationTree.getAllNode(bisInspAllRlationPers.getGuid(), "", bisInspAllRlationPers.getOrgId(), "", "", "","","");
- if (allNode.size() > 0) {
- StringBuffer s = new StringBuffer();
- s.append("1");
- String sk = "0";
- String ry = "000";
- String sh = "0";
- String ogc = "0";
- String dxs = "0";
- String sz = "0";
- String sd = "0";
- for (BisInspAll b : allNode) {
- if ("001".equals(b.getId().substring(0, 3))) {
- sk = "1";
- }
- if ("002".equals(b.getId().substring(0, 3))) {
- ry = "111";
- }
- if ("003".equals(b.getId().substring(0, 3))) {
- sh = "1";
- }
- if ("004".equals(b.getId().substring(0, 3))) {
- ogc = "1";
- }
- if ("005".equals(b.getId().substring(0, 3))) {
- dxs = "1";
- }
- if ("006".equals(b.getId().substring(0, 3))) {
- sz = "1";
- }
- if ("011".equals(b.getId().substring(0, 3))) {
- sd = "1";
- }
- }
- s.append(sk).append(ry).append(sh).append(ogc).append(dxs).append(sz).append(sd);
- bisInspAllRlationPers.setJurisdiction(s.toString());
- } else {
- bisInspAllRlationPers.setJurisdiction("100000000");
- }
- bisInspAllRlationPers.setAllNode(allNode);
- }
- return bisInspAllRlationPers;
- }
- /**
- * @Description ,添加用户权限中角色信息,添加用户关联机构,添加用户任务列表
- **/
- public BisInspAllRlationPers addBisInspAllRlationPers(String userCode, String mobile, String trueName) {
- BisInspAllRlationPers bisInspAllRlationPers = new BisInspAllRlationPers();
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspAllRlationPers.setGuid(uuid);
- bisInspAllRlationPers.setPersName(trueName);
- bisInspAllRlationPers.setMobilenumb(mobile);
- bisInspAllRlationPers.setOwnerSystem("DC_ALL");
- bisInspAllRlationPers.setPersType("1");
- bisInspAllRlationPers.setOrgId("055");
- bisInspAllRlationPers.setOrgNm("海南省");
- addPreOrg(bisInspAllRlationPers);
- //添加本地用户信息
- bisInspAllRlationPersService.insert(bisInspAllRlationPers);
- // 人员角色表添加数据
- UserRole userRole = new UserRole();
- userRole.setUserId(uuid);
- userRole.setRoleId("069758ff593241a493399cb87cff39e4");
- // userRole.setRoleId("074cc33485644b74a10f6e3cf6e7aeaf");
- UserRoleParam userRoleParam = new UserRoleParam();
- userRoleParam.setRoleId(userRole.getRoleId());
- userRoleParam.setUserId(userRole.getUserId());
- if (null == userRoleService.getBy(userRoleParam)) {
- userRoleService.insert(userRole);
- }
- //人员机构对应表添加数据
- BisInspPersOrg inspPersOrg = new BisInspPersOrg();
- inspPersOrg.setOrgId(bisInspAllRlationPers.getOrgId());
- inspPersOrg.setPersId(bisInspAllRlationPers.getGuid());
- if (StringUtils.isNotBlank(bisInspAllRlationPers.getPersType())) {
- inspPersOrg.setUserType(bisInspAllRlationPers.getPersType());
- } else {
- inspPersOrg.setUserType(AdCodeLabel.GROUP_LEADER);
- }
- BisInspPersOrgParam bisInspPersOrgParam = new BisInspPersOrgParam();
- bisInspPersOrgParam.setPersId(inspPersOrg.getPersId());
- bisInspPersOrgParam.setOrgId(inspPersOrg.getOrgId());
- if (null == persOrgService.getBy(bisInspPersOrgParam)) {
- persOrgService.insert(inspPersOrg);
- }
- return bisInspAllRlationPers;
- }
- /**
- * @Description 本地用户行政区划分配
- **/
- private void addPreOrg(BisInspAllRlationPers bisInspAllRlationPers) {
- if (StringUtils.isNotBlank(bisInspAllRlationPers.getOrgId())) {
- OlBisInspOrg olBisInspOrg = olBisInspOrgService.get(bisInspAllRlationPers.getOrgId());
- if (olBisInspOrg != null) {
- bisInspAllRlationPers.setOrgNm(olBisInspOrg.getOrgNm());
- bisInspAllRlationPers.setProvince(olBisInspOrg.getAdCode());
- }
- BisInspPersOrg inspPersOrg = new BisInspPersOrg();
- inspPersOrg.setOrgId(bisInspAllRlationPers.getOrgId());
- inspPersOrg.setPersId(bisInspAllRlationPers.getGuid());
- if (StringUtils.isNotBlank(bisInspAllRlationPers.getPersType())) {
- inspPersOrg.setUserType(bisInspAllRlationPers.getPersType());
- } else {
- inspPersOrg.setUserType(AdCodeLabel.GROUP_LEADER);
- }
- BisInspPersOrgParam bisInspPersOrgParam = new BisInspPersOrgParam();
- bisInspPersOrgParam.setPersId(inspPersOrg.getPersId());
- bisInspPersOrgParam.setOrgId(inspPersOrg.getOrgId());
- if (null == persOrgService.getBy(bisInspPersOrgParam)) {
- persOrgService.insert(inspPersOrg);
- }
- }
- }
- }
|