package cn.huge.module.grid.service; import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.AesUtils; import cn.huge.base.common.utils.HttpClientUtils; import cn.huge.base.common.utils.SpringContextUtil; import cn.huge.module.grid.domain.dto.GridSysRoleDTO; import cn.huge.module.grid.domain.vo.*; import cn.huge.module.sys.dto.GridRoleMenuDTO; import cn.huge.module.sys.dto.GridUserRoleDTO; import cn.huge.module.sys.vo.GridOrgUsersVo; import cn.huge.module.sys.vo.GridRoleMenuVo; import cn.huge.module.sys.vo.GridUserRoleVo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import java.io.UnsupportedEncodingException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.*; @Slf4j @Service public class GridUserService { @Value("${grid.url:http://219.137.166.84:8061}") private String gridUrl; @Value("${grid.username:mtxt0011}") private String userName; @Value("${grid.password:aek8CdcaM}") private String passWord; @Value("${grid.secret:BZb2hLCx05}") private String secret; @Value("${grid.passid:b08c0ec0-772d-caf8-5c9b-1f7d86295a95}") private String passid; private String testUrl = "http://183.2.142.21:9007"; public R getUserInfo(GridTokenVo gridTokenVo) { String s = null; HashMap headVo = initHeadVo(); try { // 开发环境 if (SpringContextUtil.checkDev()) { log.info("xsdurl:{},{}", testUrl + "/sys/getUserByToken", headVo); s = HttpClientUtils.httpPostRaw(testUrl + "/sys/getUserByToken", gridTokenVo.getToken(), headVo, "utf-8"); } else { log.info("xsdurl:{},{}", gridUrl + "/sys/getUserByToken", JSON.toJSONString(gridTokenVo)); s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/getUserByToken", JSON.toJSONString(gridTokenVo), headVo, "utf-8"); } log.info("xsd:{}", s); } catch (Exception e) { log.info("xsderror:{}", e.getLocalizedMessage()); throw new RuntimeException(e); } GridUserVo gridUserVo = JSONObject.parseObject(s).getObject("data", GridUserVo.class); try { gridUserVo.setName(AesUtils.decrypt(gridUserVo.getName(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); gridUserVo.setMobile(AesUtils.decrypt(gridUserVo.getMobile(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); gridUserVo.setIdNumber(AesUtils.decrypt(gridUserVo.getIdNumber(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); } catch (NoSuchPaddingException e) { throw new RuntimeException(e); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } catch (InvalidAlgorithmParameterException e) { throw new RuntimeException(e); } catch (InvalidKeyException e) { throw new RuntimeException(e); } catch (DecoderException e) { throw new RuntimeException(e); } catch (IllegalBlockSizeException e) { throw new RuntimeException(e); } catch (BadPaddingException e) { throw new RuntimeException(e); } return R.ok(gridUserVo); } public R> getUserRoleList(GridUserRoleVo gridUserRoleVo) { String s = null; HashMap headVo = initHeadVo(); try { // log.info("xsdobject:{}",JSON.toJSONString(requestVo)); log.info("xsdurl:{}", gridUrl + "/sys/getOrgRole"); // log.info("xsdurl:{}",testUrl + "/sys/getUserByToken"); s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/getOrgRole", JSON.toJSONString(gridUserRoleVo), headVo, "utf-8"); log.info("xsd:{}", s); } catch (Exception e) { log.info("xsderror:{}", e.getLocalizedMessage()); throw new RuntimeException(e); } JSONArray data = JSONObject.parseObject(s).getJSONArray("data"); List gridUserRoleDTOList = data.toJavaList(GridUserRoleDTO.class); return R.ok(gridUserRoleDTOList); } public HashMap initHeadVo() { long timestamp = System.currentTimeMillis() / 1000; HashMap headVo = new HashMap<>(); headVo.put("x-rio-paasid", passid); headVo.put("x-rio-timestamp", timestamp + ""); headVo.put("x-rio-nonce", "mt"); headVo.put("x-rio-signature", DigestUtils.sha256Hex(timestamp + secret + "mt" + timestamp)); return headVo; } public R getSysRoleList(GridOrgVo gridOrgVo) { HashMap headVo = initHeadVo(); log.info("xsd:{}", JSON.toJSONString(gridOrgVo)); log.info("xsd:{}", gridUrl + "/sys/getRoleList"); String s = null; try { s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/getRoleList", JSON.toJSONString(gridOrgVo), headVo, "utf-8"); } catch (Exception e) { log.info("xsderror:{}", e); throw new RuntimeException(e); } log.info("xsd:{}", s); JSONObject object = JSONObject.parseObject(s); if (object.getInteger("code") != null && object.getInteger("code") == 0) { GridSysRoleDTO data = object.getObject("data", GridSysRoleDTO.class); return R.ok(data); } else { return R.fail("获取企业信息失败"); } } public R> getRoleMenu(GridRoleMenuVo gridRoleMenuVo) { String s = null; HashMap headVo = initHeadVo(); try { // log.info("xsdobject:{}",JSON.toJSONString(requestVo)); log.info("xsdurl:{}", gridUrl + "/sys/getUserMenuRecur"); // log.info("xsdurl:{}",testUrl + "/sys/getUserByToken"); s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/getUserMenuRecur", JSON.toJSONString(gridRoleMenuVo), headVo, "utf-8"); log.info("xsd:{}", s); } catch (Exception e) { log.info("xsderror:{}", e.getLocalizedMessage()); throw new RuntimeException(e); } JSONArray data = JSONObject.parseObject(s).getJSONArray("data"); List gridRoleMenuDTOList = data.toJavaList(GridRoleMenuDTO.class); return R.ok(gridRoleMenuDTOList); } public R initNewUsers(GridUserRoleVo gridUserRoleVo) { //根据用户id获取用户信息 //拿到用户机构信息 //拿到用户角色菜单权限信息 //如果全部菜单权限,分配管理员角色;如果部分菜单权限,分配纠纷化解员角色 //初始化完成用户信息,返回给前端登录 return R.fail(); } public R> getUserListByOrg(GridOrgUsersVo gridOrgUsersVo) { String s = null; HashMap headVo = initHeadVo(); List roleIds = new ArrayList<>(); roleIds.add("43fc22e6-7276-11ef-a6d1-005056820c5f"); roleIds.add("442be8dd-7276-11ef-a6d1-005056820c5f"); roleIds.add("679b1846-71c5-11ef-a6d1-005056820c5f"); roleIds.add("67affc74-71c5-11ef-a6d1-005056820c5f"); gridOrgUsersVo.setRoleIds(roleIds); try { // log.info("xsdobject:{}",JSON.toJSONString(requestVo)); // 开发环境 if (SpringContextUtil.checkDev()) { log.info("xsdurl:{}", testUrl + "/api/thrid/grid/user/get-org-users" + JSON.toJSONString(gridOrgUsersVo)); s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/user/get-org-users", JSON.toJSONString(gridOrgUsersVo), headVo, "utf-8"); } else { log.info("xsdurl:{}", gridUrl + "/sys/user/getUserListByOrg"); s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/user/getUserListByOrg", JSON.toJSONString(gridOrgUsersVo), headVo, "utf-8"); } log.info("xsd:{}", s); } catch (Exception e) { log.info("xsderror:{}", e.getLocalizedMessage()); throw new RuntimeException(e); } JSONArray data = JSONObject.parseObject(s).getJSONArray("data"); List gridUserVos = data.toJavaList(GridUserVo.class); return R.ok(gridUserVos); } public R getUserByIdNumber(GridUserIdNumberVo gridUserIdNumberVo) { String s = null; HashMap headVo = initHeadVo(); try { gridUserIdNumberVo.setIdNumber(AesUtils.encrypt(gridUserIdNumberVo.getIdNumber(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); // log.info("xsdobject:{}",JSON.toJSONString(requestVo)); // 开发环境 if (SpringContextUtil.checkDev()) { log.info("xsdurl:{}", testUrl + "/api/thrid/grid/user/get-user-idNumber" + JSON.toJSONString(gridUserIdNumberVo)); s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/user/get-user-idNumber", JSON.toJSONString(gridUserIdNumberVo), headVo, "utf-8"); } else { log.info("xsdurl:{}", gridUrl + "/sys/user/getUserByIdNumber"); s = HttpClientUtils.httpPostRaw(gridUrl + "/sys/user/getUserByIdNumber", JSON.toJSONString(gridUserIdNumberVo), headVo, "utf-8"); } log.info("xsd身份证获取:{}", s); } catch (Exception e) { log.info("xsderror:{}", e.getLocalizedMessage()); return R.fail(e.getLocalizedMessage()); } JSONObject object = JSONObject.parseObject(s); if (object != null) { if (object.getInteger("code") != null && object.getInteger("code") == 0) { JSONObject data = JSONObject.parseObject(s).getJSONObject("data"); if (data != null) { GridUserVo gridUserVo = data.toJavaObject(GridUserVo.class); return R.ok(gridUserVo); } else { return R.fail("身份证获取失败"); } } else { return R.fail("身份证获取失败"); } } else { return R.fail("身份证获取失败"); } } }