Bläddra i källkod

1.销售公司自动添加销售角色

yfh 1 vecka sedan
förälder
incheckning
f6b2a20362

+ 45 - 12
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -14,6 +14,7 @@ import com.fs.company.vo.CompanyVO;
 import com.fs.company.vo.DeptDataVO;
 import com.fs.course.mapper.FsCourseRedPacketLogMapper;
 import com.fs.his.vo.OptionsVO;
+import com.fs.store.config.CompanyMenuConfig;
 import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsStorePayment;
@@ -22,7 +23,6 @@ import com.fs.system.service.ISysConfigService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -56,6 +56,9 @@ public class CompanyServiceImpl implements ICompanyService
     private CompanyPostMapper postMapper;
     @Autowired
     private CompanyUserMapper userMapper;
+
+    @Autowired
+    private CompanyRoleMenuMapper roleMenuMapper;
     @Autowired
     private CompanyUserRoleMapper userRoleMapper;
     @Autowired
@@ -149,16 +152,30 @@ public class CompanyServiceImpl implements ICompanyService
             post.setPostSort(0);
             post.setStatus("0");
             postMapper.insertCompanyPost(post);
-            //创建角色
-            CompanyRole role=new CompanyRole();
-            role.setCompanyId(company.getCompanyId());
-            role.setRoleName("管理员");
-            role.setRoleKey("admin");
-            role.setRoleSort(0);
-            role.setStatus("0");
-            roleMapper.insertCompanyRole(role);
-            //添加用户
-            CompanyUser user=new CompanyUser();
+
+            // 创建管理员角色(拥有全部权限)
+            CompanyRole adminRole = new CompanyRole();
+            adminRole.setCompanyId(company.getCompanyId());
+            adminRole.setRoleName("管理员");
+            adminRole.setRoleKey("admin");
+            adminRole.setRoleSort(0);
+            adminRole.setStatus("0");
+            roleMapper.insertCompanyRole(adminRole);
+
+            // 创建销售角色(新增部分,只有"我的"相关权限)
+            CompanyRole salesRole = new CompanyRole();
+            salesRole.setCompanyId(company.getCompanyId());
+            salesRole.setRoleName(company.getCompanyName() + "——销售");
+            salesRole.setRoleKey("sales");
+            salesRole.setRoleSort(1);
+            salesRole.setDataScope("5");
+            salesRole.setStatus("0");
+            // 注意:此处需要额外处理销售角色的权限,设置为仅"我的"相关权限
+            // 实际实现可能需要调用 permissionMapper 设置具体权限
+            roleMapper.insertCompanyRole(salesRole);
+
+            // 6. 创建管理员用户
+            CompanyUser user = new CompanyUser();
             user.setCompanyId(company.getCompanyId());
             user.setNickName("管理员");
 
@@ -173,9 +190,25 @@ public class CompanyServiceImpl implements ICompanyService
             user.setIsDel(0);
             user.setIsAudit(1);
             userMapper.insertCompanyUser(user);
+
+            //增加菜单权限
+            List<CompanyRoleMenu> list = new ArrayList<>();
+            String json = configService.selectConfigByKey("companymenu.config");
+            CompanyMenuConfig config = JSONUtil.toBean(json, CompanyMenuConfig.class);
+//            if (config!=null){
+//
+//            }
+            for (Long menuId : config.getMenuId())
+            {
+                CompanyRoleMenu rm = new CompanyRoleMenu();
+                rm.setRoleId(adminRole.getRoleId());
+                rm.setMenuId(menuId);
+                list.add(rm);
+            }
+            roleMenuMapper.batchRoleMenu(list);
             //添加用户角色表
             CompanyUserRole userRole=new CompanyUserRole();
-            userRole.setRoleId(role.getRoleId());
+            userRole.setRoleId(adminRole.getRoleId());
             userRole.setUserId(user.getUserId());
             userRoleMapper.insertCompanyUserRole(userRole);
             //添加用户岗位表

+ 13 - 0
fs-service-system/src/main/java/com/fs/store/config/CompanyMenuConfig.java

@@ -0,0 +1,13 @@
+package com.fs.store.config;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CompanyMenuConfig implements Serializable {
+
+    private Long [] menuId;
+
+
+}

+ 4 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsStorePaymentService.java

@@ -108,4 +108,8 @@ public interface IFsStorePaymentService
     String transferNotify(String notifyData, HttpServletRequest request);
 
     String v3TransferNotify(String notifyData, HttpServletRequest request);
+
+
+    R sendRedPacketTest(WxSendRedPacketParam param);
+
 }

+ 68 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -478,6 +478,69 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
         }
     }
 
+
+    @Override
+    public R sendRedPacketTest(WxSendRedPacketParam param) {
+
+        RedPacketConfig config = new RedPacketConfig();
+        // 根据红包模式获取配置
+
+        String  json = configService.selectConfigByKey("redPacket.config");
+        config = JSONUtil.toBean(json, RedPacketConfig.class);
+
+        param.setSource(1);
+        param.setOpenId("ooXAA1Fw5ekSqCT-WLKpoA0cDVDo");
+        param.setAmount(new BigDecimal(0.1));
+
+
+        WxPayConfig payConfig = new WxPayConfig();
+        BeanUtils.copyProperties(config, payConfig);
+//        payConfig.setPublicKeyId(null);
+//        payConfig.setPublicKeyPath(null);
+//        payConfig.setCertSerialNo("63AC73F33E0A21973BB1DE533421A2337FD91C20");
+        WxPayService wxPayService = new WxPayServiceImpl();
+        wxPayService.setConfig(payConfig);
+        TransferService transferService = wxPayService.getTransferService();
+
+        TransferBillsRequest request = new TransferBillsRequest();
+        request.setAppid(config.getAppId());
+        System.out.println("appid:"+config.getAppId());
+        request.setOpenid(param.getOpenId());
+
+        String code = String.valueOf(IdUtil.getSnowflake(0, 0).nextId());
+        request.setOutBillNo("fsCourse" + code);
+
+        Integer amount = WxPayUnifiedOrderRequest.yuanToFen(param.getAmount() != null ? param.getAmount().toString() : "0.1");
+        request.setTransferAmount(amount);
+        request.setTransferRemark("活动奖励");
+        request.setUserRecvPerception("活动奖励");
+        request.setNotifyUrl(config.getNotifyUrl());
+        request.setTransferSceneId("1000");
+
+        // 设置场景信息
+        List<TransferBillsRequest.TransferSceneReportInfo> transferSceneReportInfos = new ArrayList<>();
+        TransferBillsRequest.TransferSceneReportInfo info1 = new TransferBillsRequest.TransferSceneReportInfo();
+        info1.setInfoType("活动名称");
+        info1.setInfoContent("新会员有礼");
+        transferSceneReportInfos.add(info1);
+
+        TransferBillsRequest.TransferSceneReportInfo info2 = new TransferBillsRequest.TransferSceneReportInfo();
+        info2.setInfoType("奖励说明");
+        info2.setInfoContent("注册会员抽奖一等奖");
+        transferSceneReportInfos.add(info2);
+        request.setTransferSceneReportInfos(transferSceneReportInfos);
+
+        try {
+            TransferBillsResult transferBillsResult = transferService.transferBills(request);
+            logger.info("商家转账支付完成:[msg:{}]", transferBillsResult);
+            return R.ok("发送红包成功").put("data", transferBillsResult);
+        } catch (WxPayException e) {
+            e.printStackTrace();
+            logger.info("商家转账支付失败:[msg:{}]", e.getMessage());
+            return R.error("发送失败");
+        }
+    }
+
     @Override
     public R sendRedPacketV3(WxSendRedPacketParam param) {
         return null;
@@ -529,9 +592,14 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
             //创建微信订单
             WxPayConfig payConfig = new WxPayConfig();
             BeanUtils.copyProperties(config,payConfig);
+//            payConfig.setCertSerialNo("63AC73F33E0A21973BB1DE533421A2337FD91C20");
             WxPayService wxPayService = new WxPayServiceImpl();
             wxPayService.setConfig(payConfig);
             SignatureHeader signatureHeader = new SignatureHeader();
+//            signatureHeader.setTimeStamp("1622450000");  // 时间戳(Unix时间戳)
+//            signatureHeader.setNonce("5K8264ILTKCH16CQ2502SI8ZNMTM67VS");  // 随机字符串
+//            signatureHeader.setSerial("63AC73F33E0A21973BB1DE533421A2337FD91C20");
+//            signatureHeader.setSignature("HbjssPzTBkM2iSCmxknS663zigo3gQ1jGQ4R6E6x9356bmV6Um4WfgGWZOH+fdCx5dxjHEiIci5kOYKl0ZdRfnexFFuM2riXLSqnRboOJZ+ew8FH4ZP/zCxtlDnmIYbARoIN46RegcRmGgfOznkLcD7ihr0JixgoZ0BOYk7YLhhcbLZaE2OJmwyyYIdJCH5lvg0mXyX1yfutNxPZz13i3OmZiU42xYr4bByJICWMFTwkzha9GVfOp67q/oVu0bEGIMgGdAVoEUJZXOijKdZdOrieXT07wMU31KITKcnizaUGl5peXejbJEd6CAQcX5e8KRlRSjY8DybHAm0JawVuAw==");
             signatureHeader.setTimeStamp(request.getHeader("Wechatpay-Timestamp"));
             signatureHeader.setNonce(request.getHeader("Wechatpay-Nonce"));
             signatureHeader.setSerial(request.getHeader("Wechatpay-Serial"));

+ 7 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxPayController.java

@@ -111,6 +111,13 @@ public class WxPayController {
         }
     }
 
+    @PostMapping( "/test")
+    public R test() throws Exception {
+        WxSendRedPacketParam param  = new WxSendRedPacketParam();
+        storePaymentService.sendRedPacketTest(param);
+        return R.ok();
+    }
+
     @PostMapping( "/TransferNotify")
     public String TransferNotify(@RequestBody String notifyData, HttpServletRequest request, HttpServletResponse response) throws Exception {
         return storePaymentService.transferNotify(notifyData,request);