forked from integrated_whb/integrated_whb
				
			UsersController层中逻辑迁移至UsersServiceImpl,并新增调用远程新增接口
							parent
							
								
									9c86394e0b
								
							
						
					
					
						commit
						26a757a44c
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,6 +1,7 @@ | |||
| package com.zcloud.controller.system; | ||||
| 
 | ||||
| import com.zcloud.controller.base.BaseController; | ||||
| import com.zcloud.entity.EmployeeData; | ||||
| import com.zcloud.entity.Page; | ||||
| import com.zcloud.entity.PageData; | ||||
| import com.zcloud.entity.system.Dictionaries; | ||||
|  | @ -20,9 +21,7 @@ import org.apache.shiro.crypto.hash.SimpleHash; | |||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Controller; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RequestParam; | ||||
| import org.springframework.web.bind.annotation.ResponseBody; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import org.springframework.web.multipart.MultipartFile; | ||||
| import org.springframework.web.servlet.ModelAndView; | ||||
| 
 | ||||
|  | @ -656,88 +655,20 @@ public class UsersController extends BaseController { | |||
| 	@RequestMapping(value="/saveUser") | ||||
| 	@RequiresPermissions("user:add") | ||||
| 	@ResponseBody | ||||
| 	@Transactional | ||||
| 	@LogAnno(menuType= "双重预防",menuServer= "企业管理",instructionsOperate = "用户管理",instructionsType = "保存用户") | ||||
| 	public Object saveUser() throws Exception{ | ||||
| 		Map<String,Object> map = new HashMap<String,Object>(); | ||||
| 		Map<String, Object> map = new HashMap<>(); | ||||
| 		String errInfo = "success"; | ||||
| 		PageData pd = new PageData(); | ||||
| 		pd = this.getPageData(); | ||||
| 		// 默认周期初始值为1
 | ||||
| 		pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); | ||||
| //		pd.put("DURATION", "1");							//工作状态持续时间
 | ||||
| 		pd.put("WORKSTATUS", "1");							//工作状态
 | ||||
| 		pd.put("WORKPERIOD", "1");							//当前工作周期数
 | ||||
| 		pd.put("RIGHTS", "788664966448"); | ||||
| 
 | ||||
| 		if(pd.get("USERAVATARURL")!=null && !pd.getString("USERAVATARURL").equals("")){ | ||||
| //			System.out.println("USERAVATARURL原长度:"+pd.getString("USERAVATARURL").length());
 | ||||
| 			String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL")); | ||||
| //			System.out.println("USERAVATARURL压缩长度:"+USERAVATARURL64.length());
 | ||||
| 			try{ | ||||
| 				FaceUtil.compareFace(pd.getString("USERAVATARURL"),pd.getString("USERAVATARURL")); | ||||
| 			}catch (Exception e){ | ||||
| 				map.put("result", "fail"); | ||||
| 				map.put("msg", "人脸图像不符合要求 请重新上传!"); | ||||
| 				return map; | ||||
| 			} | ||||
| 		PageData pd = this.getPageData(); | ||||
| 		try { | ||||
| 			usersService.saveUserNew(pd); | ||||
| 		} catch (Exception e) { | ||||
| 			errInfo = "error"; | ||||
| 			map.put("msg", e.getMessage()); | ||||
| 		} | ||||
| 		if ("input".equals(pd.getString("LEARNERCATEGORYSTATUS"))) { | ||||
| 			pd.put("DICTTYPE","APPLICABLE_PERSONNEL"); | ||||
| 			PageData lc = dictionariesCorpService.saveSelf(pd); | ||||
| 			pd.put("LEARNERCATEGORY", lc.getString("DICTIONARIES_ID")); | ||||
| 		} | ||||
| 		pd.put("USER_ID", this.get32UUID());			//ID 主键
 | ||||
| 		pd.put("LAST_LOGIN", "");						//最后登录时间
 | ||||
| 		pd.put("IP", "");								//IP
 | ||||
| 		pd.put("STATUS", "0");							//状态
 | ||||
| 		pd.put("ISMAIN", "0");							//状态
 | ||||
| 		pd.put("SKIN", "pcoded-navbar navbar-image-3,navbar pcoded-header navbar-expand-lg navbar-light header-dark,");		//用户默认皮肤
 | ||||
| 		pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), pd.getString("PASSWORD")).toString());			//密码加密
 | ||||
