wangpengfei 11 months ago
parent
commit
7da22f97db
  1. 80
      src/main/java/com/yxt/portal/apiadmin/SysStaffinfoRest.java
  2. 486
      src/main/java/com/yxt/portal/apiwx/AppSysUserRest.java
  3. 578
      src/main/java/com/yxt/portal/apiwx/WxSysUserRest.java
  4. 1
      src/main/java/com/yxt/portal/biz/sysrole/SysRole.java
  5. 2
      src/main/java/com/yxt/portal/biz/sysrole/SysRoleVo.java
  6. 117
      src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoDetailsVo.java
  7. 10
      src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoDto.java
  8. 94
      src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml
  9. 178
      src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoService.java
  10. 4
      src/main/java/com/yxt/portal/biz/sysstafforg/SysStaffOrgDetailsVo.java
  11. 2
      src/main/java/com/yxt/portal/biz/sysstafforg/SysStaffOrgMapper.xml
  12. 1
      src/main/java/com/yxt/portal/biz/sysuser/SysUser.java
  13. 64
      src/main/java/com/yxt/portal/biz/sysuser/SysUserService.java
  14. 8
      src/main/java/com/yxt/portal/biz/sysuser/SysUserVo.java
  15. 2
      src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleMapper.java
  16. 9
      src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleMapper.xml
  17. 3
      src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleService.java
  18. 1
      src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleVo.java

80
src/main/java/com/yxt/portal/apiadmin/SysStaffinfoRest.java

