فهرست منبع

Merge remote-tracking branch 'origin/master'

xdd 2 ماه پیش
والد
کامیت
28a269a3b7

+ 8 - 14
fs-admin/src/main/java/com/fs/web/controller/system/SysConfigController.java

@@ -1,17 +1,5 @@
 package com.fs.web.controller.system;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.fs.common.annotation.Log;
 import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.constant.UserConstants;
@@ -19,14 +7,20 @@ import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
-import com.fs.core.security.SecurityUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.core.security.SecurityUtils;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.service.ISysConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 参数配置 信息操作处理
- * 
+ *
 
  */
 @RestController

+ 28 - 0
fs-common/src/main/java/com/fs/common/utils/DomainUtil.java

@@ -0,0 +1,28 @@
+package com.fs.common.utils;
+
+
+import java.util.Random;
+
+public class DomainUtil {
+
+    private static final String LETTER = "abcdefghijklmnopqrstuvwxyz";
+    private static final Random RANDOM = new Random();
+
+    /**
+     * 生成二级域名
+     * @param domain 主域名
+     * @param length 名称长度
+     * @param suffix 后缀
+     * @return  二级域名
+     */
+    public static String generateSubDomain(String domain, int length, String suffix) {
+        if (length < 6) {
+            length = 6;
+        }
+        StringBuilder sub = new StringBuilder(length);
+        for (int i = 0; i < length; i++) {
+            sub.append(LETTER.charAt(RANDOM.nextInt(LETTER.length())));
+        }
+        return sub + "-" + suffix + "." + domain;
+    }
+}

+ 21 - 0
fs-company/src/main/java/com/fs/company/controller/CompanyUserController.java

@@ -4,8 +4,10 @@ import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import cn.hutool.json.JSONUtil;
 import com.fs.common.core.domain.R;
 
+import com.fs.common.utils.DomainUtil;
 import com.fs.company.domain.*;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.service.*;
@@ -13,9 +15,11 @@ import com.fs.company.vo.CompanyUserQwListVO;
 import com.fs.company.vo.CompanyUserVO;
 import com.fs.core.security.LoginUser;
 import com.fs.core.web.service.TokenService;
+import com.fs.course.config.CourseConfig;
 import com.fs.qw.vo.CompanyUserQwVO;
 import com.fs.qw.vo.QwUserVO;
 import com.fs.his.vo.OptionsVO;;
+import com.fs.system.service.ISysConfigService;
 import com.fs.system.vo.DictVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -59,6 +63,8 @@ public class CompanyUserController extends BaseController
 
     @Autowired
     private ICompanyVoiceCallerService callerService;
+    @Autowired
+    private ISysConfigService configService;
 
     /**
      * 获取用户列表
@@ -199,6 +205,21 @@ public class CompanyUserController extends BaseController
         return toAjax(companyUserService.updateUser(user));
     }
 
+    @PreAuthorize("@ss.hasPermi('company:user:query')")
+    @GetMapping(value = "generateSubDomain")
+    public AjaxResult generateSubDomain() {
+        // 获取配置中的主域名
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+
+        // 生成二级域名
+        String subDomain =  DomainUtil.generateSubDomain(config.getCourseDomainName(), 6, String.valueOf(SecurityUtils.getLoginUser().getUser().getUserId()));
+
+        AjaxResult result = AjaxResult.success();
+        result.put("data", subDomain);
+        return result;
+    }
+
     /**
      * 删除用户
      */

+ 2 - 2
fs-service-system/src/main/java/com/fs/company/domain/CompanyUser.java

@@ -3,9 +3,8 @@ package com.fs.company.domain;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import com.fs.common.core.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
 import java.util.Date;
 import java.util.List;
@@ -131,6 +130,7 @@ public class CompanyUser extends BaseEntity
     /** 域名 */
     private String domain;
 
+    @NotBlank(message = "二级域名不能为空")
     @Pattern(regexp = "^(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,})|(?:\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}))$", message = "域名格式不正确")
     public String getDomain() {
         return domain;

+ 1 - 0
fs-service-system/src/main/java/com/fs/course/config/CourseConfig.java

@@ -14,5 +14,6 @@ public class CourseConfig implements Serializable {
     private Integer answerIntegral;//答题获得积分
     private Integer defaultLine;//默认看课线路
     private String realLinkDomainName;//真链域名
+    private String courseDomainName;//链接域名
 
 }

+ 2 - 0
fs-service-system/src/main/java/com/fs/his/param/WxSendRedPacketParam.java

@@ -12,5 +12,7 @@ public class WxSendRedPacketParam implements Serializable {
 
     private BigDecimal amount;
 
+    private Long companyId;
+
 
 }

+ 19 - 9
fs-service-system/src/main/java/com/fs/system/service/ISysConfigService.java

@@ -1,18 +1,19 @@
 package com.fs.system.service;
 
-import java.util.List;
 import com.fs.system.domain.SysConfig;
 
+import java.util.List;
+
 /**
  * 参数配置 服务层
- * 
+ *
 
  */
 public interface ISysConfigService
 {
     /**
      * 查询参数配置信息
-     * 
+     *
      * @param configId 参数配置ID
      * @return 参数配置信息
      */
@@ -20,7 +21,7 @@ public interface ISysConfigService
 
     /**
      * 根据键名查询参数配置信息
-     * 
+     *
      * @param configKey 参数键名
      * @return 参数键值
      */
@@ -28,7 +29,7 @@ public interface ISysConfigService
 
     /**
      * 查询参数配置列表
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置集合
      */
@@ -36,7 +37,7 @@ public interface ISysConfigService
 
     /**
      * 新增参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -44,7 +45,7 @@ public interface ISysConfigService
 
     /**
      * 修改参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -52,20 +53,29 @@ public interface ISysConfigService
 
     /**
      * 批量删除参数信息
-     * 
+     *
      * @param configIds 需要删除的参数ID
      * @return 结果
      */
     public int deleteConfigByIds(Long[] configIds);
 
+    /**
+     * 加载参数缓存数据
+     */
+    public void loadingConfigCache();
     /**
      * 清空缓存数据
      */
     public void clearCache();
 
+    /**
+     * 重置参数缓存数据
+     */
+    public void resetConfigCache();
+
     /**
      * 校验参数键名是否唯一
-     * 
+     *
      * @param config 参数信息
      * @return 结果
      */

+ 35 - 20
fs-service-system/src/main/java/com/fs/system/service/impl/SysConfigServiceImpl.java

@@ -1,14 +1,5 @@
 package com.fs.system.service.impl;
 
-import java.util.Collection;
-import java.util.List;
-import javax.annotation.PostConstruct;
-
-import com.fs.system.domain.SysConfig;
-import com.fs.system.mapper.SysConfigMapper;
-import com.fs.system.service.ISysConfigService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
 import com.fs.common.annotation.DataSource;
 import com.fs.common.constant.Constants;
 import com.fs.common.constant.UserConstants;
@@ -17,11 +8,20 @@ import com.fs.common.core.text.Convert;
 import com.fs.common.enums.DataSourceType;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.StringUtils;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.mapper.SysConfigMapper;
+import com.fs.system.service.ISysConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.util.Collection;
+import java.util.List;
 
 /**
  * 参数配置 服务层实现
- * 
- 
+ *
+
  */
 @Service
 public class SysConfigServiceImpl implements ISysConfigService
@@ -47,7 +47,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 查询参数配置信息
-     * 
+     *
      * @param configId 参数配置ID
      * @return 参数配置信息
      */
@@ -62,7 +62,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 根据键名查询参数配置信息
-     * 
+     *
      * @param configKey 参数key
      * @return 参数键值
      */
@@ -87,7 +87,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 查询参数配置列表
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置集合
      */
@@ -99,7 +99,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 新增参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -116,7 +116,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 修改参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -126,15 +126,15 @@ public class SysConfigServiceImpl implements ISysConfigService
         int row = configMapper.updateConfig(config);
         if (row > 0)
         {
-
             redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
         }
+        this.resetConfigCache();
         return row;
     }
 
     /**
      * 批量删除参数信息
-     * 
+     *
      * @param configIds 需要删除的参数ID
      * @return 结果
      */
@@ -158,6 +158,15 @@ public class SysConfigServiceImpl implements ISysConfigService
         return count;
     }
 
+    @Override
+    public void loadingConfigCache() {
+        List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig());
+        for (SysConfig config : configsList)
+        {
+            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config.getConfigValue());
+        }
+    }
+
     /**
      * 清空缓存数据
      */
@@ -168,9 +177,15 @@ public class SysConfigServiceImpl implements ISysConfigService
         redisCache.deleteObject(keys);
     }
 
+    @Override
+    public void resetConfigCache() {
+        clearCache();
+        loadingConfigCache();
+    }
+
     /**
      * 校验参数键名是否唯一
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -195,7 +210,7 @@ public class SysConfigServiceImpl implements ISysConfigService
 
     /**
      * 设置cache key
-     * 
+     *
      * @param configKey 参数键
      * @return 缓存键key
      */