洪城义警-正式版后台
zengh
2021-11-01 24797ef3f03b3b59f9ddced9a7d4962a7efc413c
资格审查内网穿透
7 files modified
2 files added
390 ■■■■■ changed files
src/main/java/org/springblade/common/config/BladeConfiguration.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/utils/InvestigateUtil.java 93 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/investigate/Investigate.java 236 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/entity/User.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml 19 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IUserService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 6 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/config/BladeConfiguration.java
@@ -100,6 +100,7 @@
        secureRegistry.excludePathPatterns("/likes/**");
        secureRegistry.excludePathPatterns("/comment/**");
        secureRegistry.excludePathPatterns("/collect/**");
        secureRegistry.excludePathPatterns("/investigate/**");
        return secureRegistry;
    }
src/main/java/org/springblade/common/utils/InvestigateUtil.java
New file
@@ -0,0 +1,93 @@
package org.springblade.common.utils;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
/**
 * @author zhongrj
 * @date 2021-08-12
 */
public class InvestigateUtil {
    /**
     * 人员审查
     * @param idCardNo 人员身份证号
     * @return
     */
    public static String httpGet(String idCardNo,Integer pageNum,Integer pageSize) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
            .url("http://47.49.27.44:8000/dbapi/dmc_bjhc?page_num="+pageNum+"&page_size="+pageSize+"&sfzh="+idCardNo)
            .get()
            .addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiJITGdGVGYwZWwwNTRDYlNWNUptMUY1eXA3UjRWNnpuMyIsImlhdCI6MTYyOTc5NDk4MH0.KOyEdkXDc5FP98KFLYOBnDgthJZF6VDOxJvlYFrXmrA")
            .build();
        try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        } catch(Exception e) {
        }
        return null;
    }
    /**
     * 人员审查
     * @param idCardNo 人员身份证号
     * @return
     */
    public static String httpGetOne(String idCardNo) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
            .url("http://47.49.27.44:8000/dbapi/dmc_bjhc?page_num=1&page_size=1000&sfzh="+idCardNo)
            .get()
            .addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiJITGdGVGYwZWwwNTRDYlNWNUptMUY1eXA3UjRWNnpuMyIsImlhdCI6MTYyOTc5NDk4MH0.KOyEdkXDc5FP98KFLYOBnDgthJZF6VDOxJvlYFrXmrA")
            .build();
        try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        } catch(Exception e) {
        }
        return null;
    }
    /**
     * 枪支定位
     * @param idCardNo  护卫员身份证号
     * @param deptName 所在单位名称
     * @param startTime 定位开始时间
     * @param endTime 定位结束时间
     */
    public static String httpGetGunPosition(String idCardNo,String deptName,String startTime,String endTime,Integer pageNum,Integer pageSize) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
            .url("http://47.49.27.44:8000/dbapi/dmc_qzdw?page_num="+pageNum+"&page_size="+pageSize+"&hwysfzh="+idCardNo+"&szdw="+deptName+"&kssj="+startTime+"&jssj="+endTime)
            .get()
            .addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiI3aWN5MXplc3N2eVBPVlJKUVk2aHpPRTJhc0JMdkw1MyIsImlhdCI6MTYyOTI1MTMzOX0.DLasFawQHexpRBFORQU64tbSR_n76bpway42GfIwPf4")
            .build();
        try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        } catch(Exception e) {
        }
        return null;
    }
    // 工具方法
    public static <T> Consumer<T> consumerWithIndex(BiConsumer<T, Integer> consumer) {
        class Obj {
            int i;
        }
        Obj obj = new Obj();
        return t -> {
            int index = obj.i++;
            consumer.accept(t, index);
        };
    }
}
src/main/java/org/springblade/modules/investigate/Investigate.java
New file
@@ -0,0 +1,236 @@
package org.springblade.modules.investigate;
import lombok.AllArgsConstructor;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springblade.common.utils.InvestigateUtil;
import org.springblade.core.tool.api.R;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
 * @author zhongrj
 *
 * 资格审核测试接口
 */