| 
 | ||||
| 
 | ||||
| 		if(null == usersService.findByUsername(pd)){	//判断用户名是否存在
 | ||||
| 				usersService.saveUser(pd); 					//执行保存
 | ||||
| 			if("true".equals(pd.getString("ISSTUDENT"))) { | ||||
| 				if ("select".equals(pd.getString("letDutiesType"))) { | ||||
| 					pd.put("DUTIES", pd.getString("DUTIES")); | ||||
| 				} else { | ||||
| 					PageData dicPd = new PageData(); | ||||
| 					dicPd.put("PARENT_ID", "09e36ac01e9540f8bc84eab1c1a78754"); | ||||
| 					dicPd.put("BIANMA", "zhiwu"); | ||||
| 					dicPd.put("NAME", pd.getString("DUTIESValue")); | ||||
| 					dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 					pd.put("DUTIES", dicPd.getString("DICTIONARIES_ID")); | ||||
| 				} | ||||
| 				if ("select".equals(pd.getString("letTitleType"))) { | ||||
| 					pd.put("TITLE", pd.getString("TITLE")); | ||||
| 				} else { | ||||
| 					PageData dicPd = new PageData(); | ||||
| 					dicPd.put("PARENT_ID", "945a6b10e59946078b500f0fbafa8679"); | ||||
| 					dicPd.put("BIANMA", "zhicheng"); | ||||
| 					dicPd.put("NAME", pd.getString("letTitleValue")); | ||||
| 					dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 					pd.put("TITLE", dicPd.getString("DICTIONARIES_ID")); | ||||
| 				} | ||||
| 				if ("select".equals(pd.getString("letTypeOfWorkType"))) { | ||||
| 					pd.put("TYPE_OF_WORK", pd.getString("TYPE_OF_WORK")); | ||||
| 				} else { | ||||
| 					PageData dicPd = new PageData(); | ||||
| 					dicPd.put("PARENT_ID", "55484e491a5e442d839c4595380713ec"); | ||||
| 					dicPd.put("BIANMA", "gongzhong"); | ||||
| 					dicPd.put("NAME", pd.getString("letTypeOfWorkValue")); | ||||
| 					dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 					pd.put("TYPE_OF_WORK", dicPd.getString("DICTIONARIES_ID")); | ||||
| 				} | ||||
| 				userInfoService.save(pd); | ||||
| 			} | ||||
| 		}else{ | ||||
| 			map.put("result","failed"); | ||||
| 		} | ||||
| 		FHLOG.save(Jurisdiction.getUsername(), "新增用户:"+pd.getString("USERNAME"));//记录日志
 | ||||
| 
 | ||||
| 
 | ||||
| 		map.put("result", errInfo);				//返回结果
 | ||||
| 		map.put("USER_ID", pd.getString("USER_ID"));				//返回结果
 | ||||
| 		map.put("result", errInfo); | ||||
| 		map.put("USER_ID", pd.getString("USER_ID")); | ||||
| 		return map; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,23 @@ | |||
| package com.zcloud.entity; | ||||
| 
 | ||||
| import lombok.Data; | ||||
| 
 | ||||
| @Data | ||||
| public class EmployeeData { | ||||
|     private String remark; // 备注
 | ||||
|     private String name; // 姓名
 | ||||
|     private String avatar; // 头像地址
 | ||||
|     private String cardNo; // 卡号
 | ||||
|     private String empNo; // 员工编号
 | ||||
|     private String sex; // 性别
 | ||||
|     private String certType; // 证件类型
 | ||||
|     private String certNo; // 证件号码
 | ||||
|     private Integer office; // 办公室/科室编号
 | ||||
|     private String staffType; // 员工类型
 | ||||
|     private String phone; // 手机号码
 | ||||
|     private String deptId; // 部门ID
 | ||||
|     private String empId; // 员工ID
 | ||||
|     private String abo; // 血型
 | ||||
|     private Integer age; // 年龄
 | ||||
|     private String addr; // 地址
 | ||||
| } | ||||
|  | @ -4,6 +4,7 @@ import com.zcloud.entity.Page; | |||
| import com.zcloud.entity.PageData; | ||||
| import com.zcloud.entity.system.User; | ||||
| 
 | ||||
