Przeglądaj źródła

企业认证角色权限修改

cuixq 3 lat temu
rodzic
commit
7357a4b4d5

+ 112 - 28
tianhu-system/src/main/java/com/tianhu/system/companyAuth/controller/OwnAuthController.java

@@ -23,12 +23,17 @@ import com.tianhu.system.api.domain.SysUser;
 import com.tianhu.system.api.model.LoginUser;
 import com.tianhu.system.companyAuth.service.IOwnAuthService;
 import com.tianhu.system.domain.*;
+import com.tianhu.system.mapper.SysProductMenuMapper;
 import com.tianhu.system.mapper.SysRoleMapper;
+import com.tianhu.system.mapper.SysRoleMenuMapper;
 import com.tianhu.system.service.*;
+import com.tianhu.system.service.impl.SysUserServiceImpl;
 import com.tianhu.system.utils.FlowableService;
 import com.tianhu.system.utils.RegularUtil;
 import com.tianhu.system.utils.SysConstant;
 import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -38,6 +43,7 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -51,6 +57,7 @@ import java.util.concurrent.TimeUnit;
 @RestController
 @RequestMapping("companyAuth")
 public class OwnAuthController extends BaseController {
+    private static final Logger log = LoggerFactory.getLogger(SysCompany.class);
 
     @Autowired
     private TokenService tokenService;
@@ -77,8 +84,14 @@ public class OwnAuthController extends BaseController {
     @Autowired
     private ISysUserService userService;
     @Autowired
+    private ISysUserRoleService sysUserRoleService;
+    @Autowired
     private ISysConfigService configService;
     @Autowired
+    private SysRoleMenuMapper roleMenuMapper;
+    @Autowired
+    private SysProductMenuMapper productMenuMapper;
+    @Autowired
     private RemoteFileService remoteFileService;
     @Autowired
     private SysRoleMapper roleMapper;
@@ -115,6 +128,10 @@ public class OwnAuthController extends BaseController {
      */
     private String dataScope = "1";
     /**
+     * 数据权限2自定义
+     */
+    private String scope = "2";
+    /**
      * 是否关联显示
      */
     private boolean isCheck = true;
@@ -139,22 +156,6 @@ public class OwnAuthController extends BaseController {
      */
     private String TYPECODE = "0";
     /**
-     * CFCA安心签jks路径
-     */
-    private String JSK = "0";
-    /**
-     * CFCA安心签jsk密码
-     */
-    private String TSKPOSSWORD = "0";
-    /**
-     * CFCA安心签渠道(默认Test,生产环境:Prod)
-     */
-    private String CHANNEL = "Test";
-    /**
-     * CFCA安心签(账号注册成功时生成的)
-     */
-    private String PLATID = "CA4572A39DCB55ABE05311016B0A04B3";
-    /**
      * 企查查标识 招采云链默认使用
      */
     private String KEY = "2eb3e260ce1c4439aa0aa039fb494036";
@@ -162,8 +163,14 @@ public class OwnAuthController extends BaseController {
      * 企查查标识 招采云链默认使用
      */
     private String SECRETKEY = "03FFC1B421136621126B2AAD945E99CF";
-    //金额 正数 正整数
-    private static final  String MONEY = "([1-9]\\d*(.\\d{1,2})?)$|^(0.\\d?[1-9])$|^(0.[1-9]\\d?)";
+    /**
+     * 核心企业普通用户
+     */
+    private String COREORDINARY = "system.company.coreOrdinary";
+    /**
+     * 融资企业普通用户
+     */
+    private String SUPPLIERORDINARY = "system.company.supplierOrdinary";
     @Autowired
     private FlowableService flowableService;
     /**
@@ -403,7 +410,10 @@ public class OwnAuthController extends BaseController {
         } else {
             sysCompanyService.updateSysCompany(SysCompany);
         }
-
+       SysCompany companyServices = sysCompanyService.getById(scyId);
+        if("01".equals(companyServices.getScyType())&&(CommonUtil.isEmpty(operator)||CommonUtil.isEmpty(number))){
+            throw new Exception("核心企业请填写其他管理员!");
+        }
         //部门id
         SysDept dept = new SysDept();
         dept.setCompanyId(scyId);
@@ -440,7 +450,6 @@ public class OwnAuthController extends BaseController {
             sysRole.setMenuCheckStrictly(isCheck);
             sysRole.setDeptCheckStrictly(isCheck);
             sysRole.setStatus(status);
-            sysRole.setStatus("0");
             sysRole.setCreateBy(use.getUserId() + "");
             sysRole.setIsAuto("1");
             companyService.insertRole(sysRole);
@@ -792,12 +801,13 @@ public class OwnAuthController extends BaseController {
         if(1.00<Double.valueOf(amount)){
             throw new Exception("校验金额不能大于一元!");
         }
-        String strs = amount.substring(2, 4);
+        String[] strs = amount.split("\\.");
+        System.out.println("strs"+strs);
 
         //备注
         String zbiRemark = CommonUtil.objToString(map.get("zbiRemark"));
         //打款验证
-        JSONObject operatorAuth = CfcaUtil.paymentAuth(ISPRO, INSTITUTIONID, bankAcc.get(0).getPbaiCfcaNo(), strs, zbiRemark);
+        JSONObject operatorAuth = CfcaUtil.paymentAuth(ISPRO, INSTITUTIONID, bankAcc.get(0).getPbaiCfcaNo(), strs[1], zbiRemark);
         /*JSONObject operatorAuth = new JSONObject();
         operatorAuth.put("Message", "SUCCESS");
         operatorAuth.put("Verification", "20");*/
@@ -857,10 +867,12 @@ public class OwnAuthController extends BaseController {
      * @return
      */
     @PostMapping("/verification")
+    @Transactional(rollbackFor=Exception.class)
     @Log(title = "企业认证修改", businessType = BusinessType.UPDATE)
     public R verification(@RequestBody Map<String,Object> map, HttpServletRequest request) throws Exception {
         //获取登录用户
         LoginUser loginUser = tokenService.getLoginUser();
+        SysUser user = loginUser.getSysUser();
         //电话
         String phone = CommonUtil.objToString(map.get("phone"));
         //企业id
@@ -901,19 +913,35 @@ public class OwnAuthController extends BaseController {
         //正常状态
         sysCompany.setScyStatus("00");
         JSONObject companyAccount =null;
+        //jks路径
+        String jksPath = configService.selectConfigByKey("jks_path");
+        //密码
+        String keyStorePassword = configService.selectConfigByKey("cfca_key_store_password");
+        //渠道
+        String channel = configService.selectConfigByKey("cfca_channel");
+        //platId
+        String platId = configService.selectConfigByKey("cfca_platId");
         if(CommonUtil.isNotEmpty(handler)) {
-             companyAccount = AxqCommonUtil.companyAccount(scyName, IDENTTYPECODE, scySocialCode, phoneNumber, scyPhone, AUTHENTICATIONMODE, handler, TYPECODE, handlerCard,new HttpConnector(JSK,TSKPOSSWORD,CHANNEL,PLATID));
+            try {
+                companyAccount = AxqCommonUtil.companyAccount(scyName, IDENTTYPECODE, scySocialCode, phoneNumber, scyPhone, AUTHENTICATIONMODE, handler, TYPECODE, handlerCard,new HttpConnector(jksPath,keyStorePassword,channel,platId));
+                }catch (Exception e) {
+                throw new Exception("开户失败!");
+                }
         }else{
-            companyAccount = AxqCommonUtil.companyAccount(scyName, IDENTTYPECODE, scySocialCode, phoneNumber, scyPhone, AUTHENTICATIONMODE, scyLegal, TYPECODE, scyLegalId,new HttpConnector(JSK,TSKPOSSWORD,CHANNEL,PLATID));
-        }
+            try {
+                companyAccount = AxqCommonUtil.companyAccount(scyName, IDENTTYPECODE, scySocialCode, phoneNumber, scyPhone, AUTHENTICATIONMODE, scyLegal, TYPECODE, scyLegalId,new HttpConnector(jksPath,keyStorePassword,channel,platId));
+            }catch (Exception e) {
+                throw new Exception("开户失败!");
+            }
+            }
         System.out.print("开户结果==========>" + companyAccount);
         //返回cfca用户id
         String userId = companyAccount.getJSONObject("enterprise").getString("userId");
         sysCompany.setScyCfcaUserId(userId);
         sysCompanyService.updateSysCompany(sysCompany);
-        //查询账户
+        //查询企业
         LambdaQueryWrapper<SysCompany> company = new LambdaQueryWrapper<>();
-        //所属银行
+        //企业id
         company.eq(SysCompany::getScyId,scyId);
         List<SysCompany> pany = sysCompanyService.findSysCompanys(company);
         // 融资企业权限配置
@@ -934,7 +962,63 @@ public class OwnAuthController extends BaseController {
         sysCompanyProduct.setScpState("00");
         sysCompanyProductService.insertSysCompanyProduct(sysCompanyProduct);
 
-        // 角色集合
+        // 查询普通用户菜单
+        String key =null;
+        if("01".equals(pany.get(0).getScyType())){
+            //核心企业
+            key = configService.selectConfigByKey(COREORDINARY);
+        }else{
+            //融资企业
+            key = configService.selectConfigByKey(SUPPLIERORDINARY);
+        }
+        SysProductMenu sysProductMenu =new SysProductMenu();
+        sysProductMenu.setSpmProductId(key);
+        List<SysProductMenu> product = productMenuMapper.selectSysProductMenuList(sysProductMenu);
+
+        Long[] menuIds = new Long[product.size()];
+        for(int j = 0;j < product.size();j++){
+            menuIds[j] = product.get(j).getSpmMenuId();
+        }
+
+        //创建角色
+        SysRole sysRole = new SysRole();
+        sysRole.setCompanyId(scyId);
+        sysRole.setRoleName(scyName+"普通角色");
+        sysRole.setRoleSort(defaultOrder);
+        sysRole.setRoleKey(scyName+"普通角色");
+        sysRole.setDataScope(scope);
+        sysRole.setMenuCheckStrictly(isCheck);
+        sysRole.setDeptCheckStrictly(isCheck);
+        sysRole.setStatus(status);
+        sysRole.setCreateBy(user.getUserId() + "");
+        sysRole.setCreateTime(new Date());
+        sysRole.setIsAuto("0");
+        sysRole.setMenuIds(menuIds);
+        roleService.insertRole(sysRole);
+
+        //查询企业下非经办人的用户
+        LambdaQueryWrapper<SysUserCompanyRel> companyRel = new LambdaQueryWrapper<>();
+        companyRel.eq(SysUserCompanyRel::getSucrCompanyId,scyId);
+        companyRel.eq(SysUserCompanyRel::getSucrHandler,"0");
+        List<SysUserCompanyRel> userCompanyRel = sysUserCompanyRelService.findSysUserCompanyRels(companyRel);
+        if(userCompanyRel.size()>0){
+            for(int i = 0;i<userCompanyRel.size();i++){
+                SysUserRole sysUserRole =new SysUserRole();
+                sysUserRole.setUserId(userCompanyRel.get(i).getSucrUserId());
+                List<SysUserRole> sysUserRoles = sysUserRoleService.selectSysUserRoleList(sysUserRole);
+                if(sysUserRoles.size()>0){
+                    sysUserRole.setUserId(userCompanyRel.get(i).getSucrUserId());
+                    sysUserRole.setRoleId(sysRole.getRoleId());
+                    sysUserRoleService.updateSysUserRole(sysUserRole);
+                }else{
+                    sysUserRole.setUserId(userCompanyRel.get(i).getSucrUserId());
+                    sysUserRole.setRoleId(sysRole.getRoleId());
+                    sysUserRoleService.insertSysUserRole(sysUserRole);
+                }
+            }
+        }
+        //TODO 加消息通知
+        // 刷新登录用户菜单和权限
         SysUser sysUser = loginUser.getSysUser();
         sysUser.setCompanyId(scyId);
         sysUser.setCompanyStatus(sysCompany.getScyStatus());

+ 2 - 0
tianhu-system/src/main/resources/mapper/system/SysProductMenuMapper.xml

@@ -16,6 +16,8 @@
     <select id="selectSysProductMenuList" parameterType="SysProductMenu" resultMap="SysProductMenuResult">
         <include refid="selectSysProductMenuVo"/>
         <where>
+            <if test="spmProductId != null  and spmProductId != ''">
+            spm_product_id = #{spmProductId}</if>
         </where>
     </select>
 

+ 18 - 0
tianhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -58,6 +58,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectSysUserRoleVo"/>
 		 where user_id=#{userId}
 	</select>
+	<insert id="insertSysUserRole" parameterType="SysUserRole">
+		insert into sys_user_role(
+		user_id,
+		role_id
+		)values(
+		#{userId},
+		#{roleId}
+		)
+	</insert>
+
+	<update id="updateSysUserRole" parameterType="SysUserRole">
+		update sys_user_role
+		<set>
+			<if test="userId != null and userId != 0">user_id = #{userId},</if>
+			<if test="roleId != null and roleId != ''">role_id = #{roleId},</if>
+		</set>
+		where user_id = #{userId}
+	</update>
 
 	<select id="selectDeleteQuery" parameterType="map" resultType="java.util.Map">
 		select r.user_id 'userId',r.role_id 'roleId'