Jelajahi Sumber

企业认证

cuixq 4 tahun lalu
induk
melakukan
8fbeb55e22

+ 113 - 29
tianhu-system/src/main/java/com/tianhu/system/companyAuth/controller/OwnAuthController.java

@@ -1,12 +1,19 @@
 package com.tianhu.system.companyAuth.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.tianhu.common.core.cfca.AxqCommonUtil;
 import com.tianhu.common.core.cfca.CfcaUtil;
+import com.tianhu.common.core.cfca.QccCommonUtil;
+import com.tianhu.common.core.constant.CacheConstants;
+import com.tianhu.common.core.constant.Constants;
 import com.tianhu.common.core.domain.R;
 import com.tianhu.common.core.exception.BaseException;
 import com.tianhu.common.core.utils.*;
+import com.tianhu.common.core.utils.file.ExcelFileUtils;
 import com.tianhu.common.core.web.controller.BaseController;
+import com.tianhu.common.core.web.domain.AjaxResult;
+import com.tianhu.common.redis.service.RedisService;
 import com.tianhu.common.security.service.TokenService;
 import com.tianhu.system.api.RemoteFileService;
 import com.tianhu.system.api.domain.PubFileInf;
@@ -19,14 +26,34 @@ import com.tianhu.system.domain.*;
 import com.tianhu.system.mapper.SysRoleMapper;
 import com.tianhu.system.service.*;
 import com.tianhu.system.utils.FlowableService;
