From f2530067b6cd16a87b76190cf524d2ed75bf9592 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 11 十月 2025 14:26:54 +0800 Subject: [PATCH] 集成中台及正联功能 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java | 165 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 136 insertions(+), 29 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java index ff7214b..694f093 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.heredata.hos.model.bucket.Bucket; import com.stylefeng.guns.config.properties.GunsProperties; import com.stylefeng.guns.core.base.controller.BaseController; +import com.stylefeng.guns.core.base.tips.ErrorTip; import com.stylefeng.guns.core.base.tips.Tip; +import com.stylefeng.guns.core.beetl.ShiroExtUtil; import com.stylefeng.guns.core.common.annotion.BussinessLog; import com.stylefeng.guns.core.common.annotion.Permission; import com.stylefeng.guns.core.common.constant.Const; @@ -19,21 +22,24 @@ import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.shiro.ShiroUser; -import com.stylefeng.guns.core.util.ObsUploadUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.system.controller.util.UUIDUtil; import com.stylefeng.guns.modular.system.dao.UserMapper; import com.stylefeng.guns.modular.system.factory.UserFactory; import com.stylefeng.guns.modular.system.model.TAgent; import com.stylefeng.guns.modular.system.model.TBranchOffice; -import com.stylefeng.guns.modular.system.model.TCompany; import com.stylefeng.guns.modular.system.model.User; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.transfer.UserDto; -import com.stylefeng.guns.modular.system.util.OssUploadUtil; -import com.stylefeng.guns.modular.system.util.huawei.OBSUtil; -import org.apache.poi.ss.formula.functions.T; +import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig; +import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -46,7 +52,6 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.io.File; -import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; @@ -74,6 +79,12 @@ private ITAgentService agentService; @Autowired private ITBranchOfficeService branchOfficeService; + + @Autowired + private QianYunTongConfig qianYunTongConfig; + + @Autowired + private ShiroExtUtil shiroExtUtil; /** @@ -131,7 +142,7 @@ */ @RequestMapping("/user_info") public String userInfo(Model model) { - Integer userId = ShiroKit.getUser().getId(); + Integer userId = shiroExtUtil.getUser().getId(); if (ToolUtil.isEmpty(userId)) { throw new GunsException(BizExceptionEnum.REQUEST_NULL); } @@ -160,7 +171,7 @@ if (!newPwd.equals(rePwd)) { throw new GunsException(BizExceptionEnum.TWO_PWD_NOT_MATCH); } - Integer userId = ShiroKit.getUser().getId(); + Integer userId = shiroExtUtil.getUser().getId(); User user = userService.selectById(userId); String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt()); if (user.getPassword().equals(oldMd5)) { @@ -194,8 +205,8 @@ page.setRecords(userService.getUserListPage(page,null, name, beginTime, endTime, deptid)); return super.packForBT(page); } else { - Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); - Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); + Integer objectId = Objects.requireNonNull(shiroExtUtil.getUser()).getObjectId(); + Integer roleType = Objects.requireNonNull(shiroExtUtil.getUser()).getRoleType(); if(roleType == 3){ // 查询下级分公司账号 @@ -237,12 +248,44 @@ if (result.hasErrors()) { throw new GunsException(BizExceptionEnum.REQUEST_NULL); } - // 判断账号是否重复 User theUser = userService.getByAccount(user.getAccount()); if (theUser != null) { throw new GunsException(BizExceptionEnum.USER_ALREADY_REG); } + + ShiroUser user1 = shiroExtUtil.getUser(); + User user2 = userService.selectById(user1.getId()); + TBranchOffice tBranchOffice = branchOfficeService.selectById(user2.getObjectId()); + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(user.getPhone(), tBranchOffice.getEnterCode()); + Long empId = null; + Integer empnew = null; + if(null == userInfoByPhone || userInfoByPhone.size() == 0){ + SaveStaffNodeRequest request1 = new SaveStaffNodeRequest(); + request1.setMobile(user2.getPhone()); + request1.setEntercode(tBranchOffice.getEnterCode()); + request1.setEmpName(user.getName()); + request1.setEmpNickname(user.getName()); + request1.setLoginNo(user.getAccount()); + request1.setEmpSex(user.getSex() == 1 ? "男" : "女"); + request1.setMphone(user.getPhone()); + request1.setEmail(user.getPhone() + "@qyt.com"); + request1.setDeptId(0); + request1.setPositionId(1); + request1.setSuperLevel(0); + request1.setHideMobile(0); + ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request1); + if(200 != resultUtil.getStatus()){ + return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg()); + } + SaveStaffNode saveStaffNode = resultUtil.getData(); + empId = saveStaffNode.getEmpId(); + empnew = 1; + }else{ + empId = userInfoByPhone.get(0).getEmpId(); + empnew = 0; + } + // 完善账号信息 user.setSalt(ShiroKit.getRandomSalt(5)); @@ -251,10 +294,13 @@ user.setCreatetime(new Date()); User objectUser = UserFactory.createUser(user); - ShiroUser user1 = ShiroKit.getUser(); objectUser.setRoleType(user1.getRoleType()); objectUser.setObjectId(user1.getObjectId()); objectUser.setPassWordUpdate(new Date()); + objectUser.setEnterId(empId); + objectUser.setEmpnew(empnew); + objectUser.setEntercode(tBranchOffice.getEnterCode()); + objectUser.setEnterId(Long.valueOf(tBranchOffice.getEnterCode())); this.userService.insert(objectUser); return SUCCESS_TIP; @@ -273,15 +319,49 @@ throw new GunsException(BizExceptionEnum.REQUEST_NULL); } - User oldUser = userService.selectById(user.getId()); - + ShiroUser user1 = shiroExtUtil.getUser(); + User user2 = userService.selectById(user1.getId()); + TBranchOffice tBranchOffice = branchOfficeService.selectById(user2.getObjectId()); + //调用中台接口 + Long empId = null; + Integer empnew = null; + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(oldUser.getPhone(), tBranchOffice.getEnterCode()); + if(null == userInfoByPhone || userInfoByPhone.size() == 0){ + SaveStaffNodeRequest request1 = new SaveStaffNodeRequest(); + request1.setMobile(user2.getPhone()); + request1.setEntercode(tBranchOffice.getEnterCode()); + request1.setEmpName(user.getName()); + request1.setEmpNickname(user.getName()); + request1.setLoginNo(user.getAccount()); + request1.setEmpSex(user.getSex() == 1 ? "男" : "女"); + request1.setMphone(user.getPhone()); + request1.setEmail(user.getPhone() + "@qyt.com"); + request1.setDeptId(0); + request1.setPositionId(1); + request1.setSuperLevel(0); + request1.setHideMobile(0); + ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request1); + if(200 != resultUtil.getStatus()){ + return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg()); + } + SaveStaffNode saveStaffNode = resultUtil.getData(); + empId = saveStaffNode.getEmpId(); + empnew = 1; + }else{ + empId = userInfoByPhone.get(0).getEmpId(); + empnew = 0; + } + oldUser.setEmpId(empId); + oldUser.setEntercode(tBranchOffice.getEnterCode()); + oldUser.setEnterId(Long.valueOf(tBranchOffice.getEnterCode())); + oldUser.setEmpnew(empnew); if (ShiroKit.hasRole(Const.ADMIN_NAME)) { this.userService.updateById(UserFactory.editUser(user, oldUser)); return SUCCESS_TIP; } else { assertAuth(user.getId()); - ShiroUser shiroUser = ShiroKit.getUser(); + ShiroUser shiroUser = shiroExtUtil.getUser(); if (shiroUser.getId().equals(user.getId())) { this.userService.updateById(UserFactory.editUser(user, oldUser)); return SUCCESS_TIP; @@ -306,7 +386,24 @@ if (userId.equals(Const.ADMIN_ID)) { throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN); } - + User user = userService.selectById(userId); + ShiroUser user1 = shiroExtUtil.getUser(); + User user2 = userService.selectById(user1.getId()); + TBranchOffice tBranchOffice = branchOfficeService.selectById(user2.getObjectId()); + //调用中台接口 + if(1 == user.getEmpnew()){ + List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(user.getPhone(), tBranchOffice.getEnterCode()); + if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == user.getEmpnew()) { + DeleteStafNodeRequest request1 = new DeleteStafNodeRequest(); + request1.setEmpId(user.getEnterId()); + request1.setMobile(tBranchOffice.getPrincipalPhone()); + request1.setEntercode(tBranchOffice.getEnterCode()); + ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(request1); + if(200 != resultUtil.getStatus()){ + return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg()); + } + } + } assertAuth(userId); this.userService.setStatus(userId, ManagerStatus.DELETED.getCode()); @@ -423,21 +520,31 @@ @RequestMapping("/saveApk") public String saveApk(@RequestPart("myfile") MultipartFile file, HttpServletRequest request){ Map<String, Object> m = new HashMap<>(); + QianYunTongConfig qianYunTongConfig1 = qianYunTongConfig.getQianYunTongConfig(); try { String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(file.getOriginalFilename()); - try { - String fileSavePath = gunsProperties.getFileUploadPath()+"apk\\"; - InputStream inputStream = file.getInputStream(); - String name1 = file.getOriginalFilename(); - name1 = UUIDUtil.getRandomCode() + name1.substring(name1.lastIndexOf(".")); - String s = OBSUtil.putObjectToBucket(inputStream, name1); -// String s = OssUploadUtil.ossUpload(request, file); - // file.transferTo(new File(fileSavePath + pictureName)); - return s; - } catch (Exception e) { - e.printStackTrace(); + String bucketName = qianYunTongConfig1.getBucketName(); + Bucket grjyTest = NCOSSUtil.getBucketInfo(bucketName); + if (null == grjyTest) { + //创建桶 + Boolean bucket = NCOSSUtil.createBucket(bucketName); + if (!bucket) { + throw new RuntimeException("创建存储桶失败"); + } + //设置桶策略 + String policyText = "{\"Version\":\"2025-06-23\",\"Statement\":[{\"Sid\":\"Stmt20250623\",\"Action\":[\"GetObject\"],\"Effect\":\"Allow\",\"Resource\":\"" + bucketName + "/*\",\"Principal\":\"*\"}]}"; + Boolean bucketPolicy = NCOSSUtil.setBucketPolicy(bucketName, policyText); + if (!bucketPolicy) { + throw new RuntimeException("设置桶策略失败"); + } } - m.put("imgUrl", gunsProperties.getFileUploadPath()+"apk/"+pictureName); + //上传对象 + String key = "apk/" + pictureName; + String object = NCOSSUtil.putObject(bucketName, key, file.getInputStream()); + if (null == object) { + throw new RuntimeException("上传图片失败"); + } + m.put("imgUrl", "https://traffic.qytzt.cn/v1/AUTH_" + qianYunTongConfig1.getAccount() + "/" + bucketName + "/" + key); } catch (Exception e) { e.printStackTrace(); } -- Gitblit v1.7.1