@RestController
@AllArgsConstructor
public class Investigate {
    private final IUserService userService;
    /**
     * 单个人员审查
     * @param idCardNo 身份证号码
     * @return
     */
    @GetMapping("/investigate")
    public String getInvestigate(String idCardNo,
                                 @RequestParam(defaultValue = "1")Integer pageNum,
                                 @RequestParam(defaultValue = "10")Integer pageSize){
        return InvestigateUtil.httpGetOne(idCardNo);
    }
    /**
     * 枪支定位
     * @param idCardNo  护卫员身份证号
     * @param deptName 所在单位名称
     * @param startTime 定位开始时间
     * @param endTime 定位结束时间
     */
    @GetMapping("/investigate/gun")
    public String getInvestigateGun(String idCardNo,
                                    String deptName,
                                    String startTime,
                                    String endTime,
                                    @RequestParam(defaultValue = "1")Integer pageNum,
                                    @RequestParam(defaultValue = "10")Integer pageSize){
        return InvestigateUtil.httpGetGunPosition(idCardNo,deptName,startTime,endTime,pageNum,pageSize);
    }
//    /**
//     *
//     * @return
//     */
//    @GetMapping("/investigate/byUser")
//    public R investigateByUser(){
//        //查询用户数据,未删除的
//        List<User> users = userService.getAllUserList();
//        //遍历
//        users.forEach(InvestigateUtil.consumerWithIndex((user,index) ->{
//            if (index==80){
//                try {
//                    Thread.sleep(500);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//            String body = InvestigateUtil.httpGet(user.getCardid());
//            JSONObject jsonObject = new JSONObject(body);
//            Object data = jsonObject.get("data");
//            JSONObject jsonData = new JSONObject(data.toString());
//            JSONArray res = jsonData.getJSONArray("res");
//            if (res.length()==0){
//                //没有数据正常
//                user.setExamination_type("0");
//            }else {
//                user.setExamination_type("1");
//                user.setExamination_mx(res.getJSONObject(0).get("zdxsfzqkry").toString());
//            }
//            //更新用户数据
//            userService.updateById(user);
//        }));
//        return R.data(users.size());
//    }
    /**
     * 人员审查
     * @return
     */
    @GetMapping("/investigate/byUser")
    public R investigateByUser(@RequestParam(defaultValue = "1") Integer pageNum,
                               @RequestParam(defaultValue = "1000")Integer pageSize){
        //查询用户数据,未删除的,未审核的
        List<User> users = userService.getNotAuditAllUserList();
        //遍历
        users.forEach(InvestigateUtil.consumerWithIndex((user,index) ->{
            if (null!=user.getCardid() && user.getCardid()!="") {
                if (index == 1000) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                String body = InvestigateUtil.httpGetOne(user.getCardid());
                JSONObject jsonObject = new JSONObject(body);
                Object data = jsonObject.get("data");
                JSONObject jsonData = new JSONObject(data.toString());
                JSONArray res = jsonData.getJSONArray("res");
                //设置审核时间
                user.setAuditTime(new Date());
                if (res.length() == 0) {
                    //没有数据正常
                    user.setExamination_type("0");
                } else {
                    int count = 0;
                    user.setExamination_type("1");
                    for (int i = 0; i < res.length(); i++) {
                        if (res.getJSONObject(i).get("zdrylbjh").toString() != null
                            && res.getJSONObject(i).get("zdrylbjh").toString() != ""
                            && res.getJSONObject(i).get("zdrylbjh").toString() != "null"
                        ) {
                            user.setExamination_mx(res.getJSONObject(i).get("zdrylbjh").toString());
                            //更新用户数据
                            userService.updateById(user);
                            break;
                        }
                        if (res.getJSONObject(i).get("zdryxlmc").toString() != null
                            && res.getJSONObject(i).get("zdryxlmc").toString() != ""
                            && res.getJSONObject(i).get("zdryxlmc").toString() != "null"
                        ) {
                            user.setExamination_mx(res.getJSONObject(i).get("zdryxlmc").toString());
                            //更新用户数据
                            userService.updateById(user);
                            break;
                        }
                        if (res.getJSONObject(i).get("ztrylx").toString() != null
                            && res.getJSONObject(i).get("ztrylx").toString() != ""
                            && res.getJSONObject(i).get("ztrylx").toString() != "null"
                        ) {
                            user.setExamination_mx(res.getJSONObject(i).get("ztrylx").toString());
                            //更新用户数据
                            userService.updateById(user);
                            break;
                        }
//                        if (res.getJSONObject(i).get("ajlbmc").toString() != null
//                            && res.getJSONObject(i).get("ajlbmc").toString() != "") {
//                            user.setExamination_mx(res.getJSONObject(i).get("ajlbmc").toString());
//                            //更新用户数据
//                            userService.updateById(user);
//                            break;
//                        }
                        count++;
                        //条件中的数据都为空,则审查为正常
                        if (count==res.length()){
                            //更新用户数据,设为正常
                            user.setExamination_type("0");
                            userService.updateById(user);
                        }
                    }
                }
                //更新用户数据
                userService.updateById(user);
            }
        }));
        return R.data(users.size());
    }
    /**
     * 数据反向测试
     * @param body 数据反向测试
     * @return
     */
    @PostMapping("/investigate/testBody")
    public R testBody(@RequestBody String body){
        JSONObject jsonObject = new JSONObject(body);
        Object data = jsonObject.get("data");
        JSONObject jsonData = new JSONObject(data.toString());
        JSONArray res = jsonData.getJSONArray("res");
        User user = new User();
        if (res.length()>0){
//            String zdxsfzqkry = res.getJSONObject(0).get("zdxsfzqkry").toString();
            int count = 0;
            for (int i = 0; i < res.length(); i++) {
                System.out.println("res.length() =" + res.length());
                if (res.getJSONObject(i).get("zdrylbjh").toString() != null
                    && res.getJSONObject(i).get("zdrylbjh").toString() != ""
                    && res.getJSONObject(i).get("zdrylbjh").toString() != "null"
                ) {
                    user.setExamination_mx(res.getJSONObject(i).get("zdrylbjh").toString());
                    //更新用户数据
                    userService.updateById(user);
                    break;
                }
                if (res.getJSONObject(i).get("zdryxlmc").toString() != null
                    && res.getJSONObject(i).get("zdryxlmc").toString() != ""
                    && res.getJSONObject(i).get("zdryxlmc").toString() != "null"
                ) {
                    user.setExamination_mx(res.getJSONObject(i).get("zdryxlmc").toString());
                    //更新用户数据
                    userService.updateById(user);
                    break;
                }
                if (res.getJSONObject(i).get("ztrylx").toString() != null
                    && res.getJSONObject(i).get("ztrylx").toString() != ""
                    && res.getJSONObject(i).get("ztrylx").toString() != "null"
                ) {
                    user.setExamination_mx(res.getJSONObject(i).get("ztrylx").toString());
                    //更新用户数据
                    userService.updateById(user);
                    break;
                }
                count++;
                System.out.println("count = " + count);
//                if (res.getJSONObject(i).get("ajlbmc").toString() != null
//                    && res.getJSONObject(i).get("ajlbmc").toString() != ""
//                    && res.getJSONObject(i).get("ajlbmc").toString() != "null"
//                ) {
//                    user.setExamination_mx(res.getJSONObject(i).get("ajlbmc").toString());
//                    //更新用户数据
//                    userService.updateById(user);
//                    break;
//                }
            }
            return R.data(user);
        }
        return null;
    }
}
src/main/java/org/springblade/modules/system/entity/User.java
@@ -23,6 +23,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -117,4 +118,17 @@
    @ApiModelProperty(value = "行政区")
    private String district;
    /**
     * 审查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("audit_time")
    private Date auditTime;
    /**
     * 身份证号
     */
    private String cardid;
}
src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -110,4 +110,10 @@
    List<UserDistrictStatisVO> getUserDistrictTypeCount();
    /**
     * 查询用户数据,未删除的,未审核的
     * @return
     */
    List<User> getNotAuditAllUserList();
}
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -29,6 +29,8 @@
        <result column="work_status" property="work_status"/>
        <result column="examination_type" property="examination_type"/>
        <result column="examination_mx" property="examination_mx"/>
        <result column="audit_time" property="auditTime"/>
        <result column="cardid" property="cardid"/>
        <result column="district" property="district"/>
    </resultMap>
    <resultMap id="userResultMaps" type="org.springblade.modules.system.vo.UsersVo">
