智慧保安后台管理-外网
Administrator
2022-05-11 7d581f0f8c74beb999b4482bf2bbdc59e4d5846d
保安员,用户新增,保安员查询姓名修改,账号修改为姓+身份证号码后4位
6 files modified
289 ■■■■ changed files
src/main/java/org/springblade/common/utils/DesensitizedUtil.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/FTP/DataHandler.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 209 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 6 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml 57 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 11 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/utils/DesensitizedUtil.java
@@ -123,6 +123,11 @@
        System.out.println("map = " + map);
        Object o = map.get(a);
        System.out.println("o = " + o);
        String names = "张三";
        System.out.println("names = " + names.substring(0,1));
        String cardid ="360728199205120012";
        System.out.println("cardid.substring(cardid.length()-4) = " + cardid.substring(cardid.length() - 4));
    }
src/main/java/org/springblade/modules/FTP/DataHandler.java
@@ -188,6 +188,7 @@
        //返回的user,需处理敏感数据
        User user1 = Objects.requireNonNull(BeanUtil.copy(user,User.class));
        //敏感数据处理
        user1.setRealName(DesensitizedUtil.desensitizedName(user.getRealName()));
        user1.setCardid(DesensitizedUtil.desensitizedIdNumberBy4(user.getCardid()));
        user1.setPhone(DesensitizedUtil.desensitizedPhoneNumber(user.getPhone()));
        user1.setRegistered(DesensitizedUtil.desensitizedAddress(user.getRegistered()));
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -229,20 +229,37 @@
    //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
    public R submit(@Valid @RequestBody User user) {
        if (null == user.getId()) {
            //新增
            //密码加密
            if (Func.isNotEmpty(user.getPassword())) {
                user.setPassword(DigestUtil.encrypt(user.getPassword()));
            }
            Integer userCount = userService.selectCountAccount(user.getAccount());
            if (userCount > 0) {
                throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
            }
            //判断角色
            if(user.getRoleId().equals("1412226235153731586")){
                //如果是保安员,默认为无证
                user.setHold("2");
            }
            user.setTenantId("000000");
            user.setDispatch("1");
            //待审查
            user.setExaminationType("2");
//            String realName = user.getRealName();
//            String cardid = user.getCardid();
////            user.setAccount(user.getRealName());
//            user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
            //默认在职
            user.setStatus(1);
            user.setIsDeleted(0);
            user.setCreateTime(new Date());
            user.setUpdateTime(new Date());
            //密码加密
            if (Func.isNotEmpty(user.getCardid())) {
                //取身份证号码后6位作为密码
                user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
            }
            user.setCreateTime(new Date());
            user.setTenantId("000000");
            //判断是否为民警 code
            if (null != user.getCode() && !user.getCode().equals("")) {
                //民警
@@ -254,32 +271,72 @@
                Jurisdiction one = jurisdictionService.getOne(Condition.getQueryWrapper(jurisdiction));
                user.setJurisdiction(one.getId().toString());
            }
            //新增
            boolean stats = userService.save(user);
            if (stats) {
                //内网同步
                String s = "insert into blade_user(" +
                    "id,tenant_id,code,account,password,real_name,phone,sex,role_id,dept_id," +
                    "create_time,update_time,cardid,status,is_deleted,jurisdiction) " +
                    "values(" + "'" + user.getId() + "'" + "," +
                    "'" + user.getTenantId() + "'" + "," +
                    "'" + user.getCode() + "'" + "," +
                    "'" + user.getAccount() + "'" + "," +
                    "'" + user.getPassword() + "'" + "," +
                    "'" + user.getRealName() + "'" + "," +
                    "'" + user.getPhone() + "'" + "," +
                    "'" + user.getSex() + "'" + "," +
                    "'" + user.getRoleId() + "'" +
                    "," + "'" + user.getDeptId() + "'" +
                    "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateTime()) + "'" +
                    "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
                    "," + "'" + user.getCardid() + "'" +
                    "," + "'" + user.getStatus() + "'" +
                    "," + "'" + user.getIsDeleted() + "'" +
                    "," + "'" + user.getJurisdiction() + "'"
                    + ")";
                myAsyncService.FTP(s);
            //用户新增
//        boolean status = userService.save(user);
            User user1 = Objects.requireNonNull(BeanUtil.copy(user,User.class));
            //生成随机数
            String uuid = UUID.randomUUID().toString();
            //将 user 存入 redis
            redisTemplate.opsForValue().set(uuid,JSON.toJSONString(user));
            //user1 临时设置uuid 到 reason_for_leav 离职原因字段
            user1.setReasonForLeav(uuid);
            //数据推送
            Map<String, Object> map = new HashMap<>(1);
            map.put("user",user1);
            myAsyncService.FTPObject(map);
            int count = 0;
            int flag = 1;
            Result result = new Result();
            //调用ftp获取返回数据
            while (true){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //调用ftp获取返回数据
                result = Monitor.isFTPFileExist(uuid);
                //如果返回true,就退处
                if (result.getCode()==200){
                    flag = 1;
                    break;
                }else if (result.getCode()==201){
                    flag = 2;
                    break;
                }else if (result.getCode()==202){
                    flag = 3;
                    break;
                }else if (result.getCode()==203){
                    flag = 4;
                    break;
                }else{
                    //计数
                    count++;
                    //如果超过10s 没有读取到,则退出
                    if (count == 30) {
                        break;
                    }
                }
            }
            if (flag==1 || flag==2) {
                //返回
                return R.data(200, null, "新增成功!");
            }else if (flag==3){
                throw new ServiceException(result.getMsg());
            }else if (flag==4){
//            return R.data(201, null, "保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!");
                return R.data(201, null, "保安证编号不匹配,请核实!");
            }else{
                //返回
                return R.data(400, null, "新增失败!");
            }
        } else {
            //修改
            User user1 = userService.getById(user.getId());
@@ -306,6 +363,93 @@
        //返回
        return R.success("成功");
    }
    /**
//     * 新增或修改
//     */
//    @PostMapping("/submit")
//    @ApiOperationSupport(order = 4)
//    @ApiOperation(value = "新增或修改", notes = "传入User")
//    //@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
//    public R submit(@Valid @RequestBody User user) {
//        if (null == user.getId()) {
//            //新增
//            //密码加密
//            if (Func.isNotEmpty(user.getPassword())) {
//                user.setPassword(DigestUtil.encrypt(user.getPassword()));
//            }
//            Integer userCount = userService.selectCountAccount(user.getAccount());
//            if (userCount > 0) {
//                throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
//            }
//            user.setTenantId("000000");
//            user.setStatus(1);
//            user.setIsDeleted(0);
//            user.setCreateTime(new Date());
//            user.setUpdateTime(new Date());
//            //判断是否为民警 code
//            if (null != user.getCode() && !user.getCode().equals("")) {
//                //民警
//                //根据 deptId 查询dept信息,公安管理员
//                Dept dept = iDeptService.getById(user.getDeptId());
//                //获取辖区的数据
//                Jurisdiction jurisdiction = new Jurisdiction();
//                jurisdiction.setDeptName(dept.getDeptName());
//                Jurisdiction one = jurisdictionService.getOne(Condition.getQueryWrapper(jurisdiction));
//                user.setJurisdiction(one.getId().toString());
//            }
//            //新增
//            boolean stats = userService.save(user);
//            if (stats) {
//                //内网同步
//                String s = "insert into blade_user(" +
//                    "id,tenant_id,code,account,password,real_name,phone,sex,role_id,dept_id," +
//                    "create_time,update_time,cardid,status,is_deleted,jurisdiction) " +
//                    "values(" + "'" + user.getId() + "'" + "," +
//                    "'" + user.getTenantId() + "'" + "," +
//                    "'" + user.getCode() + "'" + "," +
//                    "'" + user.getAccount() + "'" + "," +
//                    "'" + user.getPassword() + "'" + "," +
//                    "'" + user.getRealName() + "'" + "," +
//                    "'" + user.getPhone() + "'" + "," +
//                    "'" + user.getSex() + "'" + "," +
//                    "'" + user.getRoleId() + "'" +
//                    "," + "'" + user.getDeptId() + "'" +
//                    "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateTime()) + "'" +
//                    "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
//                    "," + "'" + user.getCardid() + "'" +
//                    "," + "'" + user.getStatus() + "'" +
//                    "," + "'" + user.getIsDeleted() + "'" +
//                    "," + "'" + user.getJurisdiction() + "'"
//                    + ")";
//                myAsyncService.FTP(s);
//            }
//        } else {
//            //修改
//            User user1 = userService.getById(user.getId());
//            user.setPassword(user1.getPassword());
//            user.setUpdateTime(new Date());
//            boolean b = userService.updateById(user);
//            if (b) {
//                String s1 =
//                    "update blade_user set account = " + "'" + user.getAccount() + "'"
//                        + ",code = " + "'" + user.getCode() + "'"
//                        + ",real_name = " + "'" + user.getRealName() + "'"
//                        + ",phone = " + "'" + user.getPhone() + "'"
//                        + ",sex = " + "'" + user.getSex() + "'"
//                        + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'"
//                        + ",role_id = " + "'" + user.getRoleId() + "'"
//                        + ",dept_id = " + "'" + user.getDeptId() + "'"
//                        + ",cardid = " + "'" + user.getCardid() + "'"
//                        + ",guncode = " + "'" + user.getGuncode() + "'"
//                        + " " + "where id = " + "'" + user.getId() + "'";
//                myAsyncService.FTP(s1);
//            }
//        }
//
//        //返回
//        return R.success("成功");
//    }
    /**
     * 修改
@@ -1427,7 +1571,10 @@
        user.setDispatch("1");
        //待审查
        user.setExaminationType("2");
        user.setAccount(user.getRealName());
        String realName = user.getRealName();
        String cardid = user.getCardid();
//            user.setAccount(user.getRealName());
        user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
        user.setStatus(1);
        //密码加密
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -486,7 +486,7 @@
        (select
        bu.id,
        bu.dept_id parentId,
        bu.real_name AS title,
        bu.account AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
@@ -552,7 +552,7 @@
        (select
        bu.id,
        bu.dept_id parentId,
        bu.real_name AS title,
        bu.account AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
@@ -608,7 +608,7 @@
        (select
        bu.id,
        bu.dept_id parentId,
        bu.real_name AS title,
        bu.account AS title,
        bu.id AS "value",
        bu.id AS "key",
        0 as "has_children"
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -572,7 +572,7 @@
                    ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
                    bu.is_apply isApply,
                    bu.is_train isTrain,
                    bu.real_name as name,
                    bu.account as name,
                    #{user.deptId} parentId
                from
                    blade_user bu
@@ -601,6 +601,59 @@
            </if>
        )
    </select>
    <!--保安员列表树 安员列表树,帅选无保安证,下拉tree-->
<!--    <select id="getSecurityApplyTree" resultType="org.springblade.modules.system.node.TreeNode">-->
<!--        (-->
<!--            select #{user.deptId} as id,-->
<!--                '全部' as name,-->
<!--                0 as parentId-->
<!--                from blade_user limit 1-->
<!--        )-->
<!--        union all-->
<!--        (-->
<!--            select-->
<!--            a.id,-->
<!--            a.name,-->
<!--            a.parentId-->
<!--            from (-->
<!--                select-->
<!--                    distinct-->
<!--                    bu.id,-->
<!--                    ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,-->
<!--                    bu.is_apply isApply,-->
<!--                    bu.is_train isTrain,-->
<!--                    bu.real_name as name,-->
<!--                    #{user.deptId} parentId-->
<!--                from-->
<!--                    blade_user bu-->
<!--                left join-->
<!--                blade_dept bd-->
<!--                on-->
<!--                bu.dept_id = bd.id-->
<!--                left join-->
<!--                blade_role br-->
<!--                on-->
<!--                br.id = bu.role_id-->
<!--                where-->
<!--                bu.is_deleted = 0-->
<!--                and bu.status = 1-->
<!--                and ((bu.examination_type != 1 and bu.examination_type != 2) or bu.examination_type is null)-->
<!--                and (hold = 2 or hold = 3)-->
<!--                and bd.id = #{user.deptId}-->
<!--                and br.role_alias = '保安'-->
<!--            ) a-->
<!--            where 1 = 1-->
<!--            <if test="user.examType==1">-->
<!--                and a.isApply != 1-->
<!--            </if>-->
<!--            <if test="user.examType==2">-->
<!--                and a.isTrain != 1-->
<!--            </if>-->
<!--        )-->
<!--    </select>-->
    <select id="selectInr" resultType="java.util.HashMap">
@@ -847,7 +900,7 @@
        select
        distinct
        bu.id,
        bu.real_name as name,
        bu.account as name,
        #{user.deptId} parentId
        from
        blade_user bu
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -1339,7 +1339,10 @@
            }
            //设置账号
            user.setAccount(user.getRealName());
            String realName = user.getRealName();
            String cardid = user.getCardid();
//            user.setAccount(user.getRealName());
            user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
            //加密
            user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
            user.setCreateTime(new Date());
@@ -1477,6 +1480,7 @@
        //返回的user,需处理敏感数据
        User user1 = Objects.requireNonNull(BeanUtil.copy(user,User.class));
        //敏感数据处理
        user1.setRealName(DesensitizedUtil.desensitizedName(user.getRealName()));
        user1.setCardid(DesensitizedUtil.desensitizedIdNumberBy4(user.getCardid()));
        user1.setPhone(DesensitizedUtil.desensitizedPhoneNumber(user.getPhone()));
        user1.setRegistered(DesensitizedUtil.desensitizedAddress(user.getRegistered()));
@@ -1592,7 +1596,10 @@
            }
            //设置账号
            user.setAccount(user.getRealName());
            String realName = user.getRealName();
            String cardid = user.getCardid();
//            user.setAccount(user.getRealName());
            user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
            //加密
            user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
            user.setCreateTime(new Date());