diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java index ac92e96e..50823b67 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java @@ -6,6 +6,7 @@ import com.wh.pojo.purchasenew.Purchasenew; import com.wh.service.api.outstorehouse.OutStorehouseListingService; import com.wh.service.api.outstorehouse.OutStorehouseMainService; import com.wh.vo.SysResult; +import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -49,9 +50,12 @@ public class OutStorehouseMainController { return r.setData(pv); } @PostMapping("listAllForPicking") - public ResultBean listAllForPicking(){ + public ResultBean listAllForPicking(@RequestBody OutStorehouseMainQuery pq){ ResultBean r=ResultBean.fireFail(); - List list= outStorehouseMainService.listAllForPicking(); + if(StringUtils.isBlank(pq.getCusterSid())){ + return r.setMsg("CusterSid不能为空"); + } + List list= outStorehouseMainService.listAllForPicking(pq); return r.success().setData(list); } @GetMapping("getOutStorehouse/{sid}") diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/initial/SupplierController.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/initial/SupplierController.java index f720fae6..85e04b0a 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/initial/SupplierController.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/initial/SupplierController.java @@ -13,6 +13,8 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @CrossOrigin @RequestMapping("/supplier/") @@ -29,6 +31,14 @@ public class SupplierController { PagerVo pv = supplierService.getSupplierList(pq); return rb.success().setData(pv); } + @PostMapping("listAll") + public ResultBean listAll(@RequestBody PagerQuery pq){ +// pageResult = supplierService.getSupplierList(pageResult); +// return SysResult.success(pageResult); + ResultBean rb = ResultBean.fireFail(); + List list=supplierService.listAll(); + return rb.success().setData(list); + } @PostMapping("addSupplier") public SysResult addSupplier(@RequestBody Supplier supplier){ diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/purchasenew/PurchasenewController.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/purchasenew/PurchasenewController.java index fbad3853..31a01cc9 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/purchasenew/PurchasenewController.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/purchasenew/PurchasenewController.java @@ -7,6 +7,7 @@ import com.wh.feign.enterpriseinformation.WhEnterpriseInformationQuery; import com.wh.feign.enterpriseinformation.WhEnterpriseInformationVo; import com.wh.pojo.purchasenew.*; import com.wh.service.purchasenew.PurchasenewService; +import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -36,9 +37,13 @@ public class PurchasenewController { } @ApiOperation("获取所有的采购订单") @PostMapping("/listAll") - public ResultBean> listAll(){ + public ResultBean> listAll(@RequestBody PurchasenewQuery pq){ ResultBean rb = ResultBean.fireFail(); - List list = purchasenewService.listForInput(); +// String custId = pq.getCustId(); +// if(StringUtils.isBlank(custId)){ +// return rb.setMsg("企业id不能为空"); +// } + List list = purchasenewService.listForInput(pq); return rb.success().setData(list); } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/sysuser/SysUserRest.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/sysuser/SysUserRest.java new file mode 100644 index 00000000..a24ea424 --- /dev/null +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/controller/sysuser/SysUserRest.java @@ -0,0 +1,198 @@ +package com.wh.controller.sysuser; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.wh.pojo.sysuser.*; +import com.wh.service.sysuser.SysUserService; +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.utils.Encodes; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.FileUploadResult; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserFeignFallback.java
+ * Class: SysUserRest
+ * Description: 用户表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "用户表") +@RestController +@RequestMapping("v1/sysuser") +public class SysUserRest { + @Autowired + private RedisUtil redisUtil; + @Autowired + private SysUserService sysUserService; + @Autowired + private FileUploadComponent fileUploadComponent; + // 定义点选文字图片验证码允许的误差值 + private static final int ERROR_AMOUNT = 50;// 定义允许的误差值,单位是px + @ApiOperation("根据条件分页查询数据的列表 ") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail();//roleSid + PagerVo pv = sysUserService.listPageVo(pq); + return rb.success().setData(pv); + } + @ApiOperation("根据条件查询所有数据列表") + @PostMapping("/listAll") + public ResultBean> listAll(@RequestBody SysUserQuery query) { + ResultBean rb = ResultBean.fireFail(); + List list = sysUserService.listAllVo(query); + return rb.success().setData(list); + } + @ApiOperation("所有数据列表") + @GetMapping("/list") + public ResultBean> list() { + ResultBean rb = ResultBean.fireFail(); + List list = sysUserService.listVo(); + return rb.success().setData(list); + } + + @PostMapping("/saveOpenId") + public ResultBean saveOpenId(@RequestBody SysUserDto dto){ + ResultBean rb=new ResultBean(); + SysUser sysUser=sysUserService.getOne(new QueryWrapper().eq("sid",dto.getSid())); + sysUser.setOpenId(dto.getOpenid()); + sysUserService.update(sysUser,new QueryWrapper().eq("sid",dto.getSid())); + return rb.success().setMsg("保存成功"); + } + @PostMapping("/saveBank") + public ResultBean saveBank(@RequestBody SysUserDto dto) { + ResultBean rb = ResultBean.fireFail(); + //手机号 + String mobile = dto.getMobile(); + //姓名 + String name = dto.getName(); + //用户类型 + int userType = dto.getUserType(); + //部门sid + if (StringUtils.isBlank(mobile)) { + return new ResultBean().fail().setMsg("手机号不能为空"); + } else { + SysUser one = sysUserService.fetchByUserName(mobile); + if (null != one) { + return new ResultBean().fail().setMsg("手机号重复!`"); + } + } + if (StringUtils.isBlank(name)) { + return new ResultBean().fail().setMsg("姓名不能为空"); + } + if (userType == 0) { + return new ResultBean().fail().setMsg("用户类型不能为空"); + } + String password = mobile.substring(5, 11); + String md5 = Encodes.md5(password); + SysUser su = new SysUser(); + dto.fillEntity(su); + su.setSid(UUID.randomUUID().toString()); + su.setStaffSid(dto.getBankMessageSid()); + su.setUserName(mobile); + su.setPassword(md5); + sysUserService.save(su); + return rb.success(); + } + + @GetMapping("/getUserBySid") + public ResultBean getUserBySid(@RequestParam("sid")String sid) { + SysUser sysUser = sysUserService.getUserBySid(sid); + return new ResultBean().success().setData(sysUser); + } + + @PostMapping("/login") + @ResponseBody + @ApiOperation(value = "3、登录") + @ApiOperationSupport(order = 30) + public ResultBean login(@RequestBody SysUserQuery userQuery) { + String userName = userQuery.getUserName(); + String password = userQuery.getPassword(); + // 遍历其中的map,取出每个属性值 + if (StringUtils.isBlank(userName)) { + return new ResultBean().fail().setMsg("用户名不能为空"); + } + if (StringUtils.isBlank(password)) { + return new ResultBean().fail().setMsg("密码不能为空"); + } + SysUser user = null; + // 验证通过之后删除redis上的验证过的该条uuid + String md5 = Encodes.md5(password); + user = sysUserService.selectByUserNameAndPassword(userName,md5); + if (user == null) { + return new ResultBean().fail().setMsg("用户名或密码错误"); + } + // 根据用户信息查询用户的角色信息 + SysUserVo userInfoOneVo = new SysUserVo();//sysUserService.setUserRedisSessionToken(user); + BeanUtil.copyProperties(user,userInfoOneVo); + return new ResultBean().success().setData(userInfoOneVo); + } + + /** + * 退出登录 + * + * @return + */ + @PostMapping("/signOut") + @ResponseBody + @ApiOperation(value = "退出登录") + @ApiOperationSupport(order = 30) + public ResultBean signOut(HttpServletRequest httpServletRequest) { + String token = httpServletRequest.getHeader("token"); + String redisToken = redisUtil.get(token); + if (StringUtils.isBlank(redisToken)) { + return ResultBean.fireSuccess().setMsg("您已退出,请刷新"); + } + redisUtil.remove(token); + return ResultBean.fireSuccess().setMsg("退出成功"); + } + + + @GetMapping("getUserByType") + public ResultBean getUserByType(@RequestParam("userType") String userType){ + return sysUserService.getUserByType(userType); + } + @GetMapping("getUserOrgBySid") + public ResultBean getUserOrgBySid(@RequestParam("sid") String sid){ + return sysUserService.getUserOrgBySid(sid); + } + + @PostMapping("/uploadfile") + public ResultBean uploadImage(@RequestParam(value = "file") MultipartFile file) { + ResultBean rb = ResultBean.fireFail(); + if (file == null || file.isEmpty()) { + return rb.setMsg("文件为空"); + } + rb = fileUploadComponent.uploadFile(file, null); + return rb; + } + + @PostMapping("/uploadImage") + public ResultBean updateSysUserImage(@RequestBody Map map){ + return sysUserService.updateSysUserImage(map); + } + @PostMapping("/getUsersBySid") + public ResultBean> getUsersBySid(@RequestBody List list){ + return sysUserService.getUsersBySid(list); + } +} diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java index 97878300..f8a79e15 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java @@ -18,6 +18,6 @@ import java.util.List; public interface OutStorehouseMainMapper extends BaseMapper { IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); -@Select("select * from out_storehouse_main where state=1;") - List listAllForPicking(); +@Select("select * from out_storehouse_main where state=1 and custer_sid=#{custerSid};") + List listAllForPicking(@Param("custerSid")String custerSid); } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/initial/SupplierMapper.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/initial/SupplierMapper.java index 65976305..1342b86d 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/initial/SupplierMapper.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/initial/SupplierMapper.java @@ -2,6 +2,11 @@ package com.wh.mapper.initial; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wh.pojo.Supplier; +import org.apache.ibatis.annotations.Select; + +import java.util.List; public interface SupplierMapper extends BaseMapper { + @Select("select * from supplier") + List listAll(); } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/purchasenew/PurchasenewMapper.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/purchasenew/PurchasenewMapper.java index a30dde75..c5cfff2d 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/purchasenew/PurchasenewMapper.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/purchasenew/PurchasenewMapper.java @@ -71,6 +71,6 @@ public interface PurchasenewMapper extends BaseMapper { */ @Update("update purchasenew set status='2' where sid=#{sid}") int updatePutInStatus(@Param("sid") String sid); - @Select("select * from purchasenew where state=1") - List listForInput(); + @Select("select * from purchasenew where state=1 ")//and cust_id=#{custId} + List listForInput( String custId);//@Param("custId") } \ No newline at end of file diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/sysuser/SysUserMapper.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/sysuser/SysUserMapper.java new file mode 100644 index 00000000..b129706b --- /dev/null +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/sysuser/SysUserMapper.java @@ -0,0 +1,157 @@ +package com.wh.mapper.sysuser; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.wh.pojo.sysuser.SysUser; +import com.wh.pojo.sysuser.SysUserInfoVo; +import com.wh.pojo.sysuser.SysUserVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; +import java.util.Map; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserMapper.java
+ * Class: SysUserMapper
+ * Description: 用户表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface SysUserMapper extends BaseMapper { + + //@Update("update sys_user set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper ew, @Param("orgName") String orgName, @Param("userName") String userName); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("SELECT user.*,staff.name FROM sys_user user left join sys_staffinfo staff on user.staffSid=staff.sid where user.isDelete=0") + List selectListVo(); + + public int updatePassword(String sid, String password); + public int deleteBySid(String sid); + + public int updatePasswordApp(String sid, String password); + + SysUser selectByUserName(String userName); + + SysUser selectByUserNameApp(String userName); + + SysUser selectByAppId(String appId); + + @Update("UPDATE sys_user SET appId=#{appId} WHERE sid=#{sid} and userType=1") + int updateAppId(@Param("sid") String sid, @Param("appId") String appId); + + @Update("UPDATE sys_user SET token=#{token} WHERE sid=#{sid}") + int updateToken(@Param("sid") String sid, @Param("token") String token); + + SysUser fetchByUserName(String userName); + + void delBySid(String sid); + + @Update("UPDATE sys_user SET headImage=#{headImage} WHERE sid=#{sid}") + int updateHeadImage(@Param("sid") String sid, @Param("headImage") String headImage); + + /** + * @param mobile 手机号 + * @param userType 用户类型 + * @description: 根据手机号和用户类型查询客户是否存在 + * @return: + * @Author: dimengzhe + * @Date: 2021/10/6 11:35 + */ + SysUser selectByMobileAndType(@Param("mobile") String mobile, @Param("userType") int userType); + + + // @Select("SELECT * FROM sys_user WHERE staffSid=#{staffSid} and isDelete=0") + SysUserVo selectByStaffsid(@Param("staffSid") String staffSid); + + @Update("update sys_user set isDelete=1 where isDelete=0 and userType=2 and userName=#{mobile}") + int delSysUserByMobile(@Param("mobile") String mobile); + + @Select("select sid from sys_user") + List selectAllUserSid(); + + + /** + * 根据用户sid查询用户的组织信息 + * + * @param userSid 用户的sid + * @return + */ + SysUserInfoVo selectUserInfoByUserSid(String userSid); + SysUserInfoVo selectUserInfoByUserSidOne(@Param("userSid") String userSid,@Param("orgSid") String orgSid); + + /** + * 根据员工sid更新用户的工号以及手机号 + * + * @param mobile 手机号 + * @param sid 员工sid + * @return + */ + int updateByStaffSid( @Param("mobile") String mobile, @Param("sid") String sid); + + /** + * 根据员工sid更新用户中的员工工号 + * + * @param jobNumber 员工工号 + * @param sid 员工sid + * @return + */ + int updateByStaSid(@Param("jobNumber") String jobNumber, @Param("sid") String sid); + + /** + * 根据手机号查询用户是否存在 + * + * @param mobile 手机号 + * @return + */ + SysUser selectByMobile(String mobile); + + int updateIsEnable(@Param("sid") String sid, @Param("isEnable") String isEnable); + + List getUsersByRoleSid(@Param("roleSid") String roleSid); + + List getUserByRole(@Param("roleSid") String roleSid, @Param("levelOrgSid") String levelOrgSid); + List getUserByRoleNoOrgPath(@Param("roleSid") String roleSid ); + List> getUserByOrgSid(@Param("orgSid") String orgSid,@Param("userSid") String userSid); + + List fetchBySids(@Param("sids")List sids); + + List getUserByRoleSid(String roleSid); + + /** + * 根据手机号解绑用户绑定的设备 + * @param mobile + * @return + */ + int updateAppIdByMobile(String mobile); + + /** + * 解绑所有用户绑定的设备 + * @return + */ + int updateAppIdAll(); + + String selectIdBySid(@Param("list") List stringList); + + List getUserMessageByRole(@Param("roleSid") String roleSid,@Param("levelOrgSid") String levelOrgSid, @Param("list") List stringList); + String fetchByUserNameAndUserPhone(@Param("userName") String userName, @Param("userPhone") String userPhone); + List getUserByType(@Param("userType")String userType); + List getUserOrgBySid(@Param("sid")String sid); + @Select("select * from sys_user where userName=#{userName} and password=#{md5}") + SysUser selectByUserNameAndPassword(@Param("userName")String userName, @Param("md5")String md5); +} \ No newline at end of file diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java index e3043c40..5635aa96 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java @@ -170,6 +170,9 @@ public class InStorehouseMainService extends MybatisBaseService listAllForPicking() { - return baseMapper.listAllForPicking(); + public List listAllForPicking(OutStorehouseMainQuery pq) { + return baseMapper.listAllForPicking(pq.getCusterSid()); } } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierService.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierService.java index ebaf0204..1aede536 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierService.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierService.java @@ -7,6 +7,8 @@ import com.wh.vo.PageResult; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; +import java.util.List; + public interface SupplierService { PageResult getSupplierList(PageResult pageResult); PagerVo getSupplierList(PagerQuery pq); @@ -15,4 +17,6 @@ public interface SupplierService { void updataSupplier(Supplier supplier); void deleteSupplier(String name); + + List listAll(); } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierServiceImpl.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierServiceImpl.java index e682b7d5..838c9106 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierServiceImpl.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/initial/SupplierServiceImpl.java @@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; +import java.util.List; + @Service public class SupplierServiceImpl implements SupplierService{ @@ -68,4 +70,9 @@ public class SupplierServiceImpl implements SupplierService{ public void deleteSupplier(String name) { supplierMapper.deleteById(name); } + + @Override + public List listAll() { + return supplierMapper.listAll(); + } } diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/purchasenew/PurchasenewService.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/purchasenew/PurchasenewService.java index bf30a6ce..9d57b2c0 100644 --- a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/purchasenew/PurchasenewService.java +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/purchasenew/PurchasenewService.java @@ -201,8 +201,9 @@ public class PurchasenewService extends MybatisBaseService listForInput() { - return baseMapper.listForInput(); + public List listForInput(PurchasenewQuery pq) { + String custId = pq.getCustId(); + return baseMapper.listForInput(custId); } public void updateStateToInputBySid(String purchaseSid) { diff --git a/warehousing-system/project/wh-manage/src/main/java/com/wh/service/sysuser/SysUserService.java b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/sysuser/SysUserService.java new file mode 100644 index 00000000..4ff67af9 --- /dev/null +++ b/warehousing-system/project/wh-manage/src/main/java/com/wh/service/sysuser/SysUserService.java @@ -0,0 +1,832 @@ +package com.wh.service.sysuser; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wh.feign.crm.ProjectInformationFeign; +import com.wh.mapper.sysuser.SysUserMapper; +import com.wh.pojo.sysuser.*; +import com.wh.pojo.sysuser.wx.*; +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.config.component.ImageUploadUtil; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.*; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static java.util.concurrent.Executors.newScheduledThreadPool; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserService.java
+ * Class: SysUserService
+ * Description: 用户表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class SysUserService extends MybatisBaseService { + + /** + * 设置redis的过期时间为4小时 + */ + public static final long USERS_REDIS_SESSION_TL_PC = 4 * 3600; + public static final long USERS_REDIS_SESSION_TL_App = 24 * 15 * 3600; + /** + * 验证码长度 + */ + static final int LENGTH_OF_CODE = 4; + /** + * 调用发送短信接口返回值 + */ + static final String RESULT_CODE = "1"; + /** + * 手机短信登录验证码时效(秒) + */ + static final long APP_LOGIN_CODE_TIME_LIMIT = 300L; + String APP_ID = "wx05604ce2a8bede05"; + String SECRET = "3d36e8a61212cf773a2fa4e6c9a83334"; + private static final String WX_URL_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code "; + private static final String WX_EMPOWER_URL_LOGIN = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code"; + @Autowired + private RedisUtil redisUtil; + @Autowired + private FileUploadComponent fileUploadComponent; + + @Autowired + private ImageUploadUtil imageUploadUtil; + @Autowired + private ProjectInformationFeign projectInformationFeign; + + + public PagerVo listPage(PagerQuery pq) { + SysUserQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAll(SysUserQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectList(qw); + } + + private QueryWrapper createQueryWrapper(SysUserQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getRoleSid())) { + qw.eq("role.sid", query.getRoleSid()); + } + if (StringUtils.isNotBlank(query.getName())) { + qw.like("staff.name", query.getName()); + } +// qw.ne("staff.personTypeKey","01"); + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + SysUserQuery query = pq.getParams(); + QueryWrapper qw = createQueryWrapper(query); + IPage page = PagerUtil.queryToPage(pq); + String deptName = ""; + String userName = ""; + if (StringUtils.isNotBlank(query.getOrgName())) { + deptName = query.getOrgName().trim(); + } + if (StringUtils.isNotBlank(query.getUserName())) { + userName = query.getUserName().trim(); + } + IPage pagging = baseMapper.selectPageVo(page, qw, deptName, userName); + List records = pagging.getRecords(); + for (SysUserVo record : records) { + String departmentSid = record.getDepartmentSid(); + String orgName = ""; + if (StringUtils.isNotBlank(departmentSid)) { + String[] split = departmentSid.split(","); + for (String s : split) { + } + orgName = orgName.substring(0, orgName.length() - 1); + record.setDepartmentName(orgName); + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAllVo(SysUserQuery query) { + QueryWrapper qw = createQueryWrapper(query); + return baseMapper.selectListAllVo(qw); + } + + public List listVo() { + return baseMapper.selectListVo(); + } + + public void saveOrUpdateDto(SysUserDto dto) { + SysUser entity = new SysUser(); + dto.fillEntity(entity); + this.saveOrUpdate(entity); + } + + public SysUserVo fetchByIdVo(String id) { + SysUser entity = this.fetchById(id); + SysUserVo vo = new SysUserVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + public SysUserVo fetchBySidVo(String sid) { + SysUser entity = this.fetchBySid(sid); + String staffSid = entity.getStaffSid(); + SysUserVo vo = new SysUserVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + public SysUser getUserBySid(String sid) { + SysUser entity = this.fetchBySid(sid); + + return entity; + } + /** + * 初始化密码,给用户发送手机短信 + * + * @param sid 用户sid + * @return ResultBean + */ + public Boolean initPwd(String sid) { + SysUser user = this.fetchBySid(sid); + if (null == user) { + return false; + } + String mobile = user.getMobile(); + + String substring = mobile.substring(5, 11); + // 1.生成新密码 + /*String newPwd = StringRandom.getRandomString(8);*/ + // 2.加密密码,更新用户密码 + if (0 == updatePassword(user.getSid(), Encodes.md5(substring))) { + return false; + } + redisUtil.remove(user.getUserName()); + // 3.给用户发送手机短信 +// MsgWs.SendWaitWorkMsg(mobile, user.getUserName() + SmsFeign.MSG_NEWPWD + substring); + return true; + } + + public int updatePassword(String sid, String password) { + return baseMapper.updatePassword(sid, password); + } + + public ResultBean updatePasswordApp(SysUser user, String oldPassword, String newPassword, String token) { + ResultBean rb = ResultBean.fireFail(); + String oldPasswordMd5 = Encodes.md5(oldPassword); + if (!oldPasswordMd5.equals(user.getPassword())) { + return rb.setMsg("原始密码输入错误"); + } + if (!newPassword.matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}$")) { + return rb.setMsg("密码格式错误,必须为8至16位大小写字母和数字的组合"); + } + int i = baseMapper.updatePasswordApp(user.getSid(), Encodes.md5(newPassword)); + SysUserVo sysUserVo = selectUserOne(user); + if (sysUserVo == null) { + sysUserVo = new SysUserVo(); + } else { + //查询是否需要更换密码 + boolean isTrue = false; + String mobile = user.getMobile(); + if (StringUtils.isNotBlank(mobile)) { + String password = mobile.substring(5, 11); + String md5 = Encodes.md5(password); + if (user.getPassword().equals(md5)) { + isTrue = true; + } + } + sysUserVo.setNeedResetPsd(isTrue); + } + if (i == 1) { +// redisUtil.remove(token); + return rb.success().setData(sysUserVo); + } else { + return rb.setMsg("修改失败"); + } + } + + public SysUser selectByUserName(String userName) { + return baseMapper.selectByUserName(userName); + } + + public SysUser selectByUserNameApp(String userName) { + return baseMapper.selectByUserNameApp(userName); + } + + public SysUser selectByAppId(String appId) { + return baseMapper.selectByAppId(appId); + } + + public int updateAppId(String sid, String appId) { + return baseMapper.updateAppId(sid, appId); + } + + public int updateToken(String sid, String token) { + return baseMapper.updateToken(sid, token); + } + + public SysUserVo setUserRedisSessionToken(SysUser user) { + // 生成token + String uniqueToken = JWTUtil.create(user.getSid() + ""); + // redis中缓存token + redisUtil.set(uniqueToken, user.getUserName(), + USERS_REDIS_SESSION_TL_PC); + SysUserVo userInfoOneVo = selectUserOne(user); + if (userInfoOneVo == null) { + return userInfoOneVo; + } else { + userInfoOneVo.setToken(uniqueToken); + return userInfoOneVo; + } + + } + + //公共的方法 + public SysUserVo selectUserOne(SysUser user) { + // 根据用户信息查询用户的角色信息 + SysUserVo userInfoOneVo = new SysUserVo(); + userInfoOneVo.setToken(user.getToken()); + userInfoOneVo.setId(user.getId()); + userInfoOneVo.setSid(user.getSid()); + userInfoOneVo.setUserName(user.getUserName()); + userInfoOneVo.setIsAdmin(user.getIsAdmin()); + return userInfoOneVo; + } + + /** + * 手机端登录后设置token + * + * @param user + * @return + */ + public SysUserVo selectUser(SysUser user) { + String oldToken = user.getToken(); + if (StringUtils.isNotBlank(oldToken)) { + redisUtil.remove(oldToken); + } + String uniqueToken = JWTUtil.create(user.getSid() + ""); + String newToken = "App" + uniqueToken; + redisUtil.set(newToken, user.getUserName(), USERS_REDIS_SESSION_TL_App); + SysUserVo sysUserVo = selectUserOne(user); + if (sysUserVo == null) { + return null; + } else { + sysUserVo.setToken(newToken); + // 更新用户中的token + updateToken(user.getSid(), newToken); + //查询是否需要更换密码 + boolean isTrue = false; + String mobile = user.getMobile(); + if (StringUtils.isNotBlank(mobile)) { + String password = mobile.substring(5, 11); + String md5 = Encodes.md5(password); + if (user.getPassword().equals(md5)) { + isTrue = true; + } + } + sysUserVo.setNeedResetPsd(isTrue); + return sysUserVo; + } + + } + + /** + * 获取用户的角色s + * + * @return + */ + public List getUserRoleSids(String userSid) { + return null; + } + + public SysUser fetchByUserName(String mobile) { + SysUser sysUsers = baseMapper.fetchByUserName(mobile); + return sysUsers; + } + + public void delBySid(String sid) { + baseMapper.delBySid(sid); + } + + /** + * 发送短信验证码 + * + * @param mobile 手机号 + * @param verificationCode 验证码 + * @return ResultBean + */ + public ResultBean getVerificationCode(String mobile, String verificationCode) { + for (int i = 0; i < LENGTH_OF_CODE; i++) { + // 定义随机类 + Random random = new Random(); + // 返回[0,10)集合中的整数,注意不包括10 + int result = random.nextInt(10); + // +1后,[0,10)集合变为[1,11)集合,满足要求 + int num = result; + verificationCode = verificationCode + num; + } + String verificationCode1 = "个人注册验证码:" + verificationCode + ",有效期5分钟,如非本人操作,请忽略该短信。"; + try { + //============ + //当前时间秒数 + Long timemili = System.currentTimeMillis() / 1000; + System.out.println("当前的秒数" + timemili); + /*在这里写一个定时的for循环,用来取redis的手机号码信息,然后查询手机号码开始的时间,若是大于等于五分钟就给删除这个键值*/ + //创建多线程定时任务,延迟1s启动,每隔1s执行一次,是前一个任务开始时就开始计算时间间隔,但是会等上一个任务结束在开始下一个 + ScheduledExecutorService scheduledExecutorService = newScheduledThreadPool(10); + scheduledExecutorService.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + //判断这个键的值是不是超过五分钟,是的话就删除掉这个键 + if (System.currentTimeMillis() / 1000 - Long.parseLong(redisUtil.get(mobile).substring(4)) > 300) { + redisUtil.remove(mobile); + } + } + }, 1, 2, TimeUnit.SECONDS); + + //设置键值的时候先查询是否存在这个键值对,存在的话查看时长,不存在的话直接发送短信 + boolean str = redisUtil.exists(mobile); + if (!str) { + redisUtil.set(mobile, (verificationCode + timemili)); + String result = MsgWs.SendWaitWorkMsg(mobile, verificationCode1); + if (!RESULT_CODE.equals(result)) { + return ResultBean.fireFail().setMsg("发送短信验证码失败"); + } + } else { + String strT = redisUtil.get(mobile); + //查看请求间隔,默认是一分钟,小于一分钟继续等待,超过一分钟发送短信 + if (timemili - Long.parseLong(strT.substring(4)) < 60) { + return ResultBean.fireFail().setMsg("请等待一分钟后再次重试!"); + } else { + //发送短信 + redisUtil.set(mobile, (verificationCode + timemili)); + String result = MsgWs.SendWaitWorkMsg(mobile, verificationCode1); + if (!RESULT_CODE.equals(result)) { + return ResultBean.fireFail().setMsg("发送短信验证码失败"); + } + + } + } + } catch (Exception e) { + return ResultBean.fireFail().setMsg("发送短信验证码失败"); + } + //============= + return ResultBean.fireSuccess().setMsg("发送短信验证码成功"); + } + + /** + * 验证手机号和验证码是否正确及匹配 + * + * @param mobile 手机号 + * @param verificationCode 验证码 + * @return map + */ + public Map mobileValidateRegister(String mobile, String verificationCode) { + String code = redisUtil.get(mobile).substring(0, 4); + // 判断验证码是否失效 + if (StringUtils.isEmpty(code)) { + return Tools.setRetCode(Tools.CODE_FAIL, "验证码失效"); + } else if (!"".equals(code) && !verificationCode.equals(code)) { + return Tools.setRetCode(Tools.CODE_FAIL, "验证码错误"); + } + return Tools.setRetCode(Tools.CODE_SUCCESS, ""); + } + + + + /** + * @param mobile 手机号 + * @param verificationCode 验证码 + * @param type 验证码类型 + * @description: 绑定微信验证验证码是否正确 + * @return: + * @Author: dimengzhe + * @Date: 2021/10/6 11:02 + */ + public Map mobileValidateWxRegister(String mobile, String verificationCode,String type) { + String key = ""; + if (type.equals("1")) { + key = "loginCode"+ mobile; + } else if (type.equals("2")) { + key = "updatePwdCode"+mobile; + } else if (type.equals("3")) { + key = "resetPwdCode"+mobile; + }else if(type.equals("4")){ + key = "binding"+mobile; + } + String code = redisUtil.get(key); + if (StringUtils.isNotBlank(code)) { + code = code.substring(0, 4); + } + // 判断验证码是否失效 + if (StringUtils.isEmpty(code)) { + return Tools.setRetCode(Tools.CODE_FAIL, "验证码失效"); + } else if (!"".equals(code) && !verificationCode.equals(code)) { + return Tools.setRetCode(Tools.CODE_FAIL, "验证码错误"); + } + return Tools.setRetCode(Tools.CODE_SUCCESS, ""); + } + + /** + * @param userName 用户名 + * @description: 根据用户名获取登录信息 + * @return: + * @Author: dimengzhe + * @Date: 2021/10/6 15:09 + */ + public WxSysUserVo selectByWxUserName(String userName, int userType) { + WxSysUserVo wxSysUserVo =new WxSysUserVo();// baseMapper.selectByWxUserName(userName, userType); + //根据客户sid查询姓名 + String staffSid = wxSysUserVo.getStaffSid(); + // 生成token + String uniqueToken = JWTUtil.create(wxSysUserVo.getUserSid() + ""); + String token = "WX" + uniqueToken; + //查询是否有旧token,存在的话清除掉redis中的该token + if (StringUtils.isNotBlank(wxSysUserVo.getToken())) { + //查询是否过期 + String values = redisUtil.get(wxSysUserVo.getToken()); + if (StringUtils.isNotBlank(values)) { + redisUtil.remove(wxSysUserVo.getToken()); + } + } + // redis中缓存token + redisUtil.set(token, wxSysUserVo.getUserName(), + USERS_REDIS_SESSION_TL_PC); + wxSysUserVo.setToken(token); + wxSysUserVo.setNum("1"); + // 更新用户中的token + updateToken(wxSysUserVo.getUserSid(), token); + return wxSysUserVo; + } + + public ResultBean resetPwdWx(String mobile, String newPwd) { + if (!newPwd.matches("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,10}$")) { + return ResultBean.fireFail().setMsg("密码格式错误,必须为8至10位大小写字母和数字的组合"); + } + SysUser user = baseMapper.selectByMobileAndType(mobile, 2); + if (null == user) { + return ResultBean.fireFail().setMsg("该手机号暂时还未注册,请先注册"); + } + String newPwdMd5 = Encodes.md5(newPwd); + if (newPwdMd5.equals(user.getPassword())) { + return ResultBean.fireFail().setMsg("新密码不能与旧密码相同"); + } + int i = baseMapper.updatePassword(user.getSid(), newPwdMd5); + if (i == 1) { + return ResultBean.fireSuccess().setMsg("修改成功"); + } else { + return ResultBean.fireFail().setMsg("修改失败"); + } + } + + public SysUserVo selectByStaffsid(@Param("staffSid") String staffSid) { + return baseMapper.selectByStaffsid(staffSid); + } + + public int delSysUserByMobile(String mobile) { + return baseMapper.delSysUserByMobile(mobile); + } + + /** + * 查询所有用户的sid + * + * @return + */ + public List selectAllUserSid() { + return baseMapper.selectAllUserSid(); + } + + + + + /** + * 根据用户sid获取用户的组织信息 + * + * @param userSid 用户的sid + * @return + */ + public SysUserInfoVo selectUserInfoByUserSid(String userSid) { + return baseMapper.selectUserInfoByUserSid(userSid); + } + + /** + * 根据用户sid获取用户的组织信息 + * + * @param userSid 用户的sid + * @return + */ + public SysUserInfoVo selectUserInfoByUserSid(String userSid, String orgSid) { + return baseMapper.selectUserInfoByUserSidOne(userSid, orgSid); + } + + /** + * 根据员工sid更新用户信息 + * + * @param mobile 手机号 + * @param sid 员工sid + * @return + */ +// public int updateByStaffSid(String jobNumber, String mobile, String sid) { +// return baseMapper.updateByStaffSid(jobNumber, mobile, sid); +// } + public int updateByStaffSid(String mobile, String sid) { + return baseMapper.updateByStaffSid( mobile, sid); + } + /** + * 根据员工sid更新用户的员工编号 + * + * @param jobNumber 员工编号 + * @param sid 用户sid + * @return + */ + public int updateByStaSid(String jobNumber, String sid) { + return baseMapper.updateByStaSid(jobNumber, sid); + } + + /** + * 根据手机号查询用户是否存在 + * + * @param mobile + * @return + */ + public SysUser selectByMobile(String mobile) { + return baseMapper.selectByMobile(mobile); + } + + public ResultBean reGetPwd(String userName, String userPhone,String verificationCode) { + ResultBean rb = ResultBean.fireFail(); + String userSid = baseMapper.fetchByUserNameAndUserPhone(userName, userPhone); + + if (StringUtils.isNotBlank(userSid)) { + Mapvali=mobileValidateWxRegister(userPhone,verificationCode,"3"); + if(!vali.get("code").equals("200")){ + return rb.setMsg(vali.get("details").toString()); + } + Boolean aBoolean = initPwd(userSid); + if (!aBoolean) { + return ResultBean.fireFail().setMsg("初始化密码失败"); + } + return ResultBean.fireSuccess().setMsg("初始化密码成功"); + } + return rb.setMsg("姓名或手机号填写不正确"); + } + + public int updateIsEnable(String sid, String isEnable) { + return baseMapper.updateIsEnable(sid, isEnable); + } + + public ResultBean getUsersByRoleSid(String roleSid) { + List users = baseMapper.getUsersByRoleSid(roleSid); + List l = new ArrayList<>(); + for (SysUserVo s : users) { + l.add(s.getDepartmentName() == null ? "" : s.getDepartmentName()); + } + HashSet set = new HashSet(l); + //把List集合所有元素清空 + l.clear(); + //把HashSet对象添加至List集合 + l.addAll(set); + List> r = new ArrayList<>(); +// for (String s : l) { +// if (StringUtils.isNotBlank(s)) { + Map m = new HashMap<>(); + List us = new ArrayList<>(); + for (SysUserVo su : users) { + // if (s != null && s.equals(su.getDepartmentName())) { + us.add(su); + // } + } + // m.put("dept", s); + m.put("users", us); + r.add(m); +// } +// } + ResultBean objectResultBean = ResultBean.fireSuccess().setData(r); + return objectResultBean; + } + + public ResultBean> getUserByRole(UserQuery query) { + ResultBean> rb = ResultBean.fireFail(); + List sysUserVoList = new ArrayList<>(); + if (StringUtils.isBlank(query.getRoleSid())) { + return rb.setMsg("角色sid不能为空"); + } + if (StringUtils.isBlank(query.getOrgSidPath())) { + return rb.setMsg("机构全路径不能为空"); + } + //根据角色sid获取角色的层级 + String levelTypeKey ="1";// sysRoleService.getLevelType(query.getRoleSid()); + if (StringUtils.isNotBlank(levelTypeKey)) { + if (query.getOrgSidPath().split("/").length >= Integer.parseInt(levelTypeKey) - 1) { + String levelOrgSid = query.getOrgSidPath().split("/")[Integer.parseInt(levelTypeKey) - 1]; + sysUserVoList = baseMapper.getUserByRole(query.getRoleSid(), levelOrgSid); + if(sysUserVoList.size()>1){ + List stringList = sysUserVoList.stream().map(v->v.getSid()).collect(Collectors.toList()); + List sysUserVoList1 = baseMapper.getUserMessageByRole(query.getRoleSid(), levelOrgSid,stringList); + sysUserVoList1.removeAll(Collections.singleton(null)); + if(sysUserVoList1.size()>0){ + sysUserVoList = sysUserVoList1; + } + } + } + sysUserVoList.removeAll(Collections.singleton(null)); + sysUserVoList.forEach(t -> { + t.setOrgSidPath(query.getOrgSidPath()); + }); + } else { + return rb.setMsg("该角色层级未设置"); + } + + return rb.success().setData(sysUserVoList); + + + } + + public ResultBean>> getUserByOrgSid(String orgSid, String userSid) { + ResultBean rb = ResultBean.fireFail(); + List> user = baseMapper.getUserByOrgSid(orgSid, userSid); + for (Map map : user) { + StringBuilder namePath = new StringBuilder(); + String name = map.get("name"); + String orgName = map.get("orgName"); + String postName = map.get("postName"); + namePath.append(name).append("(").append(orgName).append(" ").append(postName).append(")"); + map.put("namePath", namePath.toString()); + } + /*List> user = new ArrayList<>(); + for (Map map : userByOrgSid) { + String s = map.get("sid"); + ResultBean pathSidByUserSid = sysStaffOrgService.getPathSidByUserSid(s); + String data = pathSidByUserSid.getData(); + if (data.equals(orgSid)){ + user.add(map); + } + }*/ + return rb.success().setData(user); + } + + public List fetchBySidSVo(String sids) { + List list = Arrays.asList(sids.split(",")); + List entity = baseMapper.fetchBySids(list); + return entity; + } + + public ResultBean updateAppIdByMobile(String mobile) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isNotBlank(mobile)) { + baseMapper.updateAppIdByMobile(mobile); + } else { + baseMapper.updateAppIdAll(); + } + return rb.success().setMsg("解绑成功"); + } + + public ResultBean selectIdBySid(List stringList) { + ResultBean rb = ResultBean.fireFail(); + String ids = baseMapper.selectIdBySid(stringList); + return rb.success().setData(ids); + } + + public ResultBean> getUserByOrgRole(UserRoleQuery query) { + ResultBean> rb = ResultBean.fireFail(); + List sysUserVoList = new ArrayList<>(); + //根据当前用户角色查询该角色的上一级角色 + String userRoleSid = query.getRoleSid(); + if (StringUtils.isBlank(userRoleSid)) { + return rb.setMsg("角色不能为空"); + } + if (StringUtils.isBlank(query.getOrgSid())) { + return rb.setMsg("部门sid不能为空"); + } + String upRoleSid ="";// sysRoleService.selectRoleSid(userRoleSid); + sysUserVoList = baseMapper.getUserByRole(upRoleSid, query.getOrgSid()); + return rb.success().setData(sysUserVoList); + } + + public ResultBean> getOtherOrgRoleUser(UserRoleQuery query) { + ResultBean> rb = ResultBean.fireFail(); + List sysUserVoList = new ArrayList<>(); + String roleSid = query.getRoleSid(); + if (StringUtils.isBlank(roleSid)) { + return rb.setMsg("角色不能为空"); + } + if (StringUtils.isNotBlank(query.getOrgSid())) { + sysUserVoList = baseMapper.getUserByRole(roleSid, query.getOrgSid()); + } else { + sysUserVoList = baseMapper.getUserByRoleSid(query.getRoleSid()); + } + return rb.success().setData(sysUserVoList); + } + + public ResultBean> selectSysUserList(String userSid) { + ResultBean> rb = ResultBean.fireFail(); + + return rb.success().setData(new ArrayList<>()); + } + + public ResultBean selectPasswordByUserSid(String userSid) { + ResultBean rb = ResultBean.fireFail(); + boolean isTrue = false; + //查询手机号 + SysUser sysUser = fetchBySid(userSid); + if (sysUser != null) { + String mobile = sysUser.getMobile(); + if (StringUtils.isNotBlank(mobile)) { + String password = mobile.substring(5, 11); + String md5 = Encodes.md5(password); + if (sysUser.getPassword().equals(md5)) { + isTrue = true; + } + } + } + return rb.success().setData(isTrue); + } + + public ResultBean wxLogin( String jsCode,String appid, String secret) { + ResultBean rb=new ResultBean(); + String url = WX_URL_LOGIN.replace("APPID", appid).replace("SECRET", secret).replace("JSCODE",jsCode).replace("authorization_code","authorization_code"); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity forEntity = restTemplate.getForEntity(url,String.class); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + System.out.println(jsonObject); + return rb.success().setData(jsonObject); + } + public ResultBean wxAuthLogin( String code,String appid, String secret) { + ResultBean rb=new ResultBean(); + String url = WX_EMPOWER_URL_LOGIN.replace("APPID", appid).replace("SECRET", secret).replace("CODE",code).replace("authorization_code","authorization_code"); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity forEntity = restTemplate.getForEntity(url,String.class); + JSONObject jsonObject = JSONObject.parseObject(forEntity.getBody()); + System.out.println(jsonObject); + return rb.success().setData(jsonObject); + } + + public ResultBean getUserByType(String userType){ + ResultBean rb=new ResultBean(); + List list=baseMapper.getUserByType(userType); + return rb.success().setData(list); + } + public ResultBean getUserOrgBySid(String sid){ + ResultBean rb=new ResultBean(); + List list=baseMapper.getUserOrgBySid(sid); + return rb.success().setData(list); + } + + public ResultBean updateSysUserImage(Map map){ + String userSid = map.get("userSid"); + String headImage = map.get("headImage"); + ResultBean rb = ResultBean.fireFail(); + SysUser sysUser = fetchBySid(userSid); + sysUser.setHeadImage(headImage); + int sid = baseMapper.update(sysUser, new QueryWrapper().eq("sid", sysUser.getSid())); + return rb.success().setMsg("上传成功"); + } + public ResultBean> getUsersBySid(List list){ + ResultBean rb = ResultBean.fireFail(); + Listusers=baseMapper.selectList(new QueryWrapper().in("sid",list)); + + return rb.success().setData(users); + } + + public ResultBean> getUserByRoleNoOrgPath(UserQuery query) { + ResultBean> rb = ResultBean.fireFail(); + List sysUserVoList = new ArrayList<>(); + if (StringUtils.isBlank(query.getRoleSid())) { + return rb.setMsg("角色sid不能为空"); + } + //根据角色sid获取角色的层级 + sysUserVoList = baseMapper.getUserByRoleNoOrgPath(query.getRoleSid()); + return rb.success().setData(sysUserVoList); + } + + public SysUser selectByUserNameAndPassword(String userName, String md5) { + return baseMapper.selectByUserNameAndPassword(userName,md5); + } +} \ No newline at end of file diff --git a/warehousing-system/project/wh-manage/src/main/resources/application-test.yml b/warehousing-system/project/wh-manage/src/main/resources/application-test.yml new file mode 100644 index 00000000..6b16dbcc --- /dev/null +++ b/warehousing-system/project/wh-manage/src/main/resources/application-test.yml @@ -0,0 +1,25 @@ +spring: + resources: + static-locations: file:D://supervise + cloud: + nacos: + discovery: + server-addr: 39.104.100.138:884 + datasource: + url: jdbc:mysql://39.104.100.138:3306/warehouse2?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true + username: root + password: yxt_mysql_138 + #password: root + + redis: + database: 3 # Redis数据库索引(默认为0) + host: 39.104.100.138 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: + port: 6379 + timeout: 0 # 连接超时时间(毫秒) \ No newline at end of file diff --git a/warehousing-system/project/wh-manage/src/main/resources/application.yml b/warehousing-system/project/wh-manage/src/main/resources/application.yml index 4e7e941e..c4144f07 100644 --- a/warehousing-system/project/wh-manage/src/main/resources/application.yml +++ b/warehousing-system/project/wh-manage/src/main/resources/application.yml @@ -10,8 +10,8 @@ spring: application: name: supervise-wm profiles: - #active: devv - active: pro + active: test + #active: pro messages: basename: i18n/messages diff --git a/warehousing-system/project/wh-manage/src/main/resources/mappers/SysUserMapper.xml b/warehousing-system/project/wh-manage/src/main/resources/mappers/SysUserMapper.xml new file mode 100644 index 00000000..abc99844 --- /dev/null +++ b/warehousing-system/project/wh-manage/src/main/resources/mappers/SysUserMapper.xml @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + + + update sys_user + set password=#{param2} + where sid = #{param1} + + + delete from sys_user + where sid = #{sid} + + + update sys_user + set password=#{param2} + where sid = #{param1} + and userType = 1 + + + delete + from sys_user + where sid = #{param1} + + + + + + + + + + + + + + + + + + + update sys_user + set mobile = #{mobile} + where staffSid = #{sid} + + + + update sys_user + set userName = #{jobNumber} + where staffSid = #{sid} + + + + + + + + + + + + + + UPDATE sys_user + SET isEnable = #{isEnable} + WHERE sid = #{sid} + + + + + + + + + + + + + + + update sys_user + set appId = NULL + where mobile = #{mobile} + + + + update sys_user + set appId = NULL + + + + + + + + + \ No newline at end of file