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