洪城义警-正式版后台
Administrator
2022-06-16 e9de05920d318905b9626c599568971b1f05281f
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -17,7 +17,9 @@
package org.springblade.modules.system.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -27,6 +29,8 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.common.config.FtpConfig;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.http.util.HttpUtil;
@@ -40,15 +44,23 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.*;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.system.dto.UserDTO;
import org.springblade.modules.system.entity.Role;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.excel.UserExcels;
import org.springblade.modules.system.excel.UserImporter;
import org.springblade.modules.system.excel.UserImporters;
import org.springblade.modules.system.service.IRoleService;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserRegisterStatisVO;
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.system.vo.UsersVo;
import org.springblade.modules.system.wrapper.UserWrapper;
import org.springblade.modules.taskqd.vo.TaskqdVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
@@ -57,10 +69,8 @@
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
@@ -78,13 +88,15 @@
   private final IUserService userService;
   private final IRoleService roleService;
   static BASE64Encoder encoder = new BASE64Encoder();
   private final String sm4Key = "bf679652628841dc8f35f84989abf350";
   private final String sm4Key = "cd888d57e21a4ffc9be7ed601ab3ccd6";
   private final String clientCode = "909BCF57904BDBD3E053AF0A020A3760";
   private final String clientCode = "369947";
   private final String url = "http://eid.gongqing.gov.cn/uias-test/fca/verifyFace";
   private final String url = "http://218.87.21.104:59944/uias/verifyFace";
   @PostMapping("/faceCompare")
   public R upload(@RequestParam("name")String name,@RequestParam("idCardNo")String idCardNo,@RequestParam("file") MultipartFile file){
@@ -178,6 +190,23 @@
      IPage<User> pages = userService.selectUserPages(Condition.getPage(query), user, deptId);
      return R.data(UserWrapper.build().pageVO(pages));
   }
   /**
    * 自定义用户列表(带坐标)
    */
   @GetMapping("/pagetxl")
   @ApiImplicitParams({
      @ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string")
   })
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "列表", notes = "传入account和realName")
   //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
   public R<IPage<UserVO>> pagetxl(@ApiIgnore User user, Query query, String deptId, BladeUser bladeUser) {
      IPage<User> pages = userService.selectUserPagetxl(Condition.getPage(query), user, deptId);
      return R.data(UserWrapper.build().pageVO(pages));
   }
   /**
    * 新增或修改
    */
@@ -187,6 +216,15 @@
   //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
   public R submit(@Valid @RequestBody User user) {
      CacheUtil.clear(USER_CACHE);
      if (user.getExamination_type() == null || user.getExamination_type().equals("")){
         user.setExamination_type("0");
      }
      if (user.getExamination_mx() == null || user.getExamination_mx().equals("")){
         user.setExamination_mx("正常");
      }
      return R.status(userService.submit(user));
   }