+import com.tianhu.system.utils.SysConstant;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.swing.*;
+import java.io.*;
+import java.sql.ResultSet;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 企业认证管理
@@ -68,6 +95,10 @@ public class OwnAuthController extends BaseController {
     private RemoteFileService remoteFileService;
     @Autowired
     private SysRoleMapper roleMapper;
+    @Autowired
+    private ISysPermissionService permissionService;
+    @Autowired
+    private RedisService redisService;
     /**
      * CFCA (是否开启生产环境配置 true 开启 false 关闭)
      */
@@ -120,6 +151,16 @@ public class OwnAuthController extends BaseController {
      * CFCA证件类型(小额打款认证)
      */
     private String TYPECODE = "0";
+    /**
+     * 企查查标识 招采云链默认使用
+     */
+    private String KEY = "2eb3e260ce1c4439aa0aa039fb494036";
+    /**
+     * 企查查标识 招采云链默认使用
+     */
+    private String SECRETKEY = "03FFC1B421136621126B2AAD945E99CF";
+    //金额 正数 正整数
+    private static final  String MONEY = "([1-9]\\d*(.\\d{1,2})?)$|^(0.\\d?[1-9])$|^(0.[1-9]\\d?)";
     @Autowired
     private FlowableService flowableService;
     /**
@@ -192,16 +233,6 @@ public class OwnAuthController extends BaseController {
         }
         //经办人姓名
         String handler = CommonUtil.objToString(map.get("handler"));
-        //复核人员
-        String review = CommonUtil.objToString(map.get("review"));
-        if(CommonUtil.isEmpty(review)){
-            return R.fail("复核人员不能为空");
-        }
-        if(CommonUtil.isNotEmpty(handler)&&!review.equals(handler)){
-            return R.fail("复核人员需和经办人名称一致");
-        }else if(CommonUtil.isEmpty(handler)&&!review.equals(scyLegal)){
-            return R.fail("复核人员需和法人名称一致");
-        }
         //经办人身份证号
         String handlerCard =CommonUtil.objToString(map.get("handlerCard"));
         //经办人手机号
@@ -265,7 +296,7 @@ public class OwnAuthController extends BaseController {
         operatorAuth.put("Message", "SUCCESS");
         operatorAuth.put("Verification", "20");*/
         if(CommonUtil.isNotEmpty(handler)){
-            operatorAuth=  CfcaUtil.operatorAuth(ISPRO, INSTITUTIONID, review, IDENTIFICATIONTYPE, handlerCard, phoneNumber, zbiRemark);
+            operatorAuth=  CfcaUtil.operatorAuth(ISPRO, INSTITUTIONID, handler, IDENTIFICATIONTYPE, handlerCard, phoneNumber, zbiRemark);
         }else{
             operatorAuth=  CfcaUtil.operatorAuth(ISPRO, INSTITUTIONID, scyLegal, IDENTIFICATIONTYPE, scyLegalId, phoneNumber, zbiRemark);
         }
@@ -277,6 +308,9 @@ public class OwnAuthController extends BaseController {
         }else{
             return R.fail("运营商审核失败请确认经办人信息是否正确");
         }
+        //获取社会统一信用代码前两位
+        String scySocial = scySocialCode.substring(0, 2);
+        if("91".equals(scySocial)||"92".equals(scySocial)||"93".equals(scySocial)){
         //工商四要素
         JSONObject companyAuth = CfcaUtil.companyAuth(ISPRO, INSTITUTIONID, scyName, scySocialCode, scyLegal, IDENTIFICATIONTYPE, scyLegalId, zbiRemark);
         /*JSONObject companyAuth = new JSONObject();
@@ -295,6 +329,18 @@ public class OwnAuthController extends BaseController {
         }else{
             SysCompany.setScyAuthStatus("02");
         }
+        }else{
+            //企查查
+            JSONObject  BasicDetailsByName = QccCommonUtil.getBasicDetailsByName(KEY,SECRETKEY,scySocialCode);
+            //
+             String status =BasicDetailsByName.getString("Status");
+            if("200".equals(status)){
+                String name =BasicDetailsByName.getJSONObject("Result").getString("Name");
+                if(!scyName.equals(name)){
+                    throw new Exception("企业名称与社会同一信用代码不一致!");
+                }
+            }
+        }
         //获取创建人
         SysCompany.setCreateBy(use.getUserId()+"");
         //获取当前时间
@@ -360,7 +406,11 @@ public class OwnAuthController extends BaseController {
             // 修改用户数据
             OwnSysUser sysUser = new OwnSysUser();
             sysUser.setUserId(String.valueOf(use.getUserId()));
-            sysUser.setNickName(review);
+            if(CommonUtil.isNotEmpty(handler)){
+                sysUser.setNickName(handler);
+            }else{
+                sysUser.setNickName(scyLegal);
+            }
             sysUser.setRoleIds(roleIds);
             userService.updateUser(sysUser);
             // 增加关系表数据
@@ -387,7 +437,11 @@ public class OwnAuthController extends BaseController {
             if(handlerUser == null){
                 SysUser sysUser = new SysUser();
                 sysUser.setUserName(phoneNumber);
-                sysUser.setNickName(review);
+                if(CommonUtil.isNotEmpty(handler)){
+                    sysUser.setNickName(handler);
+                }else{
+                    sysUser.setNickName(scyLegal);
+                }
                 String password = configService.selectConfigByKey("sys.user.initPassword");
                 sysUser.setPassword(SecurityUtils.encryptPassword(password));
                 sysUser.setCreateBy(use.getUserId()+"");
@@ -416,7 +470,11 @@ public class OwnAuthController extends BaseController {
                 // TODO多公司用户名字存在不一样问题
                 OwnSysUser sysUser = new OwnSysUser();
                 sysUser.setUserId(String.valueOf(use.getUserId()));
-                sysUser.setNickName(review);
+                if(CommonUtil.isNotEmpty(handler)){
+                    sysUser.setNickName(handler);
+                }else{
+                    sysUser.setNickName(scyLegal);
+                }
                 sysUser.setRoleIds(roleIds);
                 userService.updateUser(sysUser);
                 // 新增角色
@@ -479,7 +537,6 @@ public class OwnAuthController extends BaseController {
         }
         //返回企业信息
         SysCompany company = sysCompanyService.getById(scyId);
-
         // 审批增加分组
         Map<String, Object> flowableRes = flowableService.addFlowableGroup(scyId, company.getScyName());
         if (!"200".equals(flowableRes.get("code"))) {
@@ -526,18 +583,11 @@ public class OwnAuthController extends BaseController {
     public R getlicense(MultipartFile file) {
         //获取企业信息
         SysCompany sysCompany = ownAuthService.businessLicense(file);
-//        LambdaQueryWrapper<SysCompany> queryWrapper = new LambdaQueryWrapper<>();
-//        //企业名称
-//        queryWrapper.eq(SysCompany::getScyName,sysCompany.getScyName());
-//        //统一社会信用代码
-//        queryWrapper.eq(SysCompany::getScySocialCode,sysCompany.getScySocialCode());
-//        List<SysCompany> list = sysCompanyService.findSysCompanys(queryWrapper);
-        //不重复则储存营业执照并上传
-                //获取上传文件token
-                String token = SecurityUtils.getToken(ServletUtils.getRequest());
-                //文件传输
-                R<PubFileInf> fileResult = remoteFileService.uploadFile(file,"01","04","00", "", token);
-                sysCompany.setScyLicenseFile(fileResult.getData().getPfiFileId());
+        //获取上传文件token
+        String token = SecurityUtils.getToken(ServletUtils.getRequest());
+        //文件传输
+        R<PubFileInf> fileResult = remoteFileService.uploadFile(file,"01","04","00", "", token);
+        sysCompany.setScyLicenseFile(fileResult.getData().getPfiFileId());
         //返回营业执照信息
         System.out.print("ocr识别==========>" + sysCompany);
         return R.ok(sysCompany);
@@ -737,9 +787,9 @@ public class OwnAuthController extends BaseController {
      * @return
      */
     @PostMapping("/verification")
-    public R verification(@RequestBody Map<String,Object> map) throws Exception {
+    public R verification(@RequestBody Map<String,Object> map, HttpServletRequest request) throws Exception {
         //获取登录用户
-        LoginUser user = tokenService.getLoginUser();
+        LoginUser loginUser = tokenService.getLoginUser();
         //电话
         String phone = CommonUtil.objToString(map.get("phone"));
         //企业id
@@ -812,6 +862,18 @@ public class OwnAuthController extends BaseController {
         sysCompanyProduct.setScpEndDate("20990101");
         sysCompanyProduct.setScpState("00");
         sysCompanyProductService.insertSysCompanyProduct(sysCompanyProduct);
+
+        // 角色集合
+        SysUser sysUser = loginUser.getSysUser();
+        sysUser.setCompanyId(scyId);
+        sysUser.setCompanyStatus(sysCompany.getScyStatus());
+        Set<String> roles = permissionService.getRolePermission(sysUser.getUserId(), sysUser.getCompanyId());
+        Set<String> permissions = this.getPermissions(sysUser);
+        loginUser.setRoles(roles);
+        loginUser.setPermissions(permissions);
+        loginUser.setSysUser(sysUser);
+        String token = SecurityUtils.getToken(request);
+        redisService.setCacheObject(CacheConstants.LOGIN_TOKEN_KEY + token, loginUser, Constants.TOKEN_EXPIRE * 60, TimeUnit.SECONDS);
         return R.ok();
     }
     /**
@@ -852,4 +914,26 @@ public class OwnAuthController extends BaseController {
             return R.ok();
         }
     }
+
+    private Set<String> getPermissions(SysUser user){
+        Set<String> permissions = new HashSet<String>();
+        //平台走原流程
+        if(SysConstant.PLATFORM_NO.equals(user.getCompanyId()) ){
+            permissions = permissionService.getMenuPermission(user.getUserId());
+            System.out.println("平台用户");
+        }else{
+            List<String> roleList = permissionService.getRoles(user.getUserId().toString(), user.getCompanyId());
+            //初始用户,菜单权限数据取企业产品菜单数据
+            if(roleList.contains(SysConstant.ROLE_IS_AUTO)){
+                permissions = permissionService.getMenuByAutoUser(user);
+                System.out.println("企业初始用户");
+            }else{
+                //非初始用户菜单数据取  角色菜单-公司产品菜单数据并集
+                permissions = permissionService.getMenuByCommonUser(user);
+                System.out.println("企业普通用户");
+            }
+        }
+        return permissions;
+    }
+
 }

+ 70 - 0
tianhu-system/src/main/java/com/tianhu/system/utils/RegularUtil.java

@@ -0,0 +1,70 @@
+package com.tianhu.system.utils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class RegularUtil {
+    //金额 正数 正整数
+    private static final  String MONEY = "([1-9]\\d*(.\\d{1,2})?)$|^(0.\\d?[1-9])$|^(0.[1-9]\\d?)";
+    //年份
+    private static final  String YEAR = "^(19\\d\\d|20\\d\\d|2100)$";
+    //身份证
+    private static final  String CARDID = "(^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$|^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}([0-9]|X|x)$)";
+    //手机号
+    private static final String REGMOBILE= "(/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$/)";
+    //座机号
+    private static final String LANDLINE= "(/^(0\\d{2,3})-?(\\d{7,8})$/)";
+    /**
+     *正则表达式验证金额 正数 正整数
+     * @param str
+     * @return
+     */
+    public static boolean isPositive(String str) {
+        Pattern pattern = Pattern.compile(MONEY);
+        Matcher match = pattern.matcher(str);
+        return match.matches();
+    }
+
+    /**
+     *正则表达式验证是否为年份
+     * @param str
+     * @return
+     */
+    public static boolean isYear(String str) {
+        Pattern pattern = Pattern.compile(YEAR);
+        Matcher match = pattern.matcher(str);
+        return match.matches();
+    }
+
+    /**
+     *正则表达式验证是否是身份证
+     * @param str
+     * @return
+     */
+    public static boolean cardId(String str) {
+        Pattern pattern = Pattern.compile(CARDID);
+        Matcher match = pattern.matcher(str);
+        return match.matches();
+    }
+
+    /**
+     *正则表达式验证是否是手机号
+     * @param str
+     * @return
+     */
+    public static boolean phone(String str) {
+        Pattern pattern = Pattern.compile(REGMOBILE);
+        Matcher match = pattern.matcher(str);
+        return match.matches();
+    }
+    /**
+     *正则表达式验证是否是座机号
+     * @param str
+     * @return
+     */
+    public static boolean landline(String str) {
+        Pattern pattern = Pattern.compile(LANDLINE);
+        Matcher match = pattern.matcher(str);
+        return match.matches();
+    }
+}