| import java.io.IOException; | ||||
| import java.util.List; | ||||
| 
 | ||||
| /** | ||||
|  | @ -262,4 +263,7 @@ public interface UsersService { | |||
| 	List<PageData> listAll(PageData pd)throws Exception; | ||||
| 
 | ||||
| 	void editUserState(PageData pageData)throws Exception; | ||||
| 
 | ||||
| 	void saveUserNew(PageData pd) throws Exception; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -5,13 +5,14 @@ import com.zcloud.entity.Page; | |||
| import com.zcloud.entity.PageData; | ||||
| import com.zcloud.entity.system.User; | ||||
| import com.zcloud.mapper.datasource.system.UsersMapper; | ||||
| import com.zcloud.service.system.DepartmentService; | ||||
| import com.zcloud.service.system.UsersService; | ||||
| import com.zcloud.util.HttpClientUtil; | ||||
| import com.zcloud.service.system.*; | ||||
| import com.zcloud.util.*; | ||||
| import org.apache.shiro.crypto.hash.SimpleHash; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
| 
 | ||||
| import java.io.IOException; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
|  | @ -28,6 +29,12 @@ public class UsersServiceImpl implements UsersService { | |||
| 	private UsersMapper usersMapper; | ||||
| 	@Autowired | ||||
| 	private DepartmentService departmentService; | ||||
| 	@Autowired | ||||
| 	private UserInfoService userInfoService; | ||||
| 	@Autowired | ||||
| 	private DictionariesCorpService dictionariesCorpService; | ||||
| 	@Autowired | ||||
| 	private FHlogService FHLOG; | ||||
| 
 | ||||
| 	/**通过用户名获取用户信息 | ||||
| 	 * @param pd | ||||
|  | @ -176,6 +183,86 @@ public class UsersServiceImpl implements UsersService { | |||
| 	public void editUserState(PageData pd)throws Exception{ | ||||
| 		usersMapper.editUserState(pd); | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void saveUserNew(PageData pd) throws Exception { | ||||
| 			pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); | ||||
| 			pd.put("WORKSTATUS", "1"); | ||||
| 			pd.put("WORKPERIOD", "1"); | ||||
| 			pd.put("RIGHTS", "788664966448"); | ||||
| 
 | ||||
| 			if (pd.get("USERAVATARURL") != null && !pd.getString("USERAVATARURL").equals("")) { | ||||
| 				String USERAVATARURL64 = ImageAnd64Binary.zipBase64(pd.getString("USERAVATARURL")); | ||||
| 				try { | ||||
| 					FaceUtil.compareFace(pd.getString("USERAVATARURL"), pd.getString("USERAVATARURL")); | ||||
| 				} catch (Exception e) { | ||||
| 					throw new Exception("人脸图像不符合要求,请重新上传"); | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			if ("input".equals(pd.getString("LEARNERCATEGORYSTATUS"))) { | ||||
| 				pd.put("DICTTYPE", "APPLICABLE_PERSONNEL"); | ||||
| 				PageData lc = dictionariesCorpService.saveSelf(pd); | ||||
| 				pd.put("LEARNERCATEGORY", lc.getString("DICTIONARIES_ID")); | ||||
| 			} | ||||
| 
 | ||||
| 			pd.put("USER_ID", Warden.get32UUID()); | ||||
| 			pd.put("LAST_LOGIN", ""); | ||||
| 			pd.put("IP", ""); | ||||
| 			pd.put("STATUS", "0"); | ||||
| 			pd.put("ISMAIN", "0"); | ||||
| 			pd.put("SKIN", "pcoded-navbar navbar-image-3, navbar pcoded-header navbar-expand-lg navbar-light header-dark"); | ||||
| 			pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("USERNAME"), pd.getString("PASSWORD")).toString()); | ||||
| 
 | ||||
| 			if (usersMapper.findByUsername(pd) == null) { | ||||
| 				if ("true".equals(pd.getString("ISSTUDENT"))) { | ||||
| 					if ("select".equals(pd.getString("letDutiesType"))) { | ||||
| 						pd.put("DUTIES", pd.getString("DUTIES")); | ||||
| 					} else { | ||||
| 						PageData dicPd = new PageData(); | ||||
| 						dicPd.put("PARENT_ID", "09e36ac01e9540f8bc84eab1c1a78754"); | ||||
| 						dicPd.put("BIANMA", "zhiwu"); | ||||
| 						dicPd.put("NAME", pd.getString("DUTIESValue")); | ||||
| 						dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 						pd.put("DUTIES", dicPd.getString("DICTIONARIES_ID")); | ||||
| 					} | ||||
| 					if ("select".equals(pd.getString("letTitleType"))) { | ||||
| 						pd.put("TITLE", pd.getString("TITLE")); | ||||
| 					} else { | ||||
| 						PageData dicPd = new PageData(); | ||||
| 						dicPd.put("PARENT_ID", "945a6b10e59946078b500f0fbafa8679"); | ||||
| 						dicPd.put("BIANMA", "zhicheng"); | ||||
| 						dicPd.put("NAME", pd.getString("letTitleValue")); | ||||
| 						dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 						pd.put("TITLE", dicPd.getString("DICTIONARIES_ID")); | ||||
| 					} | ||||
| 					if ("select".equals(pd.getString("letTypeOfWorkType"))) { | ||||
| 						pd.put("TYPE_OF_WORK", pd.getString("TYPE_OF_WORK")); | ||||
| 					} else { | ||||
| 						PageData dicPd = new PageData(); | ||||
| 						dicPd.put("PARENT_ID", "55484e491a5e442d839c4595380713ec"); | ||||
| 						dicPd.put("BIANMA", "gongzhong"); | ||||
| 						dicPd.put("NAME", pd.getString("letTypeOfWorkValue")); | ||||
| 						dicPd = dictionariesCorpService.saveByZidongxinzeng(dicPd); | ||||
| 						pd.put("TYPE_OF_WORK", dicPd.getString("DICTIONARIES_ID")); | ||||
| 					} | ||||
| 					userInfoService.save(pd); | ||||
| 				} | ||||
| 
 | ||||
| 				usersMapper.saveUser(pd); | ||||
| 				FHLOG.save(Jurisdiction.getUsername(), "新增用户:" + pd.getString("USERNAME")); | ||||
| 
 | ||||
| 				if (PLSUtil.getToken(pd)) { | ||||
| 					PLSUtil.saveUser(pd); | ||||
| 				} else { | ||||
| 					throw new Exception("无法获取有效的Token"); | ||||
| 				} | ||||
| 			} else { | ||||
| 				throw new Exception("用户名已存在"); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 
 | ||||
| 	public void editPassword(PageData pd)throws Exception{ | ||||
| 		usersMapper.editPassword(pd); | ||||
| 	} | ||||
|  |  | |||
|  | @ -0,0 +1,104 @@ | |||
| package com.zcloud.util; | ||||
| 
 | ||||
| import com.alibaba.fastjson.JSONObject; | ||||
| import com.zcloud.controller.corp.CorpInfoController; | ||||
| import com.zcloud.entity.EmployeeData; | ||||
| import com.zcloud.entity.PageData; | ||||
| import com.zcloud.service.corp.CorpInfoService; | ||||
| import com.zcloud.service.corp.CorpPlsInfoService; | ||||
| import com.zcloud.service.system.UsersService; | ||||
| import okhttp3.*; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| 
 | ||||
| import java.io.IOException; | ||||
| import java.io.OutputStream; | ||||
| import java.net.HttpURLConnection; | ||||
| import java.net.URL; | ||||
| import java.net.URLConnection; | ||||
| 
 | ||||
| public class PLSUtil { | ||||
| 
 | ||||
|     @Autowired | ||||
|     public static CorpPlsInfoService corpplsinfoService; | ||||
|     @Autowired | ||||
|     public static UsersService usersService; | ||||
| 
 | ||||
|     // 修改 getToken 方法以返回布尔值
 | ||||
|     public static boolean getToken(PageData pd) throws Exception { | ||||
|         boolean tokenUpdated = false; | ||||
|         pd = corpplsinfoService.findById(pd); | ||||
|         String token = pd.getString("TOKEN"); | ||||
|         String expireTime = pd.getString("EXPIRE_TIME"); | ||||
|         String userName = pd.getString("ACCOUNT"); | ||||
|         String passWord = pd.getString("PASSWORD"); | ||||
|         String loginUrl = pd.getString("POST_URL") + "/auth/login"; | ||||
| 
 | ||||
|         if (token == null || expireTime == null || expireTime.trim().isEmpty() || DateUtil.compareDate(DateUtil.getTime(), expireTime)) { | ||||
|             JSONObject loginPayload = new JSONObject(); | ||||
|             loginPayload.put("username", userName); | ||||
|             loginPayload.put("password", passWord); | ||||
|             loginPayload.put("isPresentationMode", "2"); | ||||
| 
 | ||||
|             OkHttpClient client = new OkHttpClient(); | ||||
|             MediaType JSON = MediaType.parse("application/json; charset=utf-8"); | ||||
|             RequestBody body = RequestBody.create(JSON, loginPayload.toJSONString()); | ||||
|             Request request = new Request.Builder() | ||||
|                     .url(loginUrl) | ||||
|                     .post(body) | ||||
|                     .build(); | ||||
| 
 | ||||
|             Response response = client.newCall(request).execute(); | ||||
|             if (response.isSuccessful()) { | ||||
|                 String responseBody = response.body().string(); | ||||
|                 JSONObject responseJSON = new JSONObject(responseBody.isEmpty()); | ||||
|                 JSONObject data = responseJSON.getJSONObject("data"); | ||||
|                 token = data.getString("access_token"); | ||||
|                 String newExpireTime = DateUtil.getAfterDayDate("1"); | ||||
|                 pd.put("TOKEN", token); | ||||
|                 pd.put("EXPIRE_TIME", newExpireTime); | ||||
|                 corpplsinfoService.edit(pd); | ||||
|                 tokenUpdated = true; | ||||
|             } else { | ||||
|                 System.out.println("登录失败" + response.code()); | ||||
|             } | ||||
|         } else { | ||||
|             tokenUpdated = true; | ||||
|         } | ||||
|         return tokenUpdated; | ||||
|     } | ||||
| 
 | ||||
|     public static void saveUser(PageData pd) throws Exception { | ||||
|         if (getToken(pd)) { | ||||
|             PageData user = usersService.findByUsername(pd); | ||||
|             EmployeeData employeeData = new EmployeeData(); | ||||
| 
 | ||||
|             if (user == null) { | ||||
|                 employeeData.setName(user.getString("NAME")); | ||||
|                 employeeData.setAvatar(user.getString("USERAVATARPREFIX") + user.getString("USERAVATARURL")); | ||||
|                 employeeData.setCardNo(user.getString("CARDNO")); | ||||
|                 employeeData.setSex(user.getString("SEX")); | ||||
|                 employeeData.setPhone(user.getString("PHONE")); | ||||
|             } | ||||
| 
 | ||||
|             pd = corpplsinfoService.findById(pd); | ||||
|             String token = pd.getString("TOKEN"); | ||||
|             String url = pd.getString("POST_URL") + "/deploy/psnmgmt/insertPsnInfo"; | ||||
| 
 | ||||
|             OkHttpClient client = new OkHttpClient(); | ||||
|             MediaType JSON = MediaType.parse("application/json; charset=utf-8"); | ||||
|             RequestBody body = RequestBody.create(JSON, employeeData.toString()); | ||||
|             Request request = new Request.Builder() | ||||
|                     .url(url) | ||||
|                     .post(body) | ||||
|                     .addHeader("Authorization", "Bearer " + token) | ||||
|                     .build(); | ||||
| 
 | ||||
|             Response response = client.newCall(request).execute(); | ||||
|             if (!response.isSuccessful()) { | ||||
|                 throw new IOException(String.valueOf(response)); | ||||
|             } | ||||
|         } else { | ||||
|             throw new Exception("无法获取有效的Token"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue