|
@@ -1,9 +1,31 @@
|
|
|
package com.huimv.secure.controller;
|
|
|
|
|
|
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.huimv.secure.common.utils.IDCardValidator;
|
|
|
+import com.huimv.secure.common.utils.PhoneNumberValidator;
|
|
|
+import com.huimv.secure.common.utils.Result;
|
|
|
+import com.huimv.secure.common.utils.UploadImage;
|
|
|
+import com.huimv.secure.entity.SysAccountMultilevel;
|
|
|
+import com.huimv.secure.entity.SysUser;
|
|
|
+import com.huimv.secure.entity.pojo.UserPagePojo;
|
|
|
+import com.huimv.secure.entity.vo.UserVo;
|
|
|
+import com.huimv.secure.service.ISysAccountMultilevelService;
|
|
|
+import com.huimv.secure.service.ISysUserService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -15,6 +37,187 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/sys-user")
|
|
|
+@CrossOrigin
|
|
|
public class SysUserController {
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UploadImage uploadImage;
|
|
|
+ @Autowired
|
|
|
+ private ISysAccountMultilevelService accountMultilevelService;
|
|
|
+
|
|
|
+ //员工新增
|
|
|
+ @PostMapping("/add")
|
|
|
+ public Result add(@RequestParam("userId") String userId,
|
|
|
+ @RequestParam(value = "userName",required = false) String userName,
|
|
|
+ @RequestParam(value = "gender",required = false) String gender,
|
|
|
+ @RequestParam(value = "birthday",required = false) String birthday,
|
|
|
+ @RequestParam(value = "cardNum",required = false) String cardNum,
|
|
|
+ @RequestParam(value = "userPhone",required = false) String userPhone,
|
|
|
+ @RequestParam(value = "publicPhone",required = false) String publicPhone,
|
|
|
+ @RequestParam(value = "entryTime",required = false) String entryTime,
|
|
|
+ @RequestParam(value = "job",required = false) String job,
|
|
|
+ @RequestParam(value = "workLocation",required = false) String workLocation,
|
|
|
+ @RequestParam(value = "farmId",required = false) String farmId,
|
|
|
+ @RequestParam(value = "sheng",required = false) String sheng,
|
|
|
+ @RequestParam(value = "shi",required = false) String shi,
|
|
|
+ @RequestParam(value = "xxdz",required = false) String xxdz,
|
|
|
+ @RequestParam("imgUrl") MultipartFile imgUrl) throws IOException {
|
|
|
+ SysUser sysUser = new SysUser();
|
|
|
+ sysUser.setUserName(userName);
|
|
|
+ sysUser.setUserId(userId);
|
|
|
+ sysUser.setGender(Integer.parseInt(gender));
|
|
|
+ sysUser.setBirthday(DateUtil.parse(birthday,"yyyy-MM-dd"));
|
|
|
+ sysUser.setCardNum(cardNum);
|
|
|
+ sysUser.setUserPhone(userPhone);
|
|
|
+ sysUser.setPublicPhone(publicPhone);
|
|
|
+ if (StringUtils.isNotBlank(entryTime)){
|
|
|
+ sysUser.setEntryTime(DateUtil.parse(entryTime,"yyyy-MM-dd"));
|
|
|
+ }
|
|
|
+ sysUser.setJob(job);
|
|
|
+ sysUser.setWorkLocation(workLocation);
|
|
|
+ sysUser.setFarmId(farmId);
|
|
|
+ sysUser.setSheng(sheng);
|
|
|
+ sysUser.setShi(shi);
|
|
|
+ sysUser.setXxdz(xxdz);
|
|
|
+ if (ObjectUtil.isNotEmpty(imgUrl)) {
|
|
|
+ String imageCom = uploadImage.getImageCom(imgUrl);
|
|
|
+ if ("上传失败".equals(imageCom)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return new Result(10001, "图片上传失败", false);
|
|
|
+ }else {
|
|
|
+ sysUser.setImgUrl(imageCom);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!IDCardValidator.isValidIDCard(cardNum)) {
|
|
|
+ return new Result(10001,"身份证格式不正确",false);
|
|
|
+ }
|
|
|
+ if (!PhoneNumberValidator.isValidPhoneNumber(userPhone)) {
|
|
|
+ return new Result(10001,"手机号格式不正确",false);
|
|
|
+ }
|
|
|
+ int count = sysUserService.count(new QueryWrapper<SysUser>().eq("card_num", cardNum));
|
|
|
+ if (count >0) {
|
|
|
+ return new Result(10001,"身份证已存在",false);
|
|
|
+ }
|
|
|
+ int countUserPhone = sysUserService.count(new QueryWrapper<SysUser>().eq("user_phone", userPhone));
|
|
|
+ if (countUserPhone >0) {
|
|
|
+ return new Result(10001,"手机号已存在",false);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(sysUser.getBirthday())){
|
|
|
+ sysUser.setAge(DateUtil.ageOfNow(sysUser.getBirthday()));
|
|
|
+ }
|
|
|
+ sysUserService.save(sysUser);
|
|
|
+ return new Result(10000,"保存成功",true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*员工修改*/
|
|
|
+ @PostMapping("/update")
|
|
|
+ public Result update(@RequestBody UserVo sysUser) {
|
|
|
+ String cardNum = sysUser.getCardNum();
|
|
|
+ String userPhone = sysUser.getUserPhone();
|
|
|
+ if(StringUtils.isNotBlank(userPhone)){
|
|
|
+ if (!PhoneNumberValidator.isValidPhoneNumber(userPhone)) {
|
|
|
+ return new Result(10001,"手机号格式不正确",false);
|
|
|
+ }
|
|
|
+ int count = sysUserService.count(new QueryWrapper<SysUser>().eq("user_phone", userPhone)) ;
|
|
|
+ if (count >1) {
|
|
|
+ return new Result(10001,"手机号已存在",false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(cardNum)){
|
|
|
+ if (!IDCardValidator.isValidIDCard(cardNum)) {
|
|
|
+ return new Result(10001,"身份证格式不正确",false);
|
|
|
+ }
|
|
|
+ int countUserPhone = sysUserService.count(new QueryWrapper<SysUser>().eq("card_num", cardNum));
|
|
|
+ if (countUserPhone >1) {
|
|
|
+ return new Result(10001,"身份证已存在",false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(sysUser.getBirthday())){
|
|
|
+ sysUser.setAge(DateUtil.ageOfNow(sysUser.getBirthday()));
|
|
|
+ }
|
|
|
+ SysUser user = new SysUser();
|
|
|
+ user.setId(sysUser.getId());
|
|
|
+ user.setAge(sysUser.getAge());
|
|
|
+ user.setBirthday(sysUser.getBirthday());
|
|
|
+ user.setCardNum(sysUser.getCardNum());
|
|
|
+ user.setEntryTime(sysUser.getEntryTime());
|
|
|
+ user.setFarmId(sysUser.getFarmId());
|
|
|
+ user.setGender(sysUser.getGender());
|
|
|
+ user.setPublicPhone(sysUser.getPublicPhone());
|
|
|
+ user.setSheng(sysUser.getSheng());
|
|
|
+ user.setShi(sysUser.getShi());
|
|
|
+ user.setUserId(sysUser.getUserId());
|
|
|
+ user.setUserName(sysUser.getUserName());
|
|
|
+ user.setUserPhone(sysUser.getUserPhone());
|
|
|
+ user.setWorkLocation(sysUser.getWorkLocation());
|
|
|
+ user.setXxdz(sysUser.getXxdz());
|
|
|
+ String s = "";
|
|
|
+ List<String> job = sysUser.getJob();
|
|
|
+ //TODO 判空
|
|
|
+ if(ObjectUtil.isNotEmpty(job)){
|
|
|
+ for (String s1 : job) {
|
|
|
+ s = s+s1 + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ user.setJob(s.substring(0, s.length() - 1));
|
|
|
+ sysUserService.updateById(user);
|
|
|
+ QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("user_id", sysUser.getUserId());
|
|
|
+ SysAccountMultilevel one = accountMultilevelService.getOne(queryWrapper);
|
|
|
+ one.setUserName(sysUser.getUserName());
|
|
|
+ one.setType(Integer.parseInt(s.substring(0, s.length() - 1).split(",")[0]));
|
|
|
+ one.setWorkLocation(sysUser.getWorkLocation());
|
|
|
+ accountMultilevelService.updateById(one);
|
|
|
+ return new Result(10000,"修改成功",true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*员工修改照片*/
|
|
|
+ @PostMapping("/uploadUserImg")
|
|
|
+ public Result uploadUserImg(@RequestParam("imgUrl") MultipartFile imgUrl,
|
|
|
+ @RequestParam("id") Integer id) throws IOException {
|
|
|
+
|
|
|
+ return sysUserService.uploadUserImg(imgUrl,id);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /*员工删除*/
|
|
|
+ @PostMapping("/remove")
|
|
|
+ @Transactional
|
|
|
+ public Result remove(@RequestBody Map<String,String> map) {
|
|
|
+ String ids = map.get("ids");
|
|
|
+ if (StringUtils.isBlank(ids)) {
|
|
|
+ return new Result(10001,"所选用户不存在",false);
|
|
|
+ }
|
|
|
+ List<String> collection = Arrays.stream(ids.split(","))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ sysUserService.removeByIds(collection);
|
|
|
+ //删除账号
|
|
|
+ accountMultilevelService.remove(new QueryWrapper<SysAccountMultilevel>().in("user_id",collection));
|
|
|
+ return new Result(10000,"删除成功",true);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //员工分页查询
|
|
|
+ @PostMapping("/page")
|
|
|
+ public Result page(@RequestBody UserPagePojo userPagePojo) {
|
|
|
+ return sysUserService.pageAll(userPagePojo);
|
|
|
+ }
|
|
|
+ //性别年龄分布
|
|
|
+ @PostMapping("/userAgeAndGender")
|
|
|
+ public Result userAgeAndGender(@RequestBody Map<String,String> map) {
|
|
|
+ return sysUserService.userAgeAndGender(map);
|
|
|
+ }
|
|
|
+ //岗位分布
|
|
|
+ @PostMapping("/userJob")
|
|
|
+ public Result userJob(@RequestBody Map<String,String> map) {
|
|
|
+ return sysUserService.userJob(map);
|
|
|
+ }
|
|
|
+ //查询工作地点
|
|
|
+ @PostMapping("/listWorkLocation")
|
|
|
+ public Result listWorkLocation(@RequestBody Map map) {
|
|
|
+ return sysUserService.listWorkLocation(map);
|
|
|
+ }
|
|
|
}
|