@@ -60,6 +62,8 @@
        <result column="examination_type" property="examination_type"/>
        <result column="examination_mx" property="examination_mx"/>
        <result column="dept_name" property="deptName"/>
        <result column="audit_time" property="auditTime"/>
        <result column="cardid" property="cardid"/>
    </resultMap>
    <select id="selectUserPage" resultMap="userResultMap">
@@ -105,7 +109,7 @@
        blade_role br
        on
        s.role_id=br.id
        where s.is_deleted = 0 and br.role_alias ='qfqkdw'
        where s.is_deleted = 0
        <if test="user.account!=null and user.account != ''">
            and s.account = #{user.account}
        </if>
@@ -213,8 +217,7 @@
        on
        bu.role_id=br.id
        where
        br.role_alias ='qfqkdw'
        and bu.is_deleted=0
        bu.is_deleted=0
        <if test="user.realName!=null and user.realName !=''">
            <bind name="realName" value="'%'+user.realName+'%'"/>
            and bu.real_name like #{realName}
@@ -325,4 +328,14 @@
        GROUP BY
            bu.district
    </select>
    <!--查询用户数据,未审核的-->
    <select id="getNotAuditAllUserList" resultType="org.springblade.modules.system.entity.User">
        select id, cardid
        from blade_user
        where examination_type is null
    </select>
</mapper>
src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -270,4 +270,10 @@
    List<UserRegisterStatisVO> getUserTypeCount();
    List<UserDistrictStatisVO> getUserDistrictTypeCount();
    /**
     * 查询用户数据,未删除的,未审核的
     * @return
     */
    List<User> getNotAuditAllUserList();
}
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -506,4 +506,13 @@
    public List<UserDistrictStatisVO> getUserDistrictTypeCount() {
        return baseMapper.getUserDistrictTypeCount();
    }
    /**
     * 查询用户数据,未删除的,未审核的
     * @return
     */
    @Override
    public List<User> getNotAuditAllUserList() {
        return baseMapper.getNotAuditAllUserList();
    }
}
src/main/resources/application-dev.yml
@@ -21,7 +21,11 @@
#    username: root
#    password: zhba0728
    url: jdbc:mysql://223.82.109.183:2083/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
#    url: jdbc:mysql://223.82.109.183:2083/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
#    username: root
#    password: zhba0728
    url: jdbc:mysql://47.49.36.191:3306/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
    username: root
    password: zhba0728