@ -12,11 +12,10 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoService; import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Collections; import java.util.Collections;
@ -59,7 +58,8 @@ public class SysStaffinfoRest{
* @param pq 查询条件 * @param pq 查询条件
* @return * @return
*/ */
@ApiOperation("员工管理分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SysStaffinfoVo>> listPage(@RequestBody PagerQuery<SysStaffinfoQuery> pq) { public ResultBean<PagerVo<SysStaffinfoVo>> listPage(@RequestBody PagerQuery<SysStaffinfoQuery> pq) {
ResultBean<PagerVo<SysStaffinfoVo>> rb = ResultBean.fireFail(); ResultBean<PagerVo<SysStaffinfoVo>> rb = ResultBean.fireFail();
IPage<SysStaffinfoVo> page = sysStaffinfoService.pagerList(pq); IPage<SysStaffinfoVo> page = sysStaffinfoService.pagerList(pq);
@ -74,7 +74,8 @@ public class SysStaffinfoRest{
* @param dto 数据传输对象 * @param dto 数据传输对象
* @return * @return
*/ */
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(SysStaffinfoDto dto) { public ResultBean save(SysStaffinfoDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = sysStaffinfoService.saveStaffInfo(dto); ResultBean resultBean = sysStaffinfoService.saveStaffInfo(dto);
@ -91,7 +92,8 @@ public class SysStaffinfoRest{
* @param sid 员工信息sid * @param sid 员工信息sid
* @return * @return
*/ */
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(SysStaffinfoDto dto, String sid) { public ResultBean update(SysStaffinfoDto dto, String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
ResultBean resultBean = sysStaffinfoService.updateStaffInfo(dto, sid); ResultBean resultBean = sysStaffinfoService.updateStaffInfo(dto, sid);
@ -107,7 +109,8 @@ public class SysStaffinfoRest{
* @param sysStaffQuery 数据传输对象 * @param sysStaffQuery 数据传输对象
* @return * @return
*/ */
@ApiOperation("设置离职")
@PostMapping("/del")
public ResultBean del(SysStaffQuery sysStaffQuery) { public ResultBean del(SysStaffQuery sysStaffQuery) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
//查询员工是否是离职 //查询员工是否是离职
@ -126,8 +129,9 @@ public class SysStaffinfoRest{
return rb.success().setMsg("成功"); return rb.success().setMsg("成功");
} }
@ApiOperation("员工信息编辑初始化及详情")
public ResultBean<SysStaffinfoDetailsVo> fetchBySid(String sid) { @GetMapping("/fetchBySid/{sid}")
public ResultBean<SysStaffinfoDetailsVo> fetchBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
SysStaffinfoDetailsVo sysStaffinfo = sysStaffinfoService.selectDetailsBySid(sid); SysStaffinfoDetailsVo sysStaffinfo = sysStaffinfoService.selectDetailsBySid(sid);
if (sysStaffinfo == null) { if (sysStaffinfo == null) {
@ -135,14 +139,28 @@ public class SysStaffinfoRest{
} }
return rb.success().setData(sysStaffinfo); return rb.success().setData(sysStaffinfo);
} }
/**
* 获取集团内全部员工姓名
*
* @param staffName 员工姓名
* @return
*/
@ApiOperation("获取集团内全部员工姓名")
@GetMapping("/getStaffName")
public ResultBean<List<Map<String, String>>> getStaffName(String staffName, String deptSid) { public ResultBean<List<Map<String, String>>> getStaffName(String staffName, String deptSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<Map<String, String>> staffNameList = sysStaffinfoService.getStaffName(staffName, deptSid); List<Map<String, String>> staffNameList = sysStaffinfoService.getStaffName(staffName, deptSid);
return rb.success().setData(staffNameList); return rb.success().setData(staffNameList);
} }
/**
* 获取部门内全部员工姓名
*
* @param staffName 员工姓名
* @return
*/
@ApiOperation("获取部门内全部员工姓名")
@GetMapping("/getStaffNameByDeptSid")
public ResultBean<List<Map<String, String>>> getStaffNameByDeptSid(String staffName, String deptSid) { public ResultBean<List<Map<String, String>>> getStaffNameByDeptSid(String staffName, String deptSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
@ -151,12 +169,16 @@ public class SysStaffinfoRest{
} }
@ApiOperation("获取App通讯录")
@ResponseBody
@GetMapping("/selectAppContactsList")
public ResultBean<List<SysStaffinfoAppContactsVo>> selectAppContactsList(String names) { public ResultBean<List<SysStaffinfoAppContactsVo>> selectAppContactsList(String names) {
return new ResultBean<List<SysStaffinfoAppContactsVo>>().success().setData(sysStaffinfoService.selectAppContactsList()); return new ResultBean<List<SysStaffinfoAppContactsVo>>().success().setData(sysStaffinfoService.selectAppContactsList());
} }
@ApiOperation("app查看通讯录详情")
@ResponseBody
@GetMapping("/selectAppContactsVO/{staffSid}")
public ResultBean<AppContactsDetailsVo> selectAppContactsVO(String staffSid) { public ResultBean<AppContactsDetailsVo> selectAppContactsVO(String staffSid) {
if (StringUtils.isBlank(staffSid)) { if (StringUtils.isBlank(staffSid)) {
return new ResultBean<AppContactsDetailsVo>().fail().setMsg("staffSid不能为空"); return new ResultBean<AppContactsDetailsVo>().fail().setMsg("staffSid不能为空");
@ -176,7 +198,9 @@ public class SysStaffinfoRest{
return new ResultBean<AppContactsDetailsVo>().success().setData(appContactsDetailsVo); return new ResultBean<AppContactsDetailsVo>().success().setData(appContactsDetailsVo);
} }
@ApiOperation("App通讯录搜索")
@ResponseBody
@PostMapping("/searchAppContactsList")
public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList(PagerQuery<SysStaffinfoQuery> pq) { public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList(PagerQuery<SysStaffinfoQuery> pq) {
String names = pq.getParams().getName(); String names = pq.getParams().getName();
if (StringUtils.isBlank(names)) if (StringUtils.isBlank(names))
@ -189,7 +213,9 @@ public class SysStaffinfoRest{
return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result); return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result);
} }
@ApiOperation("App通讯录搜索2")
@ResponseBody
@PostMapping("/searchAppContactsList2")
public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList2(PagerQuery<SysStaffinfoQuery> pq) { public ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>> searchAppContactsList2(PagerQuery<SysStaffinfoQuery> pq) {
PagerVo<SysStaffinfoAppContactsSearchVo> page1 = new PagerVo<>(); PagerVo<SysStaffinfoAppContactsSearchVo> page1 = new PagerVo<>();
IPage<SysStaffinfoAppContactsSearchVo> iPage = sysStaffinfoService.searchAppContactsList2(pq); IPage<SysStaffinfoAppContactsSearchVo> iPage = sysStaffinfoService.searchAppContactsList2(pq);
@ -199,34 +225,46 @@ public class SysStaffinfoRest{
return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result); return new ResultBean<PagerVo<SysStaffinfoAppContactsSearchVo>>().success().setData(pv_result);
} }
@ApiOperation("销售订单-内部推荐人下拉框")
@ResponseBody
@GetMapping("/selectStaffList")
public ResultBean<List<PcSysStaffVo>> selectStaffList(PcSysStaffQuery pcSysStaffQuery) { public ResultBean<List<PcSysStaffVo>> selectStaffList(PcSysStaffQuery pcSysStaffQuery) {
return sysStaffinfoService.selectStaffList(pcSysStaffQuery); return sysStaffinfoService.selectStaffList(pcSysStaffQuery);
} }
@ApiOperation("移动端-销售订单-内部推荐人下拉框")
@ResponseBody
@PostMapping("/getUserList")
public ResultBean<PagerVo<AppSysStaffVo>> getUserList(PagerQuery<AppSysStaffQuery> pagerQuery) { public ResultBean<PagerVo<AppSysStaffVo>> getUserList(PagerQuery<AppSysStaffQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
PagerVo<AppSysStaffVo> pv = sysStaffinfoService.getUserList(pagerQuery); PagerVo<AppSysStaffVo> pv = sysStaffinfoService.getUserList(pagerQuery);
return rb.success().setData(pv); return rb.success().setData(pv);
} }
@ApiOperation("存放地点变更-获取人员列表")
@ResponseBody
@GetMapping("/getGressionUserList/{userSid}")
public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid) { public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid) {
return sysStaffinfoService.getGressionUserList(userSid, ""); return sysStaffinfoService.getGressionUserList(userSid, "");
} }
@ApiOperation("切换机构:存放地点变更-获取人员列表")
@ResponseBody
@GetMapping("/getGressionUserList")
public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid, String orgPath) { public ResultBean<List<AppSysStaffVo>> getGressionUserList(String userSid, String orgPath) {
return sysStaffinfoService.getGressionUserList(userSid, orgPath); return sysStaffinfoService.getGressionUserList(userSid, orgPath);
} }
@ApiOperation("获取集团所有人员")
@ResponseBody
@GetMapping("/selectStaffLists")
public ResultBean<List<PcSysStaffVo>> selectStaffLists() { public ResultBean<List<PcSysStaffVo>> selectStaffLists() {
return sysStaffinfoService.selectStaffLists(); return sysStaffinfoService.selectStaffLists();
} }
@ApiOperation("获取集团所有在职人员")
@ResponseBody
@GetMapping("/selectStaffListss")
public ResultBean<List<PcSysStaffVo>> selectStaffListss() { public ResultBean<List<PcSysStaffVo>> selectStaffListss() {
return sysStaffinfoService.selectStaffListss(); return sysStaffinfoService.selectStaffListss();
} }

486
src/main/java/com/yxt/portal/apiwx/AppSysUserRest.java

@ -0,0 +1,486 @@
package com.yxt.portal.apiwx;
import com.alibaba.fastjson.JSON;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.*;
import com.yxt.common.core.result.ResultBean;
import com.yxt.portal.biz.sysorganization.SysOrganization;
import com.yxt.portal.biz.sysorganization.SysOrganizationService;
import com.yxt.portal.biz.sysrole.SysRoleService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrg;
import com.yxt.portal.biz.sysuser.SysUser;
import com.yxt.portal.biz.sysuser.SysUserQuery;
import com.yxt.portal.biz.sysuser.SysUserService;
import com.yxt.portal.biz.sysuser.SysUserVo;
import com.yxt.portal.biz.sysuser.app.AppMySysUserInfo;
import com.yxt.portal.biz.sysuser.app.MyInfoQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @Description
* @Author liuguohui
* @Date 2021/9/4
*/
@Api(tags = "用户表-移动端")
@Controller
@RequestMapping("apiwx/appuser")
public class AppSysUserRest{
@Autowired
private SysUserService sysUserService;
@Autowired
private RedisUtil redisUtil;
@Autowired(required = false)
private HttpServletRequest httpServletRequest;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private SysRoleService sysRoleService;
@Autowired
private SysOrganizationService sysOrganizationService;
@PostMapping("/login")
@ResponseBody
@ApiOperation(value = "1、app用户登录")
public ResultBean<SysUserVo> login(SysUserQuery userQuery) {
/*
1根据传参设备appId查询绑定账号
11未查询到绑定的账号
111查询用户登录账号不存在-->返回账号不存在
112账号存在获取当前账号绑定的设备值
1设备值为空验证登录成功后即绑定设备返回用户信息验证不成功返回错误信息验证码密码错误
2设备值存在向表sys_exception_log插入数据返回当前账号已被其它设备绑定错误码101说明错误码为sys_exception_log的id
12查询到绑定的账号
121根据传参设备appId查询到绑定的账号与用户传递的账号不一致
1向表sys_exception_log插入数据返回当前设备已绑定其它账号错误码102
122根据传参设备appId查询到绑定的账号与用户传递的账号一致验证登录信息
1验证登录信息成功后返回用户信息验证不成功返回错误信息验证码密码错误
*/
ResultBean<SysUserVo> rb = ResultBean.fireFail();
String userName = userQuery.getUserName();
String password = userQuery.getPassword();
String appId = userQuery.getAppId();
String verifyCode = userQuery.getVerifyCode();
String type = userQuery.getType(); // type:1、密码登录2、验证码登录
if (StringUtils.isBlank(userName)) return new ResultBean<SysUserVo>().fail().setMsg("用户名不能为空");
// if (StringUtils.isBlank(appId)) return new ResultBean<SysUserVo>().fail().setMsg("appId不能为空");
if (type.equals("1")) {
if (StringUtils.isBlank(password)) return new ResultBean<SysUserVo>().fail().setMsg("密码不能为空");
} else {
if (StringUtils.isBlank(verifyCode)) return new ResultBean<SysUserVo>().fail().setMsg("验证码不能为空");
// 访问后清理key
}
boolean isTest = false;
if(userQuery.getIsTest() != null){
isTest = userQuery.getIsTest();
}
isTest = true;
if (isTest) {//添加测试版
//将该appId的所有账号的appId都置为空
if(StringUtils.isNotBlank(appId)){
sysUserService.updateAppIdNull(appId);
}
SysUser sysUser = sysUserService.selectByUserNameApp(userName);
if (sysUser == null) {
sysUser = sysUserService.selectByMobile(userName);
if (sysUser == null) {
return rb.setMsg("用户名或密码错误");
}
}
if (type.equals("1")) {
String md5 = Encodes.md5(password);
if (md5.equals(sysUser.getPassword())) {
if(StringUtils.isNotBlank(appId)){
sysUserService.updateAppId(sysUser.getSid(), appId);
}
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("用户名或密码错误");
}
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
} else {
String codeFromRedis = redisUtil.get("loginCode" + userName);
if (StringUtils.isBlank(codeFromRedis))
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送");
if (verifyCode.equals(codeFromRedis.substring(0, 4))) {
if(StringUtils.isNotBlank(appId)){
sysUserService.updateAppId(sysUser.getSid(), appId);
}
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("用户名或密码错误");
}
redisUtil.remove("loginCode" + userName);
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取");
}
}
} else {
SysUser sysUser = sysUserService.selectByAppId(appId);
if (null == sysUser) { // 未查询到绑定的账号
sysUser = sysUserService.selectByUserNameApp(userName);
if (sysUser == null) {
sysUser = sysUserService.selectByMobile(userName);
if (sysUser == null) {
return rb.setMsg("用户名或密码错误");
}
}
String appIdVal = sysUser.getAppId();
if (StringUtils.isBlank(appIdVal)) { // 设备值为空
if (type.equals("1")) {
String md5 = Encodes.md5(password);
if (md5.equals(sysUser.getPassword())) {
sysUserService.updateAppId(sysUser.getSid(), appId);
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("用户名或密码错误");
}
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
} else {
String codeFromRedis = redisUtil.get("loginCode" + userName);
if (StringUtils.isBlank(codeFromRedis))
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送");
if (verifyCode.equals(codeFromRedis.substring(0, 4))) {
sysUserService.updateAppId(sysUser.getSid(), appId);
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("用户名或密码错误");
}
redisUtil.remove("loginCode" + userName);
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取");
}
}
} else { // 设备值存在
int res = insertSysExceptionLog("b", JSON.toJSON(userQuery).toString(), "当前账号已被其它设备绑定");
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:" + res + ")");
}
} else { // 查询到绑定的账号
if (userName.equals(sysUser.getUserName()) || userName.equals(sysUser.getMobile())) { // 设备appId一致,验证用户名
if (type.equals("1")) {
String md5 = Encodes.md5(password);
if (md5.equals(sysUser.getPassword())) {
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("用户名或密码错误");
}
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("用户名或密码错误");
}
} else {
String codeFromRedis = redisUtil.get("loginCode" + userName);
if (StringUtils.isBlank(codeFromRedis))
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送");
if (verifyCode.equals(codeFromRedis.substring(0, 4))) {
SysUserVo sysUserVo = sysUserService.selectUser(sysUser);
if (sysUserVo == null) {
return rb.setMsg("该用户不是公司员工");
}
redisUtil.remove("loginCode" + userName);
insertLoginLog(sysUser);
return new ResultBean<SysUserVo>().success().setData(sysUserVo);
} else {
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取");
}
}
} else { // 用户名不一致
int res = insertSysExceptionLog("a", JSON.toJSON(userQuery).toString(), "当前设备已绑定其它账号");
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:" + res + ")");
}
}
}
}
/**
* 插入登录日志
*
* @param user
*/
private void insertLoginLog(SysUser user) {
// SystemLog systemLog = new SystemLog();
// systemLog.setUserName(user.getUserName());
// String ip = WebUtil.getIpAddr(httpServletRequest);
// systemLog.setUserIp(ip);
// systemLog.setEventUrl("portal/v1/appuser/login");
// systemLog.setEventContent("用户登录");
// systemLog.setEventName("用户登录");
// systemLogService.save(systemLog);
}
/**
* 手机发送短信验证码
*
* @param mobile
* @param type 1登录2修改密码3找回密码
* @param appId 绑定手机的appid
* @return
*/
@ApiOperation(value = "手机发送验证码(登录、修改密码、找回密码)")
@ResponseBody
@PostMapping("/sendVerificationCodeForApp")
public ResultBean sendVerificationCodeForApp(String mobile, String type, String appId) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
if (type.equals("1") && StringUtils.isBlank(appId)) {
return new ResultBean().fail().setMsg("appId不能为空");
}
// 登录、修改密码、重置密码先验证mobile与appId是否一致
// if(type.equals("1") && !appId.equals(sysUser.getAppId())){
// return new ResultBean().fail().setMsg("当前设备与账号不匹配,请解绑后再试");
// }
if (type.equals("2") || type.equals("3")) {
SysUser sysUser = sysUserService.selectByUserNameApp(mobile);
if (null == sysUser) {
sysUser = sysUserService.selectByMobile(mobile);
if (sysUser == null) {
return new ResultBean().fail().setMsg("该手机号暂时还未注册,请先注册");
}
}
} else { // 登录
SysUser sysUser = sysUserService.selectByAppId(appId);
if (sysUser == null) { // 设备未绑定账号
sysUser = sysUserService.selectByUserNameApp(mobile);
if (sysUser == null) {
sysUser = sysUserService.selectByMobile(mobile);
if (sysUser == null) {
return new ResultBean().fail().setMsg("该手机号暂时还未注册,请先注册");
}
}
/*if (StringUtils.isNotBlank(sysUser.getAppId())) {
Map<String, Object> map = new HashMap<>();
map.put("mobile", mobile);
map.put("appId", appId);
int res = insertSysExceptionLog("b", JSON.toJSON(map).toString(), "当前账号已被其它设备绑定");
return new ResultBean<SysUserVo>().fail().setMsg("当前账号已被其它设备绑定(错误码:" + res + ")");
}*/
} else { // 设备已绑定账号
/* if (!mobile.equals(sysUser.getMobile())) {
Map<String, Object> map = new HashMap<>();
map.put("mobile", mobile);
map.put("appId", appId);
int res = insertSysExceptionLog("a", JSON.toJSON(map).toString(), "当前设备已绑定其它账号");
return new ResultBean<SysUserVo>().fail().setMsg("当前设备已绑定其它账号(错误码:" + res + ")");
}*/
}
}
return sysUserService.sendVerificationCodeForApp(mobile, type);
}
/**
* 插入错误的信息
*
* @param operChar
* @param operArg
* @param remark
*/
private int insertSysExceptionLog(String operChar, String operArg, String remark) {
// SysExceptionLog sysExceptionLog = new SysExceptionLog();
// sysExceptionLog.setExceptionCode("M00001"); // 当前设备已绑定其它账号
// sysExceptionLog.setExceptionType("移动端登陆");
// sysExceptionLog.setOperChar(operChar);
// sysExceptionLog.setOperArg(operArg);
// sysExceptionLog.setRemark(remark);
// sysExceptionLogService.insert(sysExceptionLog);
return 1;
}
@ApiOperation(value = "我的信息")
@ResponseBody
@GetMapping("/getMyInfo/{userSid}")
public ResultBean getMyInfo(String userSid) {
if (StringUtils.isBlank(userSid)) return new ResultBean().fail().setMsg("userSid不能为空");
SysUserVo sysUserVo = sysUserService.fetchBySidVo(userSid);
if (null == sysUserVo) new ResultBean().fail().setMsg("信息错误");
AppMySysUserInfo userInfo = new AppMySysUserInfo();
String headImage = "";
if (StringUtils.isNotBlank(sysUserVo.getHeadImage())) {
headImage = fileUploadComponent.getUrlPrefix() + sysUserVo.getHeadImage();
}
userInfo.setHeadImage(headImage);
userInfo.setName(StringUtils.isBlank(sysUserVo.getName()) ? "" : sysUserVo.getName());
userInfo.setId("ID:" + sysUserVo.getId());
// Map<String, Object> map = new HashMap<>();
// map.put("headImage", StringUtils.isBlank(sysUserVo.getHeadImage())?"":sysUserVo.getHeadImage());
// map.put("name", StringUtils.isBlank(sysUserVo.getName())?"":sysUserVo.getName());
// map.put("ID", "ID:"+sysUserVo.getId()); // 是否为jobNumber,暂时为空
return new ResultBean().success().setData(userInfo);
}
@ApiOperation(value = "我的信息:切换机构")
@ResponseBody
@GetMapping("/getMyInfo")
public ResultBean getMyInfo(MyInfoQuery myInfoQuery) {
ResultBean rb = ResultBean.fireFail();
String userSid = myInfoQuery.getUserSid();
String orgPath = myInfoQuery.getOrgPath();
SysUserVo sysUserVo = sysUserService.fetchBySidVo(userSid);
if (null == sysUserVo) rb.setMsg("信息错误");
AppMySysUserInfo userInfo = new AppMySysUserInfo();
String headImage = "";
if (StringUtils.isNotBlank(sysUserVo.getHeadImage())) {
headImage = fileUploadComponent.getUrlPrefix() + sysUserVo.getHeadImage();
}
userInfo.setHeadImage(headImage);
userInfo.setName(StringUtils.isBlank(sysUserVo.getName()) ? "" : sysUserVo.getName());
userInfo.setId("ID:" + sysUserVo.getJobNumber());
//根据组织机构sid查询该用户的职位以及分公司的部门
List<String> strings = new ArrayList<>();
List<SysStaffOrg> list = sysUserService.selectOrgBySid(orgPath, sysUserVo.getStaffSid());
for (SysStaffOrg s : list) {
String orgSid = s.getOrgSid();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
// String orgName = s.getOrgName();
strings.add(sysOrganization.getName());
}
strings.removeAll(Collections.singleton(null));
if (!strings.isEmpty()) {
userInfo.setDepartment(String.join("|", strings));
}
String isAdmin = "";
SysUser sysUser = sysUserService.fetchBySid(userSid);
if(sysUser != null){
isAdmin = sysUser.getIsAdmin();
}
if("1".equals(isAdmin)){
String roleName = sysRoleService.selectByUserSid(userSid);
userInfo.setPosition(roleName);
}else{
//根据用户sid查询岗位
List<String> stringList = sysUserService.getPost(sysUserVo.getStaffSid());
stringList.removeAll(Collections.singleton(null));
if (!stringList.isEmpty()) {
userInfo.setPosition(String.join("|", stringList));
}
}
return new ResultBean().success().setData(userInfo);
}
@ApiOperation(value = "手机更改密码")
@ResponseBody
@PostMapping("/updatePassword")
public ResultBean<SysUserVo> updatePassword(String userSid, String appId, String oldPassword, String newPassword, HttpServletRequest httpServletRequest) {
ResultBean<SysUserVo> rb = ResultBean.fireFail();
String token = httpServletRequest.getHeader("token");
SysUser user = sysUserService.fetchBySid(userSid);
if (user == null) {
return rb.setMsg("抱歉,用户不存在");
}
if (!appId.equals(user.getAppId())) {
return rb.setMsg("当前设备与账号不匹配,请解绑后再试");
}
return sysUserService.updatePasswordApp(user, oldPassword, newPassword, token);
}
@ApiOperation(value = "手机找回密码验证验证码")
@ResponseBody
@PostMapping("/checkResetPwdCode")
public ResultBean checkResetPwdCode(String resetPwdCode, String mobile) {
if (StringUtils.isBlank(resetPwdCode)) return new ResultBean().fail().setMsg("验证码不能为空");
String codeFromRedis = redisUtil.get("resetPwdCode" + mobile);
if (StringUtils.isBlank(codeFromRedis)) return new ResultBean<SysUserVo>().fail().setMsg("短信验证码已失效,请重新发送");
if (resetPwdCode.equals(codeFromRedis.substring(0, 4))) {
redisUtil.remove("resetPwdCode" + mobile);
return new ResultBean<SysUserVo>().success();
} else {
return new ResultBean<SysUserVo>().fail().setMsg("短信验证码错误或已失效,请重新获取");
}
}
@ApiOperation(value = "手机端找回密码")
@ResponseBody
@PostMapping("/resetPwd")
public ResultBean resetPwdApp(String mobile, String newPwd, HttpServletRequest httpServletRequest) {
String token = httpServletRequest.getHeader("token");
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile))
return new ResultBean().fail().setMsg("请输入正确的手机号");
if (StringUtils.isBlank(newPwd)) return new ResultBean().fail().setMsg("请输入密码");
return sysUserService.resetPwdApp(mobile, newPwd, token);
}
@ApiOperation(value = "手机修改用户头像")
@ResponseBody
@PostMapping("/updateHeadImage")
public ResultBean updateHeadImage(MultipartFile multipartFile, String userSid) {
SysUser user = sysUserService.fetchBySid(userSid);
if (user == null) return new ResultBean().fail().setMsg("抱歉,用户不存在");
if (multipartFile.isEmpty()) {
return new ResultBean().fail().setMsg("上传图片不能为空");
}
String filename = multipartFile.getOriginalFilename();
String suffix = filename.substring(filename.lastIndexOf("."));
if (!suffix.equals(".jpg") && !suffix.equals(".jpeg") && !suffix.equals(".png") && !suffix.equals(".bmp") && !suffix.equals(".tif") && !suffix.equals(".gif")) {
return new ResultBean().fail().setMsg("图片格式不正确");
}
return sysUserService.updateHeadImage(multipartFile, user);
}
/**
* 手机端根据token获取userSid
*
* @return
*/
@ApiOperation(value = "手机端根据token获取userSid")
@ResponseBody
@PostMapping("/getUserSidByToken")
public ResultBean<String> getUserSidByToken(String token) {
DecodedJWT decode = JWT.decode(token.substring(3));
String userSid = JWTUtil.getUserSid(decode);
if (StringUtils.isBlank(userSid)) {
return new ResultBean().fail().setMsg("用户sid不能为空");
} else {
return new ResultBean<String>().success().setData(userSid);
}
}
@ApiOperation(value = "解绑某个用户或解绑所有的用户")
@ResponseBody
@PutMapping("/updateAppId")
public ResultBean updateAppId(String mobile) {
return sysUserService.updateAppIdByMobile(mobile);
}
// @ApiOperation(value = "移动端:查询该菜单是否允许创建,是否有提醒消息")
// @GetMapping(value = "/selectAppHaveMessage")
// public ResultBean selectAppHaveMessage(String menuSid, String orgPath) {
// return sysUserService.selectAppHaveMessage(menuSid,orgPath);
// }
// 解绑设备关联的账号
// 解绑账号绑定的设备
}

578
src/main/java/com/yxt/portal/apiwx/WxSysUserRest.java

@ -0,0 +1,578 @@
package com.yxt.portal.apiwx;
import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.*;
import com.yxt.common.core.result.ResultBean;
import com.yxt.portal.biz.sysorganization.SysOrganization;
import com.yxt.portal.biz.sysorganization.SysOrganizationService;
import com.yxt.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.portal.biz.sysuser.SysUser;
import com.yxt.portal.biz.sysuser.SysUserService;
import com.yxt.portal.biz.sysuser.wx.*;
import com.yxt.portal.config.DictCommonType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author dimengzhe
* @date 2021/10/5 13:09
* @description 客户端用户接口
*/
@Controller
@RequestMapping("apiwx/wxuser")
@Api(tags = "用户表-小程序端")
public class WxSysUserRest{
@Autowired
private SysUserService sysUserService;
@Autowired
private SysStaffinfoService sysStaffinfoService;
@Autowired
private RedisUtil redisUtil;
@Autowired
private SysOrganizationService sysOrganizationService;
@Autowired
private HttpServletRequest request;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private HttpServletRequest httpServletRequest;
/**
* 调用发送短信接口返回值
*/
static final String RESULT_CODE = "1";
/**
* @param mobile 手机号
* @param type 类型:1注册2登录 3忘记密码4旧手机号获取验证码5新手机号
* @description: 获取验证码(按类型区分是哪块验证码)
* @return:
* @Author: dimengzhe
* @Date: 2021/10/9 9:12
*/
@ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", required = true),
@ApiImplicitParam(name = "type", value = "类型:1、注册,2、登录 3、忘记密码 4、旧手机号获取验证码、5新手机号", required = true),
})
@ApiOperation(value = "获取验证码(1、注册,2、登录 3、忘记密码)")
@GetMapping("/sendMessageCode")
@ResponseBody
public ResultBean sendMessageCode(String mobile, String type) {
//1、注册,2、登录 3、忘记密码
ResultBean rb = ResultBean.fireFail();
//验证手机号是否正确
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return rb.setMsg("请输入正确的手机号");
}
if ("2".equals(type) || "3".equals(type)) {
//查询该手机号是否已注册
SysUser sysUser = sysUserService.selectByMobileAndType(mobile, 2);
if (null == sysUser) {
return rb.setMsg("该手机号还未注册或已被停用");
}
}
if ("4".equals(type)) {
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token.substring(2, token.length()));
String userSid = JWTUtil.getUserSid(decodedJWT);
SysUser sysUser = sysUserService.fetchBySid(userSid);
if (sysUser == null) {
return rb.setMsg("请登录");
}
if (!sysUser.getUserName().equals(mobile)) {
return rb.setMsg("手机号错误");
}
}
//验证是否已注册
if ("5".equals(type)) {
SysUser sysUser = sysUserService.selectByMobileAndType(mobile, 2);
if (sysUser != null) {
return rb.setMsg("该手机号已注册");
}
}
String verificationCode = "";
return sysUserService.getWxVerificationCode(mobile, verificationCode, type);
}
/**
* @param wxSysUserLoginQuery 数据传输对象
* @description: 免密码登录账号密码登录
* @return:
* @Author: dimengzhe
* @Date: 2021/10/9 9:15
*/
@ApiOperation(value = "登录")
@ResponseBody
@PostMapping("/login")
public ResultBean<WxSysUserVo> login(WxSysUserLoginQuery wxSysUserLoginQuery) {
WxSysUserVo wxSysUserVo = new WxSysUserVo();
ResultBean rb = ResultBean.fireFail();
String type = wxSysUserLoginQuery.getType();//手机登录类型:1、密码登录,2、验证码登录
String verifyCode = wxSysUserLoginQuery.getVerifyCode();//验证码
String password = wxSysUserLoginQuery.getPassword();//密码
String userName = wxSysUserLoginQuery.getUserName();
if ("1".equals(type)) {//密码登录
if (StringUtils.isBlank(password)) {
return rb.setMsg("密码不能为空");
}
} else if ("2".equals(type)) {//验证码登录
if (StringUtils.isBlank(verifyCode)) {
return rb.setMsg("验证码不能为空");
}
}
SysUser sysUser = sysUserService.selectByMobileAndType(userName, 2);
if (null == sysUser) {
return rb.setMsg("账号不存在或已被停用");
}
if ("1".equals(type)) {//密码登录
String md5 = Encodes.md5(password);
if (md5.equals(sysUser.getPassword())) {//匹配
wxSysUserVo = sysUserService.selectByWxUserName(userName, 2);
} else {
return rb.setMsg("用户名或密码错误");
}
} else if ("2".equals(type)) {//验证码登录
String redisCode = redisUtil.get(DictCommonType.WX_LOGIN + userName);
if (StringUtils.isBlank(redisCode)) {
return rb.setMsg("短信验证码错误或已失效,请重新获取");
}
if (verifyCode.equals(redisCode.substring(0, 4))) {
wxSysUserVo = sysUserService.selectByWxUserName(userName, 2);
redisUtil.remove(DictCommonType.WX_LOGIN + userName);
} else {
return rb.setMsg("短信验证码错误或已失效,请重新获取");
}
}
return new ResultBean<WxSysUserVo>().success().setData(wxSysUserVo);
}
/**
* @param wxSysUserDto 数据传输对象
* @description: 客户端注册
* @return:
* @Author: dimengzhe
* @Date: 2021/10/9 9:21
*/
@ApiOperation(value = "注册")
@ResponseBody
@PostMapping("/registsUser")
public ResultBean registsUser(WxSysUserDto wxSysUserDto) {
ResultBean rb = ResultBean.fireFail();
String mobile = wxSysUserDto.getMobile();//手机号
String idNo = wxSysUserDto.getIdNo();//身份证号
String verificationCode = wxSysUserDto.getVerificationCode();//验证码
String name = wxSysUserDto.getName();//姓名
String result = "";
//判断身份证号是否正确
try {
if (StringUtils.isNotBlank(RegexUtil.IDCardValidate(idNo))) {
return rb.setMsg(RegexUtil.IDCardValidate(idNo));
}
} catch (ParseException e) {
e.printStackTrace();
}
//判断是否已注册
int userType = 2;//用户类型
SysUser sysUser = sysUserService.selectByMobileAndType(mobile, userType);
if (sysUser != null) {
return rb.setMsg("该手机号已注册");
}
//验证码是否正确
Map<String, Object> map = sysUserService.mobileValidateWxRegister(mobile, verificationCode);
String code = map.get("code").toString();
boolean isSave = false;
if (Tools.CODE_SUCCESS.equals(code)) {
//需验证手机号+姓名+身份证号是否匹配
WxSysUserRegistQuery wxSysUserRegistQuery = new WxSysUserRegistQuery();
wxSysUserRegistQuery.setMobile(mobile);
wxSysUserRegistQuery.setName(name);
wxSysUserRegistQuery.setIdcard(idNo);
try {
ResultBean resultBean = isTr2(wxSysUserRegistQuery);
if (!resultBean.getSuccess()) {
return ResultBean.fireFail().setMsg(resultBean.getMsg());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
SysUser sysUser1 = new SysUser();
sysUser1.setUserName(mobile);
sysUser1.setMobile(mobile);
sysUser1.setUserType(userType);
String password = mobile.substring(5, 11);
String md5 = Encodes.md5(password);
sysUser1.setPassword(md5);
//查询客户表中身份证号是否存在,若存在直接更新客户信息。若不存在,则根据姓名和手机号查询,
// 若存在,则更新身份证号,若不存在,则直接创建客户信息
// WxCrmCustomerQuery wxCrmCustomerQuery = new WxCrmCustomerQuery();
// wxCrmCustomerQuery.setMobile(mobile);
// wxCrmCustomerQuery.setName(name);
// wxCrmCustomerQuery.setIdNo(idNo);
// //查询最大一级的组织机构
// SysOrganization sysOrganization = sysOrganizationService.selectOrgCode();
// if (StringUtils.isBlank(sysOrganization.getOrgCode())) {
// wxCrmCustomerQuery.setOrgCode("" + 1);
// wxCrmCustomerQuery.setOrgSid(sysOrganization.getSid());
// } else {
// wxCrmCustomerQuery.setOrgSid(sysOrganization.getSid());
// wxCrmCustomerQuery.setOrgCode(sysOrganization.getOrgCode() + 1);
// }
//
// ResultBean resultBean = crmCustomerFeign.wxSaveCustomer(wxCrmCustomerQuery);
// sysUser1.setStaffSid(resultBean.getData().toString());
sysUser1.setHeadImage("http://120.46.131.15:8111/upload/appImage/headImage.jpg");
isSave = sysUserService.save(sysUser1);
String regiMsg = "客户端账号为:" + mobile + "的账号,已注册成功,登录密码为" + password;
result = MsgWs.SendWaitWorkMsg(mobile, regiMsg);
} else {
return ResultBean.fireFail().setMsg(map.get("details").toString());
}
if (!isSave) {
return ResultBean.fireSuccess().setMsg("注册失败");
}
if (!RESULT_CODE.equals(result)) {
return ResultBean.fireFail().setMsg("注册成功,未发送密码");
}
return ResultBean.fireSuccess().setMsg("注册成功");
}
/**
* @param userSid 用户sid
* @description: 客户端获取我的信息
* @return: 头像+保密后的姓名
* @Author: dimengzhe
* @Date: 2021/10/6 12:19
*/
@ApiOperation(value = "我的信息")
@ResponseBody
@GetMapping("/myInfo/{userSid}")
public ResultBean<WxMySysUserInfoVo> selectMyInfo(String userSid) {
ResultBean rb = ResultBean.fireFail();
SysUser sysUser = sysUserService.fetchBySid(userSid);
if (null == sysUser) {
return rb.setMsg("该用户不存在");
}
WxMySysUserInfoVo infoVo = sysUserService.selectMyInfo(userSid);
// ResultBean<CrmCustomer> resultBean = crmCustomerFeign.selectBySid(sysUser.getStaffSid());
// if (resultBean.getSuccess()) {
// infoVo.setName(resultBean.getData().getName());
// }
if (StringUtils.isBlank(infoVo.getHeadImage())) {
//默认头像
infoVo.setHeadImage("http://120.46.131.15:8111/upload/appImage/headImage.jpg");
} else {
infoVo.setHeadImage(fileUploadComponent.getUrlPrefix() + infoVo.getHeadImage());
}
return rb.success().setData(infoVo);
}
@ApiOperation(value = "首页")
@ResponseBody
@GetMapping("/selectHomePage/{userSid}")
public ResultBean<WxHomePageVo> selectHomePage(String userSid) {
ResultBean rb = ResultBean.fireFail();
SysUser sysUser = sysUserService.fetchBySid(userSid);
if (null == sysUser) {
return rb.setMsg("该用户不存在");
}
boolean isHave = false;
WxHomePageVo wxHomePageVo = sysUserService.selectHomePage(userSid);
// ResultBean<CrmCustomer> resultBean = crmCustomerFeign.selectBySid(wxHomePageVo.getStaffSid());
// if (resultBean.getSuccess()) {
// wxHomePageVo.setIdTerm(resultBean.getData().getEndDate());
// }
if (StringUtils.isBlank(wxHomePageVo.getHeadImage())) {
//默认头像
wxHomePageVo.setHeadImage("http://120.46.131.15:8111/upload/appImage/headImage.jpg");
} else {
wxHomePageVo.setHeadImage(fileUploadComponent.getUrlPrefix() + wxHomePageVo.getHeadImage());
}
//2018.08.24-2038.08.24
/*String idTerm = wxHomePageVo.getIdTerm();
List<String> split = Arrays.asList(idTerm.split("-"));
if (split.size() == 2) {
String idTermEnd = split.get(1);
String date = idTermEnd.replace('.', '-');
int days = days(date);
if (days == 30 || days == 60) {
isHave = true;
wxHomePageVo.setMessage("您的身份证将在" + days + "天后到期,请及时更新信息");
}
}*/
wxHomePageVo.setIsHave(isHave);
return new ResultBean<WxHomePageVo>().success().setData(wxHomePageVo);
}
@ApiOperation(value = "客户端验证验证码是否正确")
@ResponseBody
@PostMapping("/checkResetPwdCode")
@ApiImplicitParams({
@ApiImplicitParam(name = "code", value = "验证码", required = true),
@ApiImplicitParam(name = "mobile", value = "手机号", required = true),
@ApiImplicitParam(name = "type", value = "类型:1、找回密码 2、验证旧手机号的验证码、3、验证新手机好的验证码", required = true)
})
public ResultBean checkResetPwdCode(String code, String mobile, String type) {
ResultBean rb = ResultBean.fireFail();
String key = "";
if (!"1".equals(type) && !"2".equals(type) && !"3".equals(type)) {
return rb.setMsg("类型错误");
}
if ("1".equals(type)) {
key = DictCommonType.WX_FORGET + mobile;
} else if ("2".equals(type)) {
key = DictCommonType.WX_UPDATE + mobile;
} else if ("3".equals(type)) {
key = DictCommonType.WX_NEW + mobile;
}
String keyOne = redisUtil.get(key);
String redisCode = redisUtil.get(key).substring(0, 4);
// 判断验证码是否失效
if (StringUtils.isEmpty(redisCode)) {
return rb.setMsg("验证码失效");
} else if (!"".equals(redisCode) && !code.equals(redisCode)) {
return rb.setMsg("验证码错误");
}
return rb.success();
}
/**
* @param mobile 手机号
* @param newPwd 新密码
* @description: 客户端找回密码
* @return:
* @Author: dimengzhe
* @Date: 2021/10/9 9:21
*/
@ApiOperation(value = "客户端找回密码")
@ResponseBody
@PostMapping("/resetPwd")
public ResultBean resetPwdWx(String mobile, String newPwd) {
if (StringUtils.isBlank(mobile) || !RegexUtil.isMobile(mobile)) {
return new ResultBean().fail().setMsg("请输入正确的手机号");
}
if (StringUtils.isBlank(newPwd)) {
return new ResultBean().fail().setMsg("请输入密码");
}
return sysUserService.resetPwdWx(mobile, newPwd);
}
@ApiOperation(value = "根据用户sid查询用户信息")
@ResponseBody
@PostMapping("/selectBySid")
public ResultBean<SysUser> selectBySid(String sid) {
SysUser sysUser = sysUserService.fetchBySid(sid);
if (sysUser == null) {
sysUser = new SysUser();
return new ResultBean<SysUser>().fail().setData(sysUser).setMsg("用户不存在");
}
return new ResultBean<SysUser>().success().setData(sysUser);
}
/**
* @param end 结束日期
* @description: 计算两个日期相差多少天
* @return:
* @Author: dimengzhe
* @Date: 2021/10/12 14:36
*/
private int days(String end) {
int i = 0;
DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
try {
Date star = new Date();//开始时间
Date endDay = dft.parse(end);//结束时间
Date nextDay = star;
while (nextDay.before(endDay)) {//当明天不在结束时间之前是终止循环
Calendar cld = Calendar.getInstance();
cld.setTime(star);
cld.add(Calendar.DATE, 1);
star = cld.getTime();
//获得下一天日期字符串
nextDay = star;
i++;
}
System.out.println("相差天数为:" + i);
} catch (ParseException e) {
e.printStackTrace();
}
return i;
}
public ResultBean isTr2(WxSysUserRegistQuery wxSysUserRegistQuery) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
String result = "";
String msg = "";
//云市场分配的密钥Id
String secretId = "AKID7rl35uAlxzadzo1I299iEiYnMH111I0beWu";
//云市场分配的密钥Key
String secretKey = "atdsoC8Q2fjuhf31agmub4g8fzh93n8V9yoXQJtk";
String source = "market";
Calendar cd = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String datetime = sdf.format(cd.getTime());
// 签名
String auth = calcAuthorization(source, secretId, secretKey, datetime);
// 请求方法
String method = "GET";
// 请求头
Map<String, String> headers = new HashMap<String, String>();
headers.put("X-Source", source);
headers.put("X-Date", datetime);
headers.put("Authorization", auth);
// 查询参数
Map<String, String> queryParams = new HashMap<String, String>();
queryParams.put("idCard", wxSysUserRegistQuery.getIdcard());
queryParams.put("mobile", wxSysUserRegistQuery.getMobile());
queryParams.put("realName", wxSysUserRegistQuery.getName());
// body参数
Map<String, String> bodyParams = new HashMap<String, String>();
// url参数拼接
String url = "https://service-08ijl3bf-1301232119.bj.apigw.tencentcs.com/release/phonecheck";
if (!queryParams.isEmpty()) {
url += "?" + urlencode(queryParams);
}
BufferedReader in = null;
try {
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setRequestMethod(method);
// request headers
for (Map.Entry<String, String> entry : headers.entrySet()) {
conn.setRequestProperty(entry.getKey(), entry.getValue());
}
// request body
Map<String, Boolean> methods = new HashMap<>();
methods.put("POST", true);
methods.put("PUT", true);
methods.put("PATCH", true);
Boolean hasBody = methods.get(method);
if (hasBody != null) {
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoOutput(true);
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(urlencode(bodyParams));
out.flush();
out.close();
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
System.out.println(result);
} catch (Exception e) {
System.out.println(e);
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
//判断result
JSONObject object = JSONObject.parseObject(result);
Map<String, Object> map = JSONObject.parseObject(object.toJSONString(), new TypeReference<Map<String, Object>>() {
});
int code = ConstantUtils.getInteger(map, "error_code");
if (code == 0) {
Map<String, Object> mapo = ConstantUtils.getMap(map, "result");
String VerificationResult = mapo.get("VerificationResult").toString();
if ("1".equals(VerificationResult)) {
msg = "信息匹配";
} else if ("-1".equals(VerificationResult)) {
return ResultBean.fireFail().setMsg("信息不匹配");
} else if ("0".equals(VerificationResult)) {
return ResultBean.fireFail().setMsg("运营商系统中无记录");
}
} else {
return ResultBean.fireFail().setMsg(ConstantUtils.getString(map, "reason", "错误"));
}
return ResultBean.fireSuccess().setMsg(msg);
}
public static String calcAuthorization(String source, String secretId, String secretKey, String datetime)
throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
String signStr = "x-date: " + datetime + "\n" + "x-source: " + source;
Mac mac = Mac.getInstance("HmacSHA1");
Key sKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), mac.getAlgorithm());
mac.init(sKey);
byte[] hash = mac.doFinal(signStr.getBytes("UTF-8"));
String sig = Base64.encode(hash);
String auth = "hmac id=\"" + secretId + "\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"" + sig + "\"";
return auth;
}
public static String urlencode(Map<?, ?> map) throws UnsupportedEncodingException {
StringBuilder sb = new StringBuilder();
for (Map.Entry<?, ?> entry : map.entrySet()) {
if (sb.length() > 0) {
sb.append("&");
}
sb.append(String.format("%s=%s",
URLEncoder.encode(entry.getKey().toString(), "UTF-8"),
URLEncoder.encode(entry.getValue().toString(), "UTF-8")
));
}
return sb.toString();
}
}

1
src/main/java/com/yxt/portal/biz/sysrole/SysRole.java

@ -46,4 +46,5 @@ public class SysRole extends BaseEntity {
@ApiModelProperty(value = "角色组织层级value") @ApiModelProperty(value = "角色组织层级value")
private String roleTypeValue; private String roleTypeValue;
private String orgSid; private String orgSid;
private String dataRuleId;
} }

2
src/main/java/com/yxt/portal/biz/sysrole/SysRoleVo.java

@ -44,4 +44,6 @@ public class SysRoleVo implements Vo {
private String postName; private String postName;
@ApiModelProperty(value = "组织层级") @ApiModelProperty(value = "组织层级")
private String roleTypeValue; private String roleTypeValue;
private String dataRuleId;
private String dataRuleValue;
} }

117
src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoDetailsVo.java

@ -1,11 +1,18 @@
package com.yxt.portal.biz.sysstaffinfo; package com.yxt.portal.biz.sysstaffinfo;
import com.yxt.portal.biz.sysrole.SysRole;
import com.yxt.portal.biz.sysrole.SysRoleVo;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgDetailsVo; import com.yxt.portal.biz.sysstafforg.SysStaffOrgDetailsVo;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostDetailsVo; import com.yxt.portal.biz.sysstaffpost.SysStaffPostDetailsVo;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import com.yxt.portal.biz.sysuserrole.SysUserRole;
import com.yxt.portal.biz.sysuserrole.SysUserRoleVo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List;
/** /**
* @Author dimengzhe * @Author dimengzhe
* @Date 2022/2/11 16:12 * @Date 2022/2/11 16:12
@ -14,72 +21,41 @@ import lombok.Data;
@Data @Data
public class SysStaffinfoDetailsVo implements Vo { public class SysStaffinfoDetailsVo implements Vo {
private static final long serialVersionUID = 1232171677690215067L; private static final long serialVersionUID = 1232171677690215067L;
private String sid;
@ApiModelProperty(value = "工号") @ApiModelProperty("工号")
private String jobNumber; private String jobNumber;
@ApiModelProperty("姓名")
@ApiModelProperty(value = "姓名")
private String name; private String name;
@ApiModelProperty(value = "性别key")
private Integer genderKey;
@ApiModelProperty(value = "性别") @ApiModelProperty(value = "性别")
private String gender; private String gender;
@ApiModelProperty(value = "身份证号") @ApiModelProperty("身份证号")
private String idNo; private String idNo;
@ApiModelProperty(value = "证件有效期") @ApiModelProperty("证件有效期")
private String idTerm; private String idTerm;
@ApiModelProperty("生日") @ApiModelProperty("生日")
private String birthday; private Date birthday;
@ApiModelProperty(value = "民族") @ApiModelProperty("民族")
private String national; private String national;
@ApiModelProperty(value = "民族key")
private String nationalKey;
@ApiModelProperty("籍贯") @ApiModelProperty("籍贯")
private String nativePlace; private String nativePlace;
@ApiModelProperty(value = "省")
private String province;
@ApiModelProperty(value = "市")
private String city;
@ApiModelProperty(value = "县区")
private String county;
@ApiModelProperty(value = "省code")
private String provinceCode;
@ApiModelProperty(value = "市code")
private String cityCode;
@ApiModelProperty(value = "县区code")
private String countyCode;
@ApiModelProperty("住址") @ApiModelProperty("住址")
private String address; private String address;
@ApiModelProperty(value = "手机号") @ApiModelProperty("手机号")
private String mobile; private String mobile;
@ApiModelProperty("邮箱") @ApiModelProperty("邮箱")
private String email; private String email;
@ApiModelProperty(value = "紧急联系人")
private String emergencyContact;
@ApiModelProperty(value = "紧急联系电话")
private String emergencyMobile;
@ApiModelProperty("政治面貌")
private String poliCode;
@ApiModelProperty(value = "政治面貌key")
private String poliCodeKey;
@ApiModelProperty("婚姻状况") @ApiModelProperty("婚姻状况")
private String maritalStatus; private String maritalStatus;
@ApiModelProperty("婚姻状况key")
private String maritalStatusKey;
@ApiModelProperty("员工类型(无类型、全职、兼职、实习、劳务派遣、退休返聘、劳务外包)") @ApiModelProperty("员工类型(无类型、全职、兼职、实习、劳务派遣、退休返聘、劳务外包)")
private String personType; private String personType;
@ApiModelProperty("员工类型key")
private String personTypeKey;
@ApiModelProperty("入职时间") @ApiModelProperty("入职时间")
private String joinCompnyDate; private Date joinCompnyDate;
@ApiModelProperty("试用期(无试用期、1个月、2个月、3个月、其他)") @ApiModelProperty("试用期(无试用期、1个月、2个月、3个月、其他)")
private String probPeriod; private String probPeriod;
@ApiModelProperty("试用期key")
private String probPeriodKey;
@ApiModelProperty("计划转正日期") @ApiModelProperty("计划转正日期")
private String plannedConfirmDate; private Date plannedConfirmDate;
@ApiModelProperty("实际转正日期") @ApiModelProperty("实际转正日期")
private String confirmationDate; private Date confirmationDate;
@ApiModelProperty("银行卡号") @ApiModelProperty("银行卡号")
private String bankCardNo; private String bankCardNo;
@ApiModelProperty("开户行") @ApiModelProperty("开户行")
@ -98,58 +74,9 @@ public class SysStaffinfoDetailsVo implements Vo {
private String photo; private String photo;
@ApiModelProperty(value = "员工部门信息") @ApiModelProperty(value = "员工部门信息")
private SysStaffOrgDetailsVo sysStaffOrg; private SysStaffOrgDetailsVo sysStaffOrg;
@ApiModelProperty(value = "员工岗位信息") private List<SysUserRoleVo> sysUserRoles;
private SysStaffPostDetailsVo sysStaffPost;
//===========================================// private String accountType;//账号类型 1单位管理员,2操作员,0是平台管理员 3非登录账户
@ApiModelProperty(value = "毕业院校") private String userType;//用户类型:1员工、2客户、3供应商
private String graduate; private List<SysRoleVo> sysRoleVos;//
@ApiModelProperty(value = "学历/专业")
private String education;
@ApiModelProperty(value = "职称")
private String title;
@ApiModelProperty(value = "资格认证")
private String qualification;
@ApiModelProperty(value = "驾照类型")
private String licenseType;
@ApiModelProperty(value = "驾照类型key")
private String licenseTypeKey;
@ApiModelProperty(value = "意外险参保:1是,0否")
private Integer isHaveInsurance;
@ApiModelProperty(value = "意外险参保:1是,0否")
private String isHaveInsuranceValue;
@ApiModelProperty(value = "意外险参保时间")
private String insuranceStartDate;
@ApiModelProperty(value = "意外险参保终止日期")
private String insuranceEndDate;
@ApiModelProperty(value = "意外险参保地")
private String insuranceAddr;
@ApiModelProperty(value = "养老:1是,0否")
private Integer isHaveAged;
@ApiModelProperty(value = "养老:1是,0否")
private String isHaveAgedValue;
@ApiModelProperty(value = "医疗:1是,0否")
private Integer isHaveMedical;
@ApiModelProperty(value = "医疗:1是,0否")
private String isHaveMedicalValue;
@ApiModelProperty(value = "工伤:1是,0否")
private Integer isHaveInjury;
@ApiModelProperty(value = "工伤:1是,0否")
private String isHaveInjuryValue;
@ApiModelProperty(value = "失业:1是,0否")
private Integer isHaveUnemploy;
@ApiModelProperty(value = "失业:1是,0否")
private String isHaveUnemployValue;
@ApiModelProperty(value = "社保参保地")
private String insuredPlace;
@ApiModelProperty(value = "纸质档案保管地")
private String paperPlace;
@ApiModelProperty(value = "合同起止日期")
private String contractStartDate;
@ApiModelProperty(value = "合同结束日期")
private String contractEndDate;
@ApiModelProperty(value = "离职日期")
private String quitDate;
@ApiModelProperty(value = "离职原因")
private String quitReason;
} }

10
src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoDto.java

@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgDto; import com.yxt.portal.biz.sysstafforg.SysStaffOrgDto;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostDto; import com.yxt.portal.biz.sysstaffpost.SysStaffPostDto;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import com.yxt.portal.biz.sysuserrole.SysUserRole;
import com.yxt.portal.biz.sysuserrole.SysUserRoleDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -12,6 +14,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* Project: anrui_portal(门户建设) <br/> * Project: anrui_portal(门户建设) <br/>
@ -133,7 +136,8 @@ public class SysStaffinfoDto implements Dto {
private SysStaffOrgDto sysStaffOrg; private SysStaffOrgDto sysStaffOrg;
@ApiModelProperty(value = "员工岗位信息") @ApiModelProperty(value = "员工岗位信息")
private SysStaffPostDto sysStaffPost; private SysStaffPostDto sysStaffPost;
@ApiModelProperty(value = "员工角色信息")
private List<SysUserRoleDto> sysUserRoles;
//========================================// //========================================//
@ApiModelProperty(value = "毕业院校") @ApiModelProperty(value = "毕业院校")
private String graduate; private String graduate;
@ -182,5 +186,7 @@ public class SysStaffinfoDto implements Dto {
private Date quitDate; private Date quitDate;
@ApiModelProperty(value = "离职原因") @ApiModelProperty(value = "离职原因")
private String quitReason; private String quitReason;
private String accountType;//账号类型 1单位管理员,2操作员,0是平台管理员 3非登录账户
private String userType;//用户类型:1员工、2客户、3供应商
private String orgSid;
} }

94
src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml

@ -143,12 +143,11 @@
<!--根据员工sid查询员工信息--> <!--根据员工sid查询员工信息-->
<select id="selectDetailsBySid" resultType="com.yxt.portal.biz.sysstaffinfo.SysStaffinfoDetailsVo"> <select id="selectDetailsBySid" resultType="com.yxt.portal.biz.sysstaffinfo.SysStaffinfoDetailsVo">
select select
sid,
<!--工号--> <!--工号-->
jobNumber, jobNumber,
<!--姓名--> <!--姓名-->
name, name,
<!--性别key-->
genderKey,
<!--性别--> <!--性别-->
gender, gender,
<!--身份证号--> <!--身份证号-->
@ -159,50 +158,22 @@
DATE_FORMAT(birthday, '%Y-%m-%d') as birthday, DATE_FORMAT(birthday, '%Y-%m-%d') as birthday,
<!--民族--> <!--民族-->
national, national,
<!--民族key-->
nationalKey,
<!--籍贯--> <!--籍贯-->
nativePlace, nativePlace,
<!---->
province,
<!---->
city,
<!--县区-->
county,
<!--省code-->
provinceCode,
<!--市code-->
cityCode,
<!--县区code-->
countyCode,
<!--住址--> <!--住址-->
address, address,
<!--手机号--> <!--手机号-->
mobile, mobile,
<!--邮箱--> <!--邮箱-->
email, email,
<!--紧急联系人-->
emergencyContact,
<!--紧急联系电话-->
emergencyMobile,
<!--政治面貌-->
poliCode,
<!--政治面貌key-->
poliCodeKey,
<!--婚姻状况--> <!--婚姻状况-->
maritalStatus, maritalStatus,
<!--婚姻状况key-->
maritalStatusKey,
<!--员工类型--> <!--员工类型-->
personType, personType,
<!--员工类型key-->
personTypeKey,
<!--入职时间--> <!--入职时间-->
DATE_FORMAT(joinCompnyDate, '%Y-%m-%d') as joinCompnyDate, DATE_FORMAT(joinCompnyDate, '%Y-%m-%d') as joinCompnyDate,
<!--试用期--> <!--试用期-->
probPeriod, probPeriod,
<!--试用期key-->
probPeriodKey,
<!--计划转正日期--> <!--计划转正日期-->
DATE_FORMAT(plannedConfirmDate, '%Y-%m-%d') as plannedConfirmDate, DATE_FORMAT(plannedConfirmDate, '%Y-%m-%d') as plannedConfirmDate,
<!--实际转正日期--> <!--实际转正日期-->
@ -232,70 +203,9 @@
<!--NULLIF(CONCAT(#{path}, leaveCertificate) as leaveCertificate,leaveCertificate),--> <!--NULLIF(CONCAT(#{path}, leaveCertificate) as leaveCertificate,leaveCertificate),-->
<!--when leaveCertificate is null then leaveCertificate else concat(#{path}, leaveCertificate) as leaveCertificate end,--> <!--when leaveCertificate is null then leaveCertificate else concat(#{path}, leaveCertificate) as leaveCertificate end,-->
<!--员工照片--> <!--员工照片-->
IF(photo = "", photo, CONCAT(#{path}, photo)) AS photo, IF(photo = "", photo, CONCAT(#{path}, photo)) AS photo
<!--NULLIF(CONCAT(#{path}, photo) as photo,photo),--> <!--NULLIF(CONCAT(#{path}, photo) as photo,photo),-->
<!--when photo is null then photo else concat(#{path}, photo) as photo end,--> <!--when photo is null then photo else concat(#{path}, photo) as photo end,-->
<!--毕业院校-->
graduate,
<!--学历/专业-->
education,
educationKey,
<!--职称-->
title,
<!--资格认证-->
qualification,
<!--驾照类型-->
licenseType,
<!--驾照类型key-->
licenseTypeKey,
<!--意外险参保:1是,0否-->
isHaveInsurance,
<!--意外险参保:1是,0否-->
case isHaveInsurance
when 1 then '是'
when 0 then '否' end as isHaveInsuranceValue,
<!--意外险参保时间-->
DATE_FORMAT(insuranceStartDate, '%Y-%m-%d') as insuranceStartDate,
<!--意外险参保终止日期-->
DATE_FORMAT(insuranceEndDate, '%Y-%m-%d') as insuranceEndDate,
<!--意外险参保地-->
insuranceAddr,
<!--养老:1是,0否-->
isHaveAged,
<!--养老:1是,0否-->
case isHaveAged
when 1 then '是'
when 0 then '否' end as isHaveAgedValue,
<!--医疗:1是,0否-->
isHaveMedical,
<!--医疗:1是,0否-->
case isHaveMedical
when 1 then '是'
when 0 then '否' end as isHaveMedicalValue,
<!--工伤:1是,0否-->
isHaveInjury,
<!--工伤:1是,0否-->
case isHaveInjury
when 1 then '是'
when 0 then '否' end as isHaveInjuryValue,
<!--失业:1是,0否-->
isHaveUnemploy,
<!--失业:1是,0否-->
case isHaveUnemploy
when 1 then '是'
when 0 then '否' end as isHaveUnemployValue,
<!--社保参保地-->
insuredPlace,
<!--纸质档案保管地-->
paperPlace,
<!--合同起止日期-->
DATE_FORMAT(contractStartDate, '%Y-%m-%d') as contractStartDate,
<!--合同结束日期-->
DATE_FORMAT(contractEndDate, '%Y-%m-%d') as contractEndDate,
<!--离职日期-->
DATE_FORMAT(quitDate, '%Y-%m-%d') as quitDate,
<!--离职原因-->
quitReason
from sys_staffinfo from sys_staffinfo
where sid = #{sid} where sid = #{sid}
</select> </select>

178
src/main/java/com/yxt/portal/biz/sysstaffinfo/SysStaffinfoService.java

@ -23,6 +23,7 @@ import com.yxt.portal.biz.sysrole.SysRoleService;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgService; import com.yxt.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostService; import com.yxt.portal.biz.sysstaffpost.SysStaffPostService;
import com.yxt.portal.biz.sysuser.SysUserService; import com.yxt.portal.biz.sysuser.SysUserService;
import com.yxt.portal.biz.sysuserrole.SysUserRoleDto;
import com.yxt.portal.biz.sysuserrole.SysUserRoleService; import com.yxt.portal.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.base.config.RedisUtil; import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.config.component.FileUploadComponent;
@ -33,6 +34,7 @@ import com.yxt.common.base.utils.PinYinUtils;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.portal.biz.sysuserrole.SysUserRoleVo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -270,7 +272,7 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
* @param dto 数据传输对象 * @param dto 数据传输对象
* @return * @return
*/ */
public ResultBean saveStaffInfo(SysStaffinfoDto dto) { public ResultBean saveStaffInfo1(SysStaffinfoDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
SysRoleVo sysRoleVo = sysRoleService.fetchByName("试用期员工"); SysRoleVo sysRoleVo = sysRoleService.fetchByName("试用期员工");
if (sysRoleVo == null) { if (sysRoleVo == null) {
@ -429,6 +431,70 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
sysUserRoleService.save(sysUserRole); sysUserRoleService.save(sysUserRole);
return rb.success().setMsg("添加员工信息成功"); return rb.success().setMsg("添加员工信息成功");
}
public ResultBean saveStaffInfo(SysStaffinfoDto dto) {
ResultBean rb = ResultBean.fireFail();
//员工类型
//String personTypeKey = dto.getPersonTypeKey();
String jobNumber = "";
SysStaffinfo sysStaffinfo = baseMapper.selectJobNumber();
if (sysStaffinfo == null) {
//无此员工类型的员工
jobNumber = addOne("0000");
} else {
jobNumber = sysStaffinfo.getJobNumber();
jobNumber = addOne(jobNumber);
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo1 = baseMapper.selectByMobile(dto.getMobile());
SysUser sysUser1 = sysUserService.selectByMobile(dto.getMobile());
if (sysStaffinfo1 != null || sysUser1 != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//查询部门是否为空
if (dto.getSysStaffOrg() == null) {
return rb.setMsg("员工部门信息不能为空");
}
//添加员工基础信息
SysStaffinfo sysStaffinfo3 = new SysStaffinfo();
dto.fillEntity(sysStaffinfo3);
sysStaffinfo3.setJobNumber(jobNumber);
//增加员工的关联的部门信息
SysStaffOrg sysStaffOrg = new SysStaffOrg();
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
if (StringUtils.isBlank(sysStaffOrgDto.getOrgName())) {
return rb.setMsg("所在部门不能为空");
}
sysStaffOrgDto.fillEntity(sysStaffOrg);
sysStaffOrg.setStaffSid(sysStaffinfo3.getSid());
sysStaffOrg.setManageType("3");
sysStaffOrgService.save(sysStaffOrg);
save(sysStaffinfo3);
//添加用户信息
SysUser sysUser = new SysUser();
sysUser.setStaffSid(sysStaffinfo3.getSid());
sysUser.setUserName(jobNumber);
sysUser.setMobile(sysStaffinfo3.getMobile());
sysUser.setUserType(1);
String password = sysStaffinfo3.getMobile().substring(5, 11);
String md5 = Encodes.md5(password);
sysUser.setPassword(md5);
sysUser.setAccountType(dto.getAccountType());
boolean isSave = sysUserService.save(sysUser);
if (!isSave) {
return rb.setMsg("添加员工信息失败");
}
for (SysUserRoleDto sysUserRole : dto.getSysUserRoles()) {
SysUserRole ss = new SysUserRole();
ss.setUserSid(sysUser.getSid());
ss.setRoleSid(sysUserRole.getRoleSid());
sysUserRoleService.save(ss);
}
return rb.success().setMsg("添加员工信息成功");
} }
/** /**
@ -465,7 +531,7 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
* @param sid 员工信息sid * @param sid 员工信息sid
* @return * @return
*/ */
public ResultBean updateStaffInfo(SysStaffinfoDto dto, String sid) { public ResultBean updateStaffInfo1(SysStaffinfoDto dto, String sid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
//查询该人员的组织机构list //查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(sid); List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(sid);
@ -628,7 +694,100 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
} }
return rb.success().setMsg("更新员工信息成功"); return rb.success().setMsg("更新员工信息成功");
} }
/**
* 员工信息修改保存
*
* @param dto 数据传输对象
* @param sid 员工信息sid
* @return
*/
public ResultBean updateStaffInfo(SysStaffinfoDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
//查询该人员的组织机构list
List<SysStaffOrgVo> sysStaffOrgVos = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList = new ArrayList<>();
if (sysStaffOrgVos.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos) {
// String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
String orgSid = vv.getOrgSid();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
if (sysOrganization != null) {
orgList.add(orgSid);
} else {
continue;
}
}
}
//根据员工sid查询员工的信息
SysStaffinfo sysStaffinfo = fetchBySid(sid);
if (sysStaffinfo == null) {
return rb.setMsg("此员工信息不存在");
}
//查询员工的手机号是否重复
SysStaffinfo sysStaffinfo2 = baseMapper.selectByMobileAndSid(dto.getMobile(), sid);
if (sysStaffinfo2 != null) {
return rb.setMsg("已存在手机号为" + dto.getMobile() + "的员工");
}
//更新员工基础信息
BeanUtil.copyProperties(dto, sysStaffinfo);
sysStaffinfo.setJobNumber(dto.getJobNumber());
//更新用户信息
sysUserService.updateByStaffSid(dto.getJobNumber(), sysStaffinfo.getMobile(), sid);
//更新员工的关联的部门信息
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
// int count = sysStaffOrgService.selectByStaffAndOrg(sysStaffOrgDto.getOrgSidPath(), sid, "2");
// if (count > 0) {
// sysStaffOrgService.deleteByStaffSidAndType(sysStaffOrgDto.getOrgSidPath(), sid, "2");
// }
// SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSidAndPath(sid,sysStaffOrgDto.getOrgSidPath());
// if(sysStaffOrg == null){
// ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgService.selectAllByStaffSid(sid);
// sysStaffOrg = staffOrgResultBean.getData();
// if(sysStaffOrg == null){
// sysStaffOrg = new SysStaffOrg();
// sysStaffOrg.setStaffSid(sid);
// BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
// sysStaffOrg.setManageType("3");
// sysStaffOrgService.insert(sysStaffOrg);
// }else{
// BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
// sysStaffOrg.setManageType("3");
// sysStaffOrgService.updateById(sysStaffOrg);
// }
// }else{
// BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
// sysStaffOrg.setManageType("3");
// sysStaffOrgService.updateById(sysStaffOrg);
// }
boolean isUpdate = updateById(sysStaffinfo);
if (!isUpdate) {
return rb.setMsg("更新员工信息失败");
}
List<SysStaffOrgVo> sysStaffOrgVos1 = sysStaffOrgService.selectByStaffS(sid);
List<String> orgList1 = new ArrayList<>();
if (sysStaffOrgVos1.size() > 0) {
for (SysStaffOrgVo vv : sysStaffOrgVos1) {
// String orgSid = sysStaffOrgService.getOrgByOrgSid(vv.getOrgSid());
String orgSid = vv.getOrgSid();
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid);
if (sysOrganization != null) {
orgList1.add(orgSid);
} else {
continue;
}
}
}
List<String> reduce1 = orgList.stream().filter(item -> !orgList1.contains(item)).collect(toList());
if (reduce1.size() > 0) {
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(sid).getToken();
//清空该token
redisUtil.remove(token);
}
return rb.success().setMsg("更新员工信息成功");
}
/** /**
* 根据员工sid查询员工信息 * 根据员工sid查询员工信息
* *
@ -656,22 +815,17 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
type = s.getManageType(); type = s.getManageType();
} }
} }
SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid); // SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid);
SysStaffOrgDetailsVo sysStaffOrgDetailsVo = sysStaffOrgService.selectByStaffByType(sid, orgSid, type); SysStaffOrgDetailsVo sysStaffOrgDetailsVo = sysStaffOrgService.selectByStaffByType(sid, orgSid, type);
SysStaffPostDetailsVo sysStaffPostDetailsVo = sysStaffPostService.selectByStaff(sid, staffPostDetailsVo.getPostSid()); SysUser s= sysUserService.getOne(new QueryWrapper<SysUser>().eq("staffSid",sysStaffinfoDetailsVo.getSid()));
List<SysUserRoleVo> list=sysUserRoleService.selByUserSid(s.getSid());
sysStaffinfoDetailsVo.setSysUserRoles(list);
// SysStaffPostDetailsVo sysStaffPostDetailsVo = sysStaffPostService.selectByStaff(sid, staffPostDetailsVo.getPostSid());
if(sysStaffOrgDetailsVo != null){ if(sysStaffOrgDetailsVo != null){
sysStaffinfoDetailsVo.setSysStaffOrg(sysStaffOrgDetailsVo); sysStaffinfoDetailsVo.setSysStaffOrg(sysStaffOrgDetailsVo);
}else{ }else{
sysStaffinfoDetailsVo.setSysStaffOrg(new SysStaffOrgDetailsVo()); sysStaffinfoDetailsVo.setSysStaffOrg(new SysStaffOrgDetailsVo());
} }
if(sysStaffPostDetailsVo != null){
sysStaffinfoDetailsVo.setSysStaffPost(sysStaffPostDetailsVo);
}else{
sysStaffinfoDetailsVo.setSysStaffPost(new SysStaffPostDetailsVo());
}
} }
return sysStaffinfoDetailsVo; return sysStaffinfoDetailsVo;
} }

4
src/main/java/com/yxt/portal/biz/sysstafforg/SysStaffOrgDetailsVo.java

@ -19,8 +19,8 @@ public class SysStaffOrgDetailsVo implements Vo {
private String orgName; private String orgName;
@ApiModelProperty("部门路径") @ApiModelProperty("部门路径")
private String orgSidPath; private String orgSidPath;
@ApiModelProperty("部门名称路径") // @ApiModelProperty("部门名称路径")
private String orgNamePath; // private String orgNamePath;
@ApiModelProperty(value = "部门编码") @ApiModelProperty(value = "部门编码")
private String orgCode; private String orgCode;
@ApiModelProperty("管理类型:1、主管。2、分管。3、员工") @ApiModelProperty("管理类型:1、主管。2、分管。3、员工")

2
src/main/java/com/yxt/portal/biz/sysstafforg/SysStaffOrgMapper.xml

@ -50,7 +50,7 @@
</select> </select>
<select id="selectByStaffByType" resultType="com.yxt.portal.biz.sysstafforg.SysStaffOrgDetailsVo"> <select id="selectByStaffByType" resultType="com.yxt.portal.biz.sysstafforg.SysStaffOrgDetailsVo">
select sso.orgSid, sso.orgName, sso.orgNamePath, sso.manageType, so.orgCode, sso.orgSidPath select sso.orgSid, sso.orgName, sso.manageType, so.orgCode
from sys_staff_org sso from sys_staff_org sso
left join sys_organization so on sso.orgSid = so.sid left join sys_organization so on sso.orgSid = so.sid
where sso.staffSid = #{sid} where sso.staffSid = #{sid}

1
src/main/java/com/yxt/portal/biz/sysuser/SysUser.java

@ -68,4 +68,5 @@ public class SysUser extends BaseEntity {
private String headImage; private String headImage;
@TableField(exist = false) @TableField(exist = false)
private String orgSid; private String orgSid;
private String accountType;////账号类型 1单位管理员,2操作员,0是平台管理员 3非登录账户
} }

64
src/main/java/com/yxt/portal/biz/sysuser/SysUserService.java

@ -22,7 +22,9 @@ import com.yxt.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.portal.biz.sysstaffpost.SysStaffPostService; import com.yxt.portal.biz.sysstaffpost.SysStaffPostService;
//import com.yxt.user.biz.sysuserdefaultorg.SysUserDefaultOrgService; //import com.yxt.user.biz.sysuserdefaultorg.SysUserDefaultOrgService;
import com.yxt.portal.biz.sysuser.app.OrgList; import com.yxt.portal.biz.sysuser.app.OrgList;
import com.yxt.portal.biz.sysuser.wx.WxHomePageVo;
import com.yxt.portal.biz.sysuser.wx.WxMySysUserInfoVo; import com.yxt.portal.biz.sysuser.wx.WxMySysUserInfoVo;
import com.yxt.portal.biz.sysuser.wx.WxSysUserVo;
import com.yxt.portal.biz.sysuserdefaultorg.SysUserDefaultOrgService; import com.yxt.portal.biz.sysuserdefaultorg.SysUserDefaultOrgService;
import com.yxt.portal.biz.sysuserrole.SysUserRoleService; import com.yxt.portal.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.base.config.RedisUtil; import com.yxt.common.base.config.RedisUtil;
@ -157,6 +159,7 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
IPage<SysUserVo> pagging = baseMapper.selectPageVo(page, qw, deptName, userName); IPage<SysUserVo> pagging = baseMapper.selectPageVo(page, qw, deptName, userName);
List<SysUserVo> records = pagging.getRecords(); List<SysUserVo> records = pagging.getRecords();
for (SysUserVo record : records) { for (SysUserVo record : records) {
record.setSysRoleVos(sysUserRoleService.selByUserSid(record.getSid()));
String departmentSid = record.getDepartmentSid(); String departmentSid = record.getDepartmentSid();
String orgName = ""; String orgName = "";
if (StringUtils.isNotBlank(departmentSid)) { if (StringUtils.isNotBlank(departmentSid)) {
@ -986,11 +989,12 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
} }
String content = ""; String content = "";
if (type.equals("1")) { if (type.equals("1")) {
content = "登录验证码:" + verificationCode + ",用于登录App,有效期5分钟,如非本人操作,请忽略。"; content = "登录验证码:" + verificationCode + ",有效期5分钟,如非本人操作,请忽略。"+"【商享通】";
} else { } else {
content = "修改密码验证码:" + verificationCode + ",用于修改登录密码,有效期5分钟,如非本人操作,请忽略。"; content = "修改验证码:" + verificationCode + ",有效期5分钟,如非本人操作,请忽略。"+"【商享通】";
} }
String res = MsgWs.SendWaitWorkMsg(mobile, content); // String res = MsgWs.SendWaitWorkMsg(mobile, content);
String res = com.yxt.portal.utils.MsgWs.SendWaitWorkMsg(mobile, content);
// String res = "1"; // String res = "1";
if (res.equals("1")) { if (res.equals("1")) {
redisUtil.set(redisKey + mobile, verificationCode + date.getTime(), APP_LOGIN_CODE_TIME_LIMIT); redisUtil.set(redisKey + mobile, verificationCode + date.getTime(), APP_LOGIN_CODE_TIME_LIMIT);
@ -1195,34 +1199,34 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
* @Author: dimengzhe * @Author: dimengzhe
* @Date: 2021/10/6 15:09 * @Date: 2021/10/6 15:09
*/ */
// public WxSysUserVo selectByWxUserName(String userName, int userType) { public WxSysUserVo selectByWxUserName(String userName, int userType) {
// WxSysUserVo wxSysUserVo = baseMapper.selectByWxUserName(userName, userType); WxSysUserVo wxSysUserVo = baseMapper.selectByWxUserName(userName, userType);
// //根据客户sid查询姓名 //根据客户sid查询姓名
// String staffSid = wxSysUserVo.getStaffSid(); String staffSid = wxSysUserVo.getStaffSid();
// ResultBean<CrmCustomer> resultBean = crmCustomerFeign.selectBySid(staffSid); // ResultBean<CrmCustomer> resultBean = crmCustomerFeign.selectBySid(staffSid);
// if (resultBean.getSuccess()) { // if (resultBean.getSuccess()) {
// wxSysUserVo.setName(resultBean.getData().getName()); // wxSysUserVo.setName(resultBean.getData().getName());
// } // }
// // 生成token // 生成token
// String uniqueToken = JWTUtil.create(wxSysUserVo.getUserSid() + ""); String uniqueToken = JWTUtil.create(wxSysUserVo.getUserSid() + "");
// String token = "WX" + uniqueToken; String token = "WX" + uniqueToken;
// //查询是否有旧token,存在的话清除掉redis中的该token //查询是否有旧token,存在的话清除掉redis中的该token
// if (StringUtils.isNotBlank(wxSysUserVo.getToken())) { if (StringUtils.isNotBlank(wxSysUserVo.getToken())) {
// //查询是否过期 //查询是否过期
// String values = redisUtil.get(wxSysUserVo.getToken()); String values = redisUtil.get(wxSysUserVo.getToken());
// if (StringUtils.isNotBlank(values)) { if (StringUtils.isNotBlank(values)) {
// redisUtil.remove(wxSysUserVo.getToken()); redisUtil.remove(wxSysUserVo.getToken());
// } }
// } }
// // redis中缓存token // redis中缓存token
// redisUtil.set(token, wxSysUserVo.getUserName(), redisUtil.set(token, wxSysUserVo.getUserName(),
// USERS_REDIS_SESSION_TL_PC); USERS_REDIS_SESSION_TL_PC);
// wxSysUserVo.setToken(token); wxSysUserVo.setToken(token);
// wxSysUserVo.setNum("1"); wxSysUserVo.setNum("1");
// // 更新用户中的token // 更新用户中的token
// updateToken(wxSysUserVo.getUserSid(), token); updateToken(wxSysUserVo.getUserSid(), token);
// return wxSysUserVo; return wxSysUserVo;
// } }
public ResultBean resetPwdWx(String mobile, String newPwd) { public ResultBean resetPwdWx(String mobile, String newPwd) {
if (!newPwd.matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}$")) { if (!newPwd.matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}$")) {
@ -1255,9 +1259,9 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
* @Author: dimengzhe * @Author: dimengzhe
* @Date: 2021/10/12 11:29 * @Date: 2021/10/12 11:29
*/ */
// public WxHomePageVo selectHomePage(String userSid) { public WxHomePageVo selectHomePage(String userSid) {
// return baseMapper.selectHomePage(userSid); return baseMapper.selectHomePage(userSid);
// } }
public int delSysUserByMobile(String mobile) { public int delSysUserByMobile(String mobile) {
return baseMapper.delSysUserByMobile(mobile); return baseMapper.delSysUserByMobile(mobile);

8
src/main/java/com/yxt/portal/biz/sysuser/SysUserVo.java

@ -1,18 +1,23 @@
package com.yxt.portal.biz.sysuser; package com.yxt.portal.biz.sysuser;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import com.yxt.portal.biz.sysorganization.SysOrganization; import com.yxt.portal.biz.sysorganization.SysOrganization;
import com.yxt.portal.biz.sysorganization.SysOrganizationVo; import com.yxt.portal.biz.sysorganization.SysOrganizationVo;
import com.yxt.portal.biz.sysrole.SysRole;
import com.yxt.portal.biz.sysrole.SysRoleVo;
import com.yxt.portal.biz.sysstafforg.SysStaffOrgVo; import com.yxt.portal.biz.sysstafforg.SysStaffOrgVo;
import com.yxt.portal.biz.sysuser.app.OrgList; import com.yxt.portal.biz.sysuser.app.OrgList;
import com.yxt.portal.biz.sysuserrole.SysUserRoleVo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -102,4 +107,7 @@ public class SysUserVo implements Vo {
List<SysStaffOrgVo> sysOrganizationVos; List<SysStaffOrgVo> sysOrganizationVos;
private String orgSid; private String orgSid;
private String orgName; private String orgName;
private List<SysUserRoleVo> sysRoleVos;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
} }

2
src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleMapper.java

@ -43,6 +43,8 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
void delByUserSidAndRoleSid(@Param("userSid") String userSid,@Param("roleSid") String roleSid); void delByUserSidAndRoleSid(@Param("userSid") String userSid,@Param("roleSid") String roleSid);
List<SysUserRoleVo> selectByUserSid(@Param("userSid")String userSid,@Param("orgSid")String orgSid,@Param("sourceSid")String sourceSid); List<SysUserRoleVo> selectByUserSid(@Param("userSid")String userSid,@Param("orgSid")String orgSid,@Param("sourceSid")String sourceSid);
List<SysUserRoleVo> selByUserSid(@Param("userSid")String userSid);
@Select("SELECT roleSid FROM sys_user_role WHERE userSid=#{userSid}") @Select("SELECT roleSid FROM sys_user_role WHERE userSid=#{userSid}")
List<String> getUserRoleSidByUserSid(@Param("userSid")String userSid); List<String> getUserRoleSidByUserSid(@Param("userSid")String userSid);

9
src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleMapper.xml

@ -11,7 +11,7 @@
SELECT * FROM sys_user_role <where> ${ew.sqlSegment} </where> SELECT * FROM sys_user_role <where> ${ew.sqlSegment} </where>
</select> </select>
<select id="selectByUserSid" resultType="com.yxt.portal.biz.sysuserrole.SysUserRoleVo"> <select id="selectByUserSid" resultType="com.yxt.portal.biz.sysuserrole.SysUserRoleVo">
SELECT a.* SELECT a.*,b.name as roleName
FROM sys_user_role a FROM sys_user_role a
left join sys_role b on b.sid =a.roleSid left join sys_role b on b.sid =a.roleSid
left join sys_role_authorize c ON c.roleSid = b.sid left join sys_role_authorize c ON c.roleSid = b.sid
@ -23,6 +23,13 @@
and c.sourceSid =#{sourceSid} and c.sourceSid =#{sourceSid}
</if> </if>
</select> </select>
<select id="selByUserSid" resultType="com.yxt.portal.biz.sysuserrole.SysUserRoleVo">
SELECT a.*,b.name as roleName
FROM sys_user_role a
left join sys_role b on b.sid =a.roleSid
WHERE a.userSid = #{userSid}
</select>
<delete id="deleteByUserSid"> <delete id="deleteByUserSid">
delete from sys_user_role where userSid=#{params} delete from sys_user_role where userSid=#{params}
</delete> </delete>

3
src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleService.java

@ -98,6 +98,9 @@ public class SysUserRoleService extends MybatisBaseService<SysUserRoleMapper, Sy
public List<SysUserRoleVo> selectByUserSid(String userSid,String orgSid,String sourceSid) { public List<SysUserRoleVo> selectByUserSid(String userSid,String orgSid,String sourceSid) {
return baseMapper.selectByUserSid(userSid,orgSid,sourceSid); return baseMapper.selectByUserSid(userSid,orgSid,sourceSid);
}
public List<SysUserRoleVo> selByUserSid(String userSid) {
return baseMapper.selByUserSid(userSid);
} }
/*public void updateUserRole(SysUserRoleDto dto) { /*public void updateUserRole(SysUserRoleDto dto) {
//sysUserRoleService.deleteByUserSid(dto.getUserSid()); //sysUserRoleService.deleteByUserSid(dto.getUserSid());

1
src/main/java/com/yxt/portal/biz/sysuserrole/SysUserRoleVo.java

@ -29,4 +29,5 @@ public class SysUserRoleVo implements Vo {
@ApiModelProperty("角色sid") @ApiModelProperty("角色sid")
private String roleSid; private String roleSid;
private String roleName;
} }

Loading…
Cancel
Save