@@ -199,11 +237,12 @@
   public R update(@Valid @RequestBody User user) {
      CacheUtil.clear(USER_CACHE);
      if (user.getOnline_status() == null || user.getOnline_status().equals("")){
         user.setOnline_status("0");
      if (user.getExamination_type() == null || user.getExamination_type().equals("")){
         user.setExamination_type("0");
      }
      if (user.getWork_status() == null || user.getWork_status().equals("")){
         user.setWork_status("0");
      if (user.getExamination_mx() == null || user.getExamination_mx().equals("")){
         user.setExamination_mx("正常");
      }
      return R.status(userService.updateUser(user));
@@ -267,12 +306,12 @@
   @ApiOperation(value = "修改基本信息", notes = "传入User")
   public R updateInfo(@Valid @RequestBody User user) {
      CacheUtil.clear(USER_CACHE);
      if (null!= user.getAvatar() && user.getAvatar()!="") {
         String avatar = user.getAvatar();
         String substring = avatar.substring(25, avatar.length());
         String url = "https://web.byisf.com/minio" + substring;
         user.setAvatar(url);
      }
//      if (null!= user.getAvatar() && user.getAvatar()!="") {
//         String avatar = user.getAvatar();
//         String substring = avatar.substring(25, avatar.length());
//         String url = "https://web.byisf.com/minio" + substring;
//         user.setAvatar(url);
//      }
      return R.status(userService.updateUserInfo(user));
   }
@@ -309,6 +348,17 @@
   public R importUser(MultipartFile file, Integer isCovered) {
      UserImporter userImporter = new UserImporter(userService, isCovered == 1);
      ExcelUtil.save(file, userImporter, UserExcel.class);
      return R.success("操作成功");
   }
   /**
    * 导入用户(保安员)
    */
   @PostMapping("import-users")
   @ApiOperation(value = "导入用户", notes = "传入excel")
   public R importUsers(MultipartFile file, Integer isCovered) {
      UserImporters userImporter = new UserImporters(userService, isCovered == 1);
      ExcelUtil.save(file, userImporter, UserExcels.class);
      return R.success("操作成功");
   }
@@ -366,7 +416,7 @@
   @ApiOperationSupport(order = 17)
   @ApiOperation(value = "查看平台详情", notes = "传入id")
   @GetMapping("/platform-detail")
   @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
   //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
   public R<UserVO> platformDetail(User user) {
      return R.data(userService.platformDetail(user));
   }
@@ -416,6 +466,237 @@
      return R.data(userService.selectUser());
   }
   /**
    * 统计用户注册数据
    * @return
    */
   @GetMapping("/getUserRegisterStatisticsData")
   public R getUserRegisterStatisticsData() {
      return R.data(userService.getUserRegisterStatisticsData());
   }
   /**
    * 统计六大队伍
    */
   @GetMapping("/getUserTypeCount")
   public R getUserTypeCount() {
      return R.data(userService.getUserTypeCount());
   }
   /**
    * 按行政区统计六大队伍
    */
   @GetMapping("/getUserDistrictTypeCount")
   public R getUserDistrictTypeCount() {
      return R.data(userService.getUserDistrictTypeCount());
   }
   /**
    * 保安员新增
    */
   @PostMapping("/securitySave")
   @Transactional(rollbackFor = Exception.class)
   public R securitySave(@Valid @RequestBody Map<String, Object> userMap) {
      //获取user
      User user = JSON.parseObject(JSON.toJSONString(userMap.get("user")), User.class);
      //数据脱敏处理
      user.setAccount(user.getRealName().substring(0,1)+user.getCardid().substring(user.getCardid().length()-4));
      user.setCardid(DesensitizedUtil.desensitizedIdNumber(user.getCardid()));
      user.setPhone(DesensitizedUtil.desensitizedPhoneNumber(user.getPhone()));
      user.setName(DesensitizedUtil.desensitizedName(user.getName()));
      user.setRealName(DesensitizedUtil.desensitizedName(user.getRealName()));
      Integer userCount = userService.selectCount(user.getAccount());
      if (userCount > 0 && Func.isEmpty(user.getId())) {
         throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
      }
      //密码加密
      if (Func.isNotEmpty(user.getPassword())) {
         user.setPassword(DigestUtil.encrypt(user.getPassword()));
      }
      user.setTenantId("000000");
      //用户新增
      boolean status = userService.save(user);
      //头像
//      if (null!=user.getAvatar() && !user.getAvatar().equals("")) {
//         user.setAvatar(FtpConfig.ip + user.getAvatar().substring(26));
//      }
//
//      String s = "insert into blade_user(id,tenant_id,account,password,name,real_name,avatar,email,phone,sex,role_id,dept_id,cardid," +
//         "jurisdiction,examination_type,status,is_deleted) " +
//         "values(" + "'" + user.getId() + "'" + "," + "'" + user.getTenantId() + "'" + "," + "'" + user.getAccount() + "'" + "," +
//         "'" + user.getPassword() + "'" + "," + "'" + user.getName() + "'" + "," + "'" + user.getRealName() + "'" + "," + "'" + user.getAvatar() + "'" + "," +
//         "'" + user.getEmail() + "'" + "," + "'" + user.getPhone() + "'" + "," + "'" + user.getSex() + "'" + "," + "'" + user.getRoleId() + "'" +
//         "," + "'" + user.getDeptId() + "'" +
//         "," + "'" + user.getCardid() + "'" +
//         "," + "'" + user.getJurisdiction() + "'" +
//         "," + "'" + user.getExamination_type() + "'" +
//         "," + "'" + user.getStatus() + "'" +
//         "," + "'" + user.getIsDeleted() + "'" + ")";
//      System.out.println(s);
//      FtpUtil.sqlFileUpload(s);
      return R.status(status);
   }
   /**
    * 保安员新增(数据同步调用)
    */
   @PostMapping("/securitySaves")
   @Transactional(rollbackFor = Exception.class)
   public R securitySaves(@RequestBody User user) {
//      Integer userCount = userService.selectCount(user.getAccount());
//      //判断用户是否存在
//      if (userCount > 0) {
//         throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
//      }
      user.setRoleId("1495714343888039937");
      user.setDeptId("1424615972718895106");
      user.setStype("1");
      user.setId(null);
      //用户新增
      boolean status = userService.save(user);
      //返回
      return R.status(status);
   }
   /**
    * 保安员修改(数据同步调用)
    */
   @PostMapping("/updateBySecurtiy")
   @Transactional(rollbackFor = Exception.class)
   public R updateBySecurtiy(@RequestBody User user) {
      User user1 = new User();
      user1.setIsDeleted(0);
      user1.setStatus(1);
//      user1.setCardid(user.getCardid());
      user1.setSecurityId(user.getSecurityId());
      User one = userService.getOne(Condition.getQueryWrapper(user1));
      boolean status = false;
      if (null!=one){
         one.setRealName(user.getRealName());
         one.setAvatar(user.getAvatar());
         one.setPhone(user.getPhone());
         one.setExamination_type(user.getExamination_type());
         one.setStatus(user.getStatus());
         one.setUpdateTime(new Date());
         //修改
         status = userService.updateById(one);
      }
      //返回
      return R.status(status);
   }
   /**
    * 保安员信息修改(账号,身份证,密码 修改)
    */
   @PostMapping("/updateUserByAccount")
   @Transactional(rollbackFor = Exception.class)
   public R updateUserByAccount(@RequestBody UserDTO user) {
      User user1 = new User();
      user1.setIsDeleted(0);
      user1.setStatus(1);
      user1.setSecurityId(user.getSecurityId());
//      user1.setCardid(user.getOldCardid());
      User one = userService.getOne(Condition.getQueryWrapper(user1));
      boolean status = false;
      if (null!=one){
         //修改
         if (null!= one.getAccount()) {
            one.setAccount(user.getAccount());
         }
         if (null!= one.getCardid()) {
            one.setCardid(user.getCardid());
         }
         if (null!= one.getPassword()) {
            one.setPassword(user.getPassword());
         }
         if (null!= one.getAvatar()) {
            one.setAvatar(user.getAvatar());
         }
         if (null!= one.getPhone()) {
            one.setPhone(user.getPhone());
         }
         if (null!= one.getRealName()) {
            one.setRealName(user.getRealName());
         }
         one.setUpdateTime(new Date());
         //用户修改
          status = userService.updateById(one);
      }
      //返回
      return R.status(status);
   }
   /**
    * 同步删除
    */
   @PostMapping("/removeSecurity")
   @Transactional(rollbackFor = Exception.class)
   public R removeSecurity(@RequestBody User user) {
      User user1 = new User();
      user1.setIsDeleted(0);
      user1.setStatus(1);
      user1.setSecurityId(user.getSecurityId());
//      user1.setCardid(user.getCardid());
      User one = userService.getOne(Condition.getQueryWrapper(user1));
      boolean status = false;
      if (null!=one){
         //修改
         one.setIsDeleted(1);
         //用户修改
         status = userService.removeById(one.getId());
      }
      //返回
      return R.status(status);
   }
   /**
    * 人员统计
    */
   @GetMapping("/userCount")
   public R cancelTask(String xid,String index) {
      List<UserRegisterStatisVO> cout =  userService.getUserTypeCountXq(xid);
      List<UserVO> list =  userService.getUserTypeList(xid,index);
      Map<String,Object> res = new HashMap<>();
      res.put("cout",cout);
      res.put("list",list);
      return R.data(res);
   }
   /**
    * 首次登录发送祝贺信
    */
   @GetMapping("/firstLogin")
   public R firstLogin(String id) {
      return R.status(userService.firstLogin(id));
   }
   /**
    * 清除无效编号
    */
   @GetMapping("/clearPaper")
   public void clearPaper() {
      //修改符合条件的用户信息
      String s0 ="update blade_user set securitynumber = '',hold = '2' where securitynumber like concat('%','赣洪2022','%') and right(securitynumber,5) >2000";
      FtpUtil.sqlFileClear(s0);
      //修改符合条件的编号信息
      String s1 ="delete from sys_security_paper where number like concat('%','赣洪2022','%') and right(number,5) >2000";
      FtpUtil.sqlFileClear(s1);
      //修改两个用户的编号
      String s2 ="update blade_user set securitynumber = '',hold = '2' where id=1498127507772190722";
      FtpUtil.sqlFileClear(s2);
      String s3 ="update blade_user set securitynumber = '',hold = '2' where id=1502082757986168834";
      FtpUtil.sqlFileClear(s3);
   }
}