From d2048c247c446be08598abf8e1bc11a4ea77be32 Mon Sep 17 00:00:00 2001 From: luqingyang <lqy5492@163.com> Date: 星期三, 25 十月 2023 16:41:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java | 878 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 878 insertions(+), 0 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java new file mode 100644 index 0000000..a3f305f --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java @@ -0,0 +1,878 @@ +package com.consum.base.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.exception.ExcelDataConvertException; +import com.consum.base.BaseController; +import com.consum.base.pojo.FinSysTenantUserSearchParam; +import com.consum.base.pojo.FinSysTenantUserUpdParam; +import com.consum.base.service.FinSysTenantServiceImpl; +import com.consum.base.service.FinSysTenantUserServiceImpl; +import com.consum.model.po.FinSysTenant; +import com.consum.model.po.FinSysTenantUser; +import com.iplatform.base.ArgumentsConstants; +import com.iplatform.base.service.DeptServiceImpl; +import com.iplatform.base.service.RoleServiceImpl; +import com.iplatform.base.service.UserServiceImpl; +import com.iplatform.base.util.PlatformRSAUtils; +import com.iplatform.core.util.AESUtils; +import com.iplatform.model.po.S_config; +import com.iplatform.model.po.S_dept; +import com.iplatform.model.po.S_role; +import com.iplatform.model.po.S_user_core; +import com.walker.db.page.GenericPager; +import com.walker.infrastructure.utils.*; +import com.walker.web.ResponseValue; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.*; + +/** + * @Description 绯荤粺鐢ㄦ埛 + * @Author wh + * @Date 2023/7/17 14:16 + */ +@RestController +@RequestMapping("/pc/fin/sys/tenant/user") +public class FinSysTenantUserController extends BaseController { + + private String roleName; + + private FinSysTenantUserServiceImpl finSysTenantUserService; + + private UserServiceImpl userService; + + private DeptServiceImpl deptService; + + private FinSysTenantServiceImpl finSysTenantService; + + private RoleServiceImpl roleService; + + + @Autowired + public void setUserService(UserServiceImpl userService) { + this.userService = userService; + } + + private S_config sConfig; + + @Autowired + public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService, FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) { + this.finSysTenantUserService = finSysTenantUserService; + this.finSysTenantService = finSysTenantService; + this.roleService = roleService; + } + + /** + * @Description 鍒嗛〉鍒楄〃鏌ヨ + * @Author wh + * @Date 2023/7/11 13:59 + */ + @RequestMapping("/select/list") + public ResponseValue allocatedList(FinSysTenantUserSearchParam param) { + if (param.getTenantCode() == 0) { + FinSysTenantUser user = new FinSysTenantUser(); + Long id = this.getCurrentUser().getId(); + user.setSysUserId(id); + List<FinSysTenantUser> select = finSysTenantUserService.select(user); + if (select.size() > 0) { + param.setTenantCode(new Long(select.get(0).getTenantCode())); + } + } + GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param); + + List<FinSysTenantUser> datas = pager.getDatas(); + if (datas.size() > 0) { + for (FinSysTenantUser finSysTenantUser : datas) { + if (finSysTenantUser.getUserPhone() != null) { + // 瑙e瘑骞惰劚鏁� + String tel = null; + try { + tel = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY); + } catch (Exception e) { + logger.error("瑙e瘑鎵嬫満鍙峰け璐ワ紝鍘熷洜锛�" + e); + tel = null; + } + if (StringUtils.isNotEmpty(tel)) { + finSysTenantUser.setUserPhone(PhoneNumberUtils.maskMobile(tel)); + } else { + finSysTenantUser.setUserPhone(""); + } + } else { + finSysTenantUser.setUserPhone(""); + } + + // 寰幆鍘绘煡瑙掕壊 + Long sysUserId = finSysTenantUser.getSysUserId(); + if (sysUserId != null) { + List<S_role> list = finSysTenantUserService.getByUserId(sysUserId); + String roleStr = ""; + for (S_role s_role : list) { + roleStr = roleStr + s_role.getRole_name() + " "; + } + finSysTenantUser.setRoleStr(roleStr); + } + + //寰幆鏌ヨ杩愮淮鍟唅d + if (finSysTenantUser.getSupplierId() != null) { + finSysTenantUser.setIsSupplier("鏄�"); + } else { + finSysTenantUser.setIsSupplier("鍚�"); + } + } + } + return ResponseValue.success(pager); + } + + + /** + * @Description 鏂板 + * @Author wh + * @Date 2023/7/17 15:56 + */ + @PostMapping("/add") + @Transactional(rollbackFor = Exception.class) + public ResponseValue add(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず + if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) { + return ResponseValue.error("鍛樺伐缂栧彿閲嶅"); + } + if (user.getTenantId() == null || "".equals(user.getTenantId()) || new Integer(user.getTenantId()) == 0) { + return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙"); + } + if (user.getTenantCode() == null || "".equals(user.getTenantCode()) || new Integer(user.getTenantCode()) == 0) { + return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙"); + } + //鎻掑叆绯荤粺鐢ㄦ埛 + user.setId(NumberGenerator.getLongSequenceNumber()); + user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setCreateBy(this.getCurrentUser().getUser_name()); + user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setUpdateBy(this.getCurrentUser().getUser_name()); + //user.setStatus(1);// 0绂佺敤 1鍚敤 + user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚� + user.setSysUserId(NumberGenerator.getLongSequenceNumber()); + // 鍔犲瘑鎵嬫満鍙� + String key = PlatformRSAUtils.AES_KEY; + String pwdPhone = ""; + if (user.getUserPhone() != null) { + pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key); + } + user.setUserPhone(pwdPhone); + user.setIsDelete(1); + //鎬庝箞鑾峰彇宸︿晶鏈烘瀯鏍戞暟鎹� + user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id 榛樿涓哄钩鍙扮鐞� + this.finSysTenantUserService.insert(user); + // 鎻掑叆骞冲彴鐢ㄦ埛 + S_user_core userCore = new S_user_core(); + userCore.setId(user.getSysUserId()); + userCore.setDept_id(3L); //閮ㄩ棬id锛岀洰鍓嶅啓姝� + userCore.setOrg_id(user.getSysDeptId()); //鏈烘瀯id + userCore.setOrg_id(1L); + userCore.setUser_name(user.getUserCode()); //鐢ㄦ埛璐﹀彿 + userCore.setNick_name(user.getUserName()); + //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2 + userCore.setUser_type(2); + userCore.setPhonenumber(pwdPhone); + userCore.setSex(user.getSex().toString()); + //鍒濆鍖栧瘑鐮� 123456 + String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); + userCore.setPassword(pws); + // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙� + if (user.getStatus() == 0) { + user.setStatus(1); + } else { + user.setStatus(0); + } + userCore.setStatus(user.getStatus()); + userCore.setDel_flag(0); + userCore.setCreate_by(this.getCurrentUser().getUser_name()); + userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + userCore.setRemark(user.getRemark()); + userCore.setType(1); + userCore.setBind_client_id("0"); + userCore.setBind_wechat(0); + userCore.setModify_pwd(0); + userCore.setBind_mobile(0); + userCore.setBind_mail(0); + userCore.setProfile_id(0L); + userCore.setIs_wechat_public(0); + userCore.setIs_wechat_routine(0); + userCore.setIs_wechat_ios(0); + userCore.setIs_wechat_android(0); + userCore.setIs_logoff(0); + userCore.setLogoff_time(0L); + userCore.setIs_sms(0); + //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛� + userCore.setType(1); + //鍟嗘埛id锛�0-骞冲彴 + userCore.setMer_id(0L); + this.userService.insert(userCore); + // 鎻掑叆骞冲彴鏈烘瀯 + //灏戣鑹瞚d + List<Long> roleList = user.getRoleList(); //鏈烘瀯id 澶氫釜 + if (!CollectionUtils.isEmpty(roleList)) { + Long sysUserId = user.getSysUserId(); //鐢ㄦ埛id + this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId); + } +// this.getFinCustomerCache().remove(); + return ResponseValue.success(1); + } + + + + public static class ImportUserParam{ + @ExcelProperty("鐢ㄦ埛濮撳悕") + private String userName; + @ExcelProperty("鐢ㄦ埛缂栧彿") + private String userCode; + @ExcelProperty("鎵嬫満鍙�") + private String userPhone; + @ExcelProperty("鎬у埆(1鐢凤紝2濂�)") + private Integer sex; + @ExcelProperty("鐢靛瓙閭") + private String email; + @ExcelProperty("椤哄簭鍙�") + private Long seq; + @ExcelProperty("瑙掕壊鍚嶇О") + private String roleName; + + public String getUserName() { + return userName; + } + public void setUserName(String userName) { + this.userName = userName; + } + public String getUserCode() { + return userCode; + } + public void setUserCode(String userCode) { + this.userCode = userCode; + } + public String getUserPhone() { + return userPhone; + } + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } + public Integer getSex() { + return sex; + } + public void setSex(Integer sex) { + this.sex = sex; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public Long getSeq() { + return seq; + } + public void setSeq(Long seq) { + this.seq = seq; + } + public String getRoleName() { + return roleName; + } + public void setRoleName(String roleName) { + this.roleName = roleName; + } + } + + /** + * @Description 鎵归噺瀵煎叆鐢ㄦ埛 + * @Author jlq + * @Date 2023/10/12 15:56 + */ + @PostMapping("/import") + public ResponseValue importUser(@RequestParam String tenantId,@RequestParam String tenantCode,MultipartFile file) throws IOException { + String originalFilename = file.getOriginalFilename(); + if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))){ + return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); + } + S_user_core currentUser = this.getCurrentUser(); + if (currentUser==null){ + return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖"); + } + + if (StringUtils.isEmpty(tenantId)||StringUtils.isEmpty(tenantCode)){ + return ResponseValue.error("娣诲姞鏃惰閫夋嫨鍖哄幙"); + } + + List<S_role> roles = this.roleService.select(new S_role()); + ArrayList<FinSysTenantUser> finSysTenantUsers = new ArrayList<>(); + + EasyExcel.read(file.getInputStream(), ImportUserParam.class, new AnalysisEventListener<ImportUserParam>(){ + @Override + public void invoke(ImportUserParam data, AnalysisContext context) { + if (StringUtils.isEmpty(data.getUserName()) || StringUtils.isEmpty(data.getUserCode()) || StringUtils.isEmpty(data.getUserPhone()) || null==data.getSex() + || StringUtils.isEmpty(data.getEmail()) || null==data.getSeq() || StringUtils.isEmpty(data.getRoleName())){ + throw new ImportUserParamVerifyException("鍗曞厓鏍间笉鑳戒负绌�!"); + } + //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず + if ( finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) { + throw new ImportUserParamVerifyException("鍛樺伐缂栧彿涓虹┖鎴栧凡瀛樺湪!"); + } + if (data.getSex()<1&&data.getSex()>0){ + throw new ImportUserParamVerifyException("鎬у埆鐮佸彧鑳戒负 0 鎴� 1"); + } + FinSysTenantUser user = new FinSysTenantUser(); + user.setUserName(data.getUserName()); + user.setUserCode(data.getUserCode()); + user.setUserPhone(data.getUserPhone()); + user.setSex(data.getSex()); + user.setEmail(data.getEmail()); + user.setSeq(data.getSeq()); + user.setTenantId(tenantId); + user.setTenantCode(tenantCode); + //璁剧疆瑙掕壊 + Optional<S_role> sRole = roles.stream().filter(role -> role.getRole_name().equals(data.getRoleName())).findFirst(); + user.setRoleList(Arrays.asList(sRole.orElse(new S_role()).getRole_id())); + + user.setId(NumberGenerator.getLongSequenceNumber()); + user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setCreateBy(currentUser.getUser_name()); + user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setUpdateBy(currentUser.getUser_name()); + user.setStatus(1);// 0绂佺敤 1鍚敤 + user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚� + user.setSysUserId(NumberGenerator.getLongSequenceNumber()); + user.setRemark("鎵归噺瀵煎叆"); + // 鍔犲瘑鎵嬫満鍙� + String key = PlatformRSAUtils.AES_KEY; + String pwdPhone = AESUtils.encryptStrAES(data.getUserPhone(), key); + user.setUserPhone(pwdPhone); + + user.setIsDelete(1); + //鎬庝箞鑾峰彇宸︿晶鏈烘瀯鏍戞暟鎹� + user.setSysDeptId(3L); //瀵瑰簲骞冲彴鏈烘瀯id 榛樿涓哄钩鍙扮鐞� + finSysTenantUsers.add(user); + } + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + + } + @Override + public void onException(Exception exception, AnalysisContext context) throws Exception { + if (exception!=null){ + // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 灏佽鏃跺紓甯� + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; + logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}",excelDataConvertException.getRowIndex(), + excelDataConvertException.getColumnIndex()+1, excelDataConvertException.getCellData().getStringValue()); + throw new IllegalStateException("绗�"+(excelDataConvertException.getRowIndex()+1)+"琛岋紝绗�"+(excelDataConvertException.getColumnIndex()+1)+"鍒楄В鏋愬紓甯革紝寮傚父鏁版嵁涓�:[ "+excelDataConvertException.getCellData().getStringValue()+" ]"); + } + if (exception instanceof ImportUserParamVerifyException){ + throw new IllegalStateException("绗�"+context.readSheetHolder().getRowIndex()+"琛�, 瑙f瀽閿欒:[ "+ exception.getMessage()+" ]"); + } + throw exception; + } + } + }).sheet().doRead(); + + insertUserAndUserCoreBatch(finSysTenantUsers); + + return ResponseValue.success(); + } + + /** + * 鎵归噺鎻掑叆鐢ㄦ埛琛ㄥ拰骞冲彴鐢ㄦ埛琛� + */ + @Transactional(rollbackFor = Exception.class) + public void insertUserAndUserCoreBatch(List<FinSysTenantUser> finSysTenantUsers){ + ArrayList<S_user_core> sUserCores = new ArrayList<>(); + for (FinSysTenantUser user : finSysTenantUsers) { + // 鎻掑叆骞冲彴鐢ㄦ埛 + S_user_core userCore = new S_user_core(); + userCore.setId(user.getSysUserId()); + userCore.setDept_id(3L); //閮ㄩ棬id锛岀洰鍓嶅啓姝� + userCore.setOrg_id(user.getSysDeptId()); //鏈烘瀯id + userCore.setOrg_id(1L); + userCore.setUser_name(user.getUserCode()); //鐢ㄦ埛璐﹀彿 + userCore.setNick_name(user.getUserName()); + //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2 + userCore.setUser_type(2); + userCore.setPhonenumber(user.getUserPhone()); + userCore.setSex(user.getSex().toString()); + //鍒濆鍖栧瘑鐮� 123456 + String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); + userCore.setPassword(pws); + // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙� + if (user.getStatus() == 0) { + user.setStatus(1); + } else { + user.setStatus(0); + } + userCore.setStatus(user.getStatus()); + userCore.setDel_flag(0); + userCore.setCreate_by(this.getCurrentUser().getUser_name()); + userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + userCore.setRemark(user.getRemark()); + userCore.setType(1); + userCore.setBind_client_id("0"); + userCore.setBind_wechat(0); + userCore.setModify_pwd(0); + userCore.setBind_mobile(0); + userCore.setBind_mail(0); + userCore.setProfile_id(0L); + userCore.setIs_wechat_public(0); + userCore.setIs_wechat_routine(0); + userCore.setIs_wechat_ios(0); + userCore.setIs_wechat_android(0); + userCore.setIs_logoff(0); + userCore.setLogoff_time(0L); + userCore.setIs_sms(0); + //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛� + userCore.setType(1); + //鍟嗘埛id锛�0-骞冲彴 + userCore.setMer_id(0L); + sUserCores.add(userCore); + } + //淇濆瓨鐢ㄦ埛淇℃伅 + this.finSysTenantUserService.insertBatch(finSysTenantUsers); + //淇濆瓨骞冲彴鐢ㄦ埛淇℃伅 + this.userService.insertBatch(sUserCores); + //淇濆瓨瑙掕壊鏉冮檺淇℃伅 + this.finSysTenantUserService.execInsertRoleUserList(finSysTenantUsers); + } + + public static class ImportUserParamVerifyException extends RuntimeException{ + public ImportUserParamVerifyException(){super();} + public ImportUserParamVerifyException(String message){super(message);} + } + + + /** + * @Description 缂栬緫 + * @Author wh + * @Date 2023/7/17 14:33 + */ + @PostMapping("/update") + @Transactional(rollbackFor = Exception.class) + public ResponseValue update(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + String key = PlatformRSAUtils.AES_KEY; + String pwdPhone = ""; + if (user.getUserPhone() != null) { + pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key); + } + user.setUserPhone(pwdPhone); + // 1.鏇存柊绯荤粺鐢ㄦ埛 FIN_SYS_TENANT_USER + finSysTenantUserService.update(user); + // 2.鏇存柊骞冲彴鐢ㄦ埛 S_USER_CORE + S_user_core userCore = new S_user_core(); + userCore.setId(user.getSysUserId()); + userCore.setUpdate_by(this.getCurrentUser().getUser_name()); + userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙� + if (user.getStatus() == 0) { + user.setStatus(1); + } else { + user.setStatus(0); + } + userCore.setStatus(user.getStatus()); + if (user.getSex() != null) { + userCore.setSex(user.getSex().toString()); + } + userCore.setRemark(user.getRemark()); + userCore.setNick_name(user.getUserName()); + // 鍔犲瘑鎵嬫満鍙� + userCore.setPhonenumber(user.getUserPhone()); + this.userService.update(userCore); + // 3. 鏇存柊瑙掕壊閰嶇疆 S_ROLE_USER + // 1. 鏍规嵁 user.getSysUserId() 鏌ヨ + List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); //宸叉湁鐨勬潈闄� + List<Long> roleList = user.getRoleList(); //閫夋嫨鐨勬潈闄� + //鍏堝垹闄ゅ啀娣诲姞 + if (list != null && list.size() > 0) { + finSysTenantUserService.execDelRoleUserList(user.getSysUserId()); + } + if (roleList != null && roleList.size() > 0) { + finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId()); + } + this.getFinSysTenantUserCache().remove(user.getSysUserId() + ""); + return ResponseValue.success(1); + } + + /** + * @Description 鐘舵�佷慨鏀�/閫昏緫鍒犻櫎 + * @Author wh + * @Date 2023/7/17 14:35 + */ + @PostMapping("/updateStatus") + @Transactional(rollbackFor = Exception.class) + public ResponseValue updateStatus(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + // 1.鏇存柊绯荤粺鐢ㄦ埛 FIN_SYS_TENANT_USER 搴旇鏄煡璇� 鐒跺悗鍙敼鐘舵�� + List<FinSysTenantUser> select = finSysTenantUserService.select(new FinSysTenantUser(user.getId())); + if (select == null || select.size() == 0) { + return ResponseValue.error("鐢ㄦ埛涓嶅瓨鍦�"); + } + FinSysTenantUser finSysTenantUser = select.get(0); + finSysTenantUser.setStatus(user.getStatus()); + finSysTenantUserService.update(finSysTenantUser); + // 2.鏇存柊骞冲彴鐢ㄦ埛 S_USER_CORE + S_user_core userCore = new S_user_core(); + userCore.setId(user.getSysUserId()); + userCore.setUpdate_by(this.getCurrentUser().getUser_name()); + userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + // 骞冲彴鐢ㄦ埛琛ㄥ拰绯荤粺鐢ㄦ埛 琛ㄧ姸鎬佺浉鍙� + if (user.getStatus() == 0) { + user.setStatus(1); + } else { + user.setStatus(0); + } + userCore.setStatus(user.getStatus()); + this.userService.update(userCore); + return ResponseValue.success(1); + } + + /** + * @Description 瀵嗙爜鍒濆鍖� + * @Author wh + * @Date 2023/7/17 14:36 + */ + @PostMapping("/defaultPassword") + public ResponseValue defaultPassword(@RequestBody FinSysTenantUser finSysTenantUser) { + if (finSysTenantUser == null) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + //鍒濆鍖栧瘑鐮� 123456 + String stringValue = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();// 瀵嗘枃 + // 1. 淇敼鐢ㄦ埛琛� + //鐢ㄦ埛琛╥d + Long sysUserId = finSysTenantUser.getSysUserId(); + S_user_core userCore = new S_user_core(); + userCore.setId(sysUserId); + userCore.setPassword(stringValue); + userCore.setModify_pwd(0); + userService.update(userCore); + // 2. 淇敼骞冲彴鐢ㄦ埛锛堜笉鐢ㄤ慨鏀癸級 + return ResponseValue.success(1); + } + + /** + * @Description 鏍规嵁id鑾峰彇鐢ㄦ埛淇℃伅 + * @Author wh + * @Date 2023/7/17 14:38 + */ + @GetMapping("/detail") + public ResponseValue detail(Long id) { + if (id == null || id.longValue() <= 0) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + + FinSysTenantUser finSysTenantUser = this.finSysTenantUserService.get(new FinSysTenantUser(id)); + if (finSysTenantUser == null) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + String s = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY); + + finSysTenantUser.setUserPhone(s); + Long sysUserId = finSysTenantUser.getSysUserId(); + List<S_role> list = finSysTenantUserService.getByUserId(sysUserId); + HashMap<String, Object> map = new HashMap<>(); + map.put("list", list); + map.put("data", finSysTenantUser); + return ResponseValue.success(map); + } + + /** + * 寰楀埌 褰撳墠鐧诲綍鐢ㄦ埛鐨勪俊鎭� + * 澧炲姞 鐖剁被鏈烘瀯鐨刢ode + * + * @param + * @return + */ + @GetMapping("/getCurInfo") + public ResponseValue getCurInfo() { + + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo != null || sysInfo.getLv() > 0) { + // 瑙e瘑鎵嬫満鍙� + String key = PlatformRSAUtils.AES_KEY; + String userPhone = sysInfo.getUserPhone(); + if (userPhone != null) { + sysInfo.setUserPhone(AESUtils.decryptStrAES(userPhone, key)); + } + + // 鏌ヨ 鐢ㄦ埛瑙掕壊 TODO 涓存椂瑙e喅 灏嗘潵鏀鹃厤缃枃浠朵腑 + List<S_role> list = finSysTenantUserService.getByUserId(sysInfo.getSysUserId()); //宸叉湁鐨勬潈闄� + for (S_role s_role : list) { + if (s_role.getRole_id() != null && s_role.getRole_id().equals(1690961420053L)) { + sysInfo.setKfStatus(1); + } + } + + // 鏌ヨ鐖剁被鐨刼rgcode 闇�瑕佸皢鑷繁鐨刼rg鍏堟煡鍑烘潵 鍐嶆牴鎹畃arentid 鏌ョ埗绫� + String tenantId = sysInfo.getTenantId(); + if (tenantId != null && !tenantId.equals("")) { + List<FinSysTenant> select = finSysTenantService.select(new FinSysTenant(Long.valueOf(tenantId))); + if (select != null && select.size() > 0) { + FinSysTenant finSysTenant = select.get(0); + if (finSysTenant != null && finSysTenant.getParentId() != null) { + List<FinSysTenant> parents = finSysTenantService.select(new FinSysTenant(finSysTenant.getParentId())); + if (parents != null && parents.size() > 0) { + sysInfo.setParentCode(parents.get(0).getCode()); + } + } + + } + } + } + return ResponseValue.success(sysInfo); + } + + + /** + * 鏇存柊瑙掕壊鏉冮檺 + * + * @param user + * @return + */ + @PostMapping("/updRole") + public ResponseValue updRole(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + // 1. 鏍规嵁 user.getSysUserId() 鏌ヨ + List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); //宸叉湁鐨勬潈闄� + List<Long> roleList = user.getRoleList(); //閫夋嫨鐨勬潈闄� + //鍏堝垹闄ゅ啀娣诲姞 + if (list != null && list.size() > 0) { + finSysTenantUserService.execDelRoleUserList(user.getSysUserId()); + } + if (roleList != null && roleList.size() > 0) { + finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId()); + } + return ResponseValue.success(1); + } + + + /** + * @Description 鏂板 + * @Author llb + * @Date 2023/7/17 15:56 + */ + @PostMapping("/addSupplier") + @Transactional(rollbackFor = Exception.class) + public ResponseValue addSupplier(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + // 鑾峰彇杩愮淮绠$悊 + List<S_dept> depts = this.finSysTenantUserService.selectDept(roleName); + if (depts == null || depts.size() == 0) { + return ResponseValue.error(roleName + "鐨勮鑹蹭笉瀛樺湪"); + } + //鏍规嵁鍛樺伐缂栧彿鏌ヨ锛屽鏋滃瓨鍦ㄥ垯鎻愮ず + if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) { + return ResponseValue.error("鍛樺伐缂栧彿閲嶅"); + } + FinSysTenantUser sysInfo = this.getSysInfo(); + //鎻掑叆绯荤粺鐢ㄦ埛 + user.setId(NumberGenerator.getLongSequenceNumber()); + user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setCreateBy(this.getCurrentUser().getUser_name()); + user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + user.setUpdateBy(this.getCurrentUser().getUser_name()); + user.setIsDelete(0);// 鏄惁鍒犻櫎 0鏄� 1鍚� + user.setSysUserId(NumberGenerator.getLongSequenceNumber()); + user.setIsDelete(1); + user.setLv(sysInfo.getLv()); + user.setTenantCode(sysInfo.getTenantCode()); + user.setTenantId(sysInfo.getTenantId()); + user.setSysDeptId(2l); //杩愮淮绠$悊 + // 鍔犲瘑鎵嬫満鍙� + String key = PlatformRSAUtils.AES_KEY; + String userPhone = user.getUserPhone(); + String pwdPhone = ""; + if (userPhone != null) { + pwdPhone = AESUtils.encryptStrAES(userPhone, key); + user.setUserPhone(pwdPhone); + } + + this.finSysTenantUserService.insert(user); + // 鎻掑叆骞冲彴鐢ㄦ埛 + S_user_core userCore = new S_user_core(); + userCore.setId(user.getSysUserId()); + userCore.setDept_id(depts.get(0).getId()); //閮ㄩ棬 + userCore.setOrg_id(1L); + //userCore.setUser_name(); //鐢ㄦ埛璐﹀彿 + userCore.setUser_name(user.getUserCode()); //鐢ㄦ埛璐﹀彿 + userCore.setNick_name(user.getUserName()); + //鐢ㄦ埛绫诲瀷 鍏堥粯璁よ缃负2 + userCore.setUser_type(2); + + userCore.setPhonenumber(userPhone); + //鍒濆鍖栧瘑鐮� 123456 + String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); + userCore.setPassword(pws); + if (user.getStatus() == 0) { + userCore.setStatus(1); + } else { + userCore.setStatus(0); + } + userCore.setDel_flag(0); + userCore.setCreate_by(this.getCurrentUser().getCreate_by()); + userCore.setCreate_time(DateUtils.getDateTimeNumber()); + userCore.setRemark(user.getRemark()); + userCore.setType(1); + userCore.setBind_client_id("0"); + userCore.setBind_wechat(0); + userCore.setModify_pwd(0); + userCore.setBind_mobile(0); + userCore.setBind_mail(0); + userCore.setProfile_id(0L); + userCore.setIs_wechat_public(0); + userCore.setIs_wechat_routine(0); + userCore.setIs_wechat_ios(0); + userCore.setIs_wechat_android(0); + userCore.setIs_logoff(0); + userCore.setLogoff_time(0L); + userCore.setIs_sms(0); + //绠$悊鍛樼被鍨嬶細1= 骞冲彴瓒呯, 2=鍟嗘埛瓒呯, 3=绯荤粺绠$悊鍛橈紝4=鍟嗘埛绠$悊鍛� + userCore.setType(2); + //鍟嗘埛id锛�0-骞冲彴 + userCore.setMer_id(0L); + this.userService.insert(userCore); + // 鎻掑叆骞冲彴鏈烘瀯 + //灏戣鑹瞚d + List<Long> roleList = user.getRoleList(); //鏈烘瀯id 澶氫釜 + Long sysUserId = user.getSysUserId(); //鐢ㄦ埛id + this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId); + return ResponseValue.success(1); + } + + private Set<String> picFormatArr = new HashSet<String>() {{ + add(".pjp"); + add(".svgz"); + add(".jxl"); + add(".jpeg"); + add(".ico"); + add(".avif"); + add(".tif"); + add(".gif"); + add(".jfif"); + add(".jpg"); + add(".svg"); + add(".png"); + add(".xbm"); + add(".pjpeg"); + add(".bmp"); + add(".webp"); + }}; + + @PostMapping("/updatePerson") + @Transactional(rollbackFor = Exception.class) + public ResponseValue updatePerson(@RequestBody FinSysTenantUser user) { + if (user == null) { + return ResponseValue.error("鍙傛暟涓虹┖"); + } + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + String avatar = user.getAvatar(); + if (!picFormatArr.contains(avatar.substring(avatar.lastIndexOf(".")))) { + return ResponseValue.error("澶村儚鏍煎紡涓嶅厑璁�"); + } + FinSysTenantUser updUser = new FinSysTenantUser(); + updUser.setId(sysInfo.getId()); + updUser.setAvatar(user.getAvatar()); + updUser.setEmail(user.getEmail()); + updUser.setUserName(user.getUserName()); + updUser.setSex(user.getSex()); + String pwdPhone = ""; + if (user.getUserPhone() != null) { + String key = PlatformRSAUtils.AES_KEY; + pwdPhone = AESUtils.encryptStrAES(user.getUserPhone(), key); + } + updUser.setUserPhone(pwdPhone); + // 1.鏇存柊绯荤粺鐢ㄦ埛 FIN_SYS_TENANT_USER + finSysTenantUserService.update(updUser); + // 2.鏇存柊骞冲彴鐢ㄦ埛 S_USER_CORE + S_user_core userCore = new S_user_core(); + userCore.setId(sysInfo.getSysUserId()); + userCore.setUpdate_by(this.getCurrentUser().getUser_name()); + userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + userCore.setNick_name(updUser.getUserName()); + userCore.setEmail(updUser.getEmail()); + // 鍔犲瘑鎵嬫満鍙� + userCore.setPhonenumber(updUser.getUserPhone()); + this.userService.update(userCore); + this.getFinSysTenantUserCache().remove(String.valueOf(sysInfo.getSysUserId())); + this.getUserCacheProvider().removeUser(sysInfo.getSysUserId()); + return ResponseValue.success(1); + } + + /** + * @Description 淇敼瀵嗙爜 + */ + @PostMapping("/updatePassword") + public ResponseValue updatePassword(@RequestBody FinSysTenantUserUpdParam param) { + String oldMixPd = param.getOldMixPd(); + String newMixPd = param.getNewMixPd(); + String btnMixPd = param.getBtnMixPd(); + //鏍¢獙鍙傛暟 + if (StringUtils.isEmpty(oldMixPd) || StringUtils.isEmpty(newMixPd) || StringUtils.isEmpty(btnMixPd)) { + return ResponseValue.error("淇℃伅涓嶈兘涓虹┖锛�"); + } + FinSysTenantUser sysInfo = getSysInfo(); + if (sysInfo == null) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + //鏍¢獙淇╂杈撳叆鐨勫瘑鐮� + btnMixPd = PlatformRSAUtils.getRsaDecryptValue(btnMixPd, PlatformRSAUtils.PRIK); + newMixPd = PlatformRSAUtils.getRsaDecryptValue(newMixPd, PlatformRSAUtils.PRIK); + if (!newMixPd.equals(btnMixPd)) { + return ResponseValue.error("鏂板瘑鐮佷笌纭瀵嗙爜涓嶄竴鑷达紒"); + } + // 鏁板瓧+瀛楁瘝+鐗规畩绗﹀悎锛屾渶灏�8浣� + if (StringUtils.isEmpty(btnMixPd) || btnMixPd.length() < 8 || btnMixPd.length() > 12) { + return ResponseValue.error("瀵嗙爜绾у埆杩囦綆锛岃杈撳叆锛�8-12涓瓧绗�"); + } + String validatePasswordRule = this.validatePasswordRule(btnMixPd); + if (validatePasswordRule != null) { + return ResponseValue.error(validatePasswordRule); + } + //鐢ㄦ埛琛╥d + Long sysUserId = sysInfo.getSysUserId(); + S_user_core queryU = new S_user_core(); + queryU.setId(sysUserId); + S_user_core queryUserInfo = userService.get(queryU); + if (queryUserInfo == null) { + return ResponseValue.error("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } + oldMixPd = PlatformRSAUtils.getRsaDecryptValue(oldMixPd, PlatformRSAUtils.PRIK); + //鏍¢獙鑰佸瘑鐮� + if (!this.matchesPassword(oldMixPd, queryUserInfo.getPassword())) { + return ResponseValue.error("鏃у瘑鐮佽緭鍏ユ湁璇紒"); + } + if (oldMixPd.equalsIgnoreCase(btnMixPd)) { + return ResponseValue.error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚岋紒"); + } + //鏇存柊鏁版嵁搴� + // 1. 淇敼鐢ㄦ埛琛� + queryU.setPassword(this.encryptPassword(btnMixPd)); + queryU.setModify_pwd(1); + userService.update(queryU); + // 2. 淇敼骞冲彴鐢ㄦ埛锛堜笉鐢ㄤ慨鏀癸級 + return ResponseValue.success(1); + } +} -- Gitblit v1.9.1