Browse Source

Merge remote-tracking branch 'origin/master'

zyp 3 weeks ago
parent
commit
c43fe8c91f

+ 8 - 0
fs-admin/src/main/java/com/fs/api/controller/IndexStatisticsController.java

@@ -4,6 +4,8 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.statis.StatisticsRedisConstant;
 import com.fs.statis.dto.*;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -20,6 +22,9 @@ import static com.fs.statis.StatisticsRedisConstant.*;
 public class IndexStatisticsController {
     @Autowired
     private RedisCache redisCache;
+
+    @Autowired
+    private ISysConfigService sysConfigService;
     /**
      * 分析概览
      */
@@ -59,6 +64,9 @@ public class IndexStatisticsController {
     @GetMapping("/trafficLog")
     public R getTrafficLog(){
         TrafficLogDTO trafficLogDTO = redisCache.getCacheObject(DATA_OVERVIEW_TRAFFIC_LOG);
+        SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("redPacket.Traffic.config");
+        String configValue = sysConfig.getConfigValue();
+        trafficLogDTO.setTraffic(configValue);
         return R.ok().put("data",trafficLogDTO);
     }
 

+ 16 - 4
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -10,10 +10,7 @@ import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.domain.FsUserCourseVideoRedPackage;
-import com.fs.course.param.CompanyRedPacketParam;
-import com.fs.course.param.FsBatchPeriodRedPackageParam;
-import com.fs.course.param.PeriodCountParam;
-import com.fs.course.param.PeriodStatisticCountParam;
+import com.fs.course.param.*;
 import com.fs.course.service.IFsUserCoursePeriodDaysService;
 import com.fs.course.service.IFsUserCoursePeriodService;
 import com.fs.course.service.IFsUserCourseVideoRedPackageService;
@@ -25,6 +22,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
@@ -273,4 +271,18 @@ public class FsUserCoursePeriodController extends BaseController {
         List<FsUserCoursePeriod> list = fsUserCoursePeriodService.selectFsPeriodlist(param);
         return R.ok().put("data", list);
     }
+
+    @PreAuthorize("@ss.hasPermi('course:period:setCompanyRedPacket')")
+    @ApiOperation("按公司批量保存设置红包金额")
+    @PostMapping("/batchRedPacket/byCompany")
+    public R batchRedPacketByCompany(@Validated @RequestBody BatchCompanyRedPackageParam param) {
+        try {
+            fsUserCourseVideoRedPackageService.batchRedPacketByCompany(param);
+        } catch (Exception e) {
+            logger.error("按恭送批量保存设置红包金额-失败!,入参:{}", param);
+            return R.error("保存失败!");
+        }
+        return R.ok();
+    }
+
 }

+ 0 - 7
fs-company/src/main/java/com/fs/company/controller/company/IndexStatisticsController.java

@@ -28,10 +28,6 @@ public class IndexStatisticsController {
 
     @Autowired
     private TokenService tokenService;
-
-
-    @Autowired
-    private ISysConfigService sysConfigService;
     /**
      * 分析概览
      */
@@ -77,9 +73,6 @@ public class IndexStatisticsController {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         Long companyId = loginUser.getCompany().getCompanyId();
         TrafficLogDTO trafficLogDTO = redisCache.getCacheObject(String.format("%s:%d",DATA_OVERVIEW_TRAFFIC_LOG,companyId));
-        SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("redPacket.Traffic.config");
-        String configValue = sysConfig.getConfigValue();
-        trafficLogDTO.setTraffic(configValue);
         return R.ok().put("data",trafficLogDTO);
     }
 

+ 9 - 8
fs-service/src/main/java/com/fs/course/mapper/FsCourseTrafficLogMapper.java

@@ -127,6 +127,7 @@ public interface FsCourseTrafficLogMapper
             "<if test='createTime != null'>AND create_time &lt;= #{createTime}</if> " +
             "</script>")
     List<Long> findRecordsNumByIds( @Param("createTime") Date createTime);
+
     @Update("<script>" +
             "UPDATE fs_course_traffic_log SET status = #{status} WHERE log_id IN " +
             "<foreach item='id' collection='ids' open='(' separator=',' close=')'>" +
@@ -145,14 +146,14 @@ public interface FsCourseTrafficLogMapper
             "</script>")
     Long findRecordsNum(@Param("companyId") Long companyId);
 
-    // 批量更新状态
-    @Update("<script>" +
-            "UPDATE fs_course_traffic_log SET status = 1 WHERE log_id IN " +
-            "<foreach item='id' collection='ids' open='(' separator=',' close=')'>" +
-            "#{id}" +
-            "</foreach>" +
-            "</script>")
-    int updateStatusByIds(@Param("ids") List<Long> ids);
+//    // 批量更新状态
+//    @Update("<script>" +
+//            "UPDATE fs_course_traffic_log SET status = 1 WHERE log_id IN " +
+//            "<foreach item='id' collection='ids' open='(' separator=',' close=')'>" +
+//            "#{id}" +
+//            "</foreach>" +
+//            "</script>")
+//    int updateStatusByIds(@Param("ids") List<Long> ids);
 
     @Select("<script>" +
             "SELECT internet_traffic FROM fs_course_traffic_log WHERE log_id IN " +

+ 23 - 0
fs-service/src/main/java/com/fs/course/param/BatchCompanyRedPackageParam.java

@@ -0,0 +1,23 @@
+package com.fs.course.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class BatchCompanyRedPackageParam {
+
+    @NotNull(message = "营期ID不能为空")
+    private Long periodId;
+
+    @NotEmpty(message = "公司ID不能为空")
+    private List<Long> companyIds;
+
+    @NotNull(message = "红包金额不能为空")
+    @DecimalMin(value = "0.1", message = "红包金额必须大于0.1")
+    private BigDecimal redPacketMoney;
+}

+ 14 - 8
fs-service/src/main/java/com/fs/course/service/IFsUserCourseVideoRedPackageService.java

@@ -2,19 +2,20 @@ package com.fs.course.service;
 
 import java.util.List;
 import com.fs.course.domain.FsUserCourseVideoRedPackage;
+import com.fs.course.param.BatchCompanyRedPackageParam;
 import com.fs.course.param.FsBatchPeriodRedPackageParam;
 
 /**
  * 课程公司红包Service接口
- * 
+ *
  * @author fs
  * @date 2024-10-25
  */
-public interface IFsUserCourseVideoRedPackageService 
+public interface IFsUserCourseVideoRedPackageService
 {
     /**
      * 查询课程公司红包
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 课程公司红包
      */
@@ -22,7 +23,7 @@ public interface IFsUserCourseVideoRedPackageService
 
     /**
      * 查询课程公司红包列表
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 课程公司红包集合
      */
@@ -30,7 +31,7 @@ public interface IFsUserCourseVideoRedPackageService
 
     /**
      * 新增课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -38,7 +39,7 @@ public interface IFsUserCourseVideoRedPackageService
 
     /**
      * 修改课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -46,7 +47,7 @@ public interface IFsUserCourseVideoRedPackageService
 
     /**
      * 批量删除课程公司红包
-     * 
+     *
      * @param ids 需要删除的课程公司红包主键集合
      * @return 结果
      */
@@ -54,7 +55,7 @@ public interface IFsUserCourseVideoRedPackageService
 
     /**
      * 删除课程公司红包信息
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 结果
      */
@@ -78,4 +79,9 @@ public interface IFsUserCourseVideoRedPackageService
     List<FsUserCourseVideoRedPackage> selectByRuleIds(List<Long> ruleIds);
 
     void batchSaveFsUserCourseVideoRedPackage(List<FsUserCourseVideoRedPackage> redPackage);
+    /**
+     * 按照公司批量设置红包
+     * @param param 入参
+     */
+    void batchRedPacketByCompany(BatchCompanyRedPackageParam param);
 }

+ 50 - 8
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoRedPackageServiceImpl.java

@@ -4,10 +4,13 @@ import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import com.fs.common.exception.CustomException;
+import com.fs.common.utils.StringUtils;
 import com.fs.course.domain.FsUserCoursePeriod;
 import com.fs.course.domain.FsUserCoursePeriodDays;
 import com.fs.course.mapper.FsUserCoursePeriodDaysMapper;
 import com.fs.course.mapper.FsUserCoursePeriodMapper;
+import com.fs.course.param.BatchCompanyRedPackageParam;
 import com.fs.course.param.FsBatchPeriodRedPackageParam;
 import com.google.common.collect.Lists;
 import org.apache.ibatis.annotations.Param;
@@ -23,12 +26,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 课程公司红包Service业务层处理
- * 
+ *
  * @author fs
  * @date 2024-10-25
  */
 @Service
-public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVideoRedPackageService 
+public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVideoRedPackageService
 {
     @Autowired
     private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
@@ -44,7 +47,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 查询课程公司红包
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 课程公司红包
      */
@@ -56,7 +59,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 查询课程公司红包列表
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 课程公司红包
      */
@@ -68,7 +71,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 新增课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -80,7 +83,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 修改课程公司红包
-     * 
+     *
      * @param fsUserCourseVideoRedPackage 课程公司红包
      * @return 结果
      */
@@ -92,7 +95,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 批量删除课程公司红包
-     * 
+     *
      * @param ids 需要删除的课程公司红包主键
      * @return 结果
      */
@@ -104,7 +107,7 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
 
     /**
      * 删除课程公司红包信息
-     * 
+     *
      * @param id 课程公司红包主键
      * @return 结果
      */
@@ -239,5 +242,44 @@ public class FsUserCourseVideoRedPackageServiceImpl implements IFsUserCourseVide
     public void batchSaveFsUserCourseVideoRedPackage(List<FsUserCourseVideoRedPackage> redPackage) {
         fsUserCourseVideoRedPackageMapper.batchSaveFsUserCourseVideoRedPackage(redPackage);
     }
+    /**
+     * 按照公司批量设置红包
+     * @param param 入参
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void batchRedPacketByCompany(BatchCompanyRedPackageParam param) {
+        FsUserCoursePeriod period = userCoursePeriodMapper.selectFsUserCoursePeriodById(param.getPeriodId());
+        if (Objects.isNull(period)) {
+            throw new CustomException("营期不存在");
+        }
+
+        Set<Long> targetCompanyIds = new HashSet<>(param.getCompanyIds());
+        Set<Long> companyIds = Arrays.stream(period.getCompanyId().split(","))
+                .filter(StringUtils::isNotBlank)
+                .map(Long::valueOf)
+                .filter(targetCompanyIds::contains)
+                .collect(Collectors.toSet());
+
+        if (companyIds.isEmpty()) {
+            throw new CustomException("当前营期不包含所选公司");
+        }
+
+        List<FsUserCoursePeriodDays> periodVideos = userCoursePeriodDaysMapper.selectCourseVideoList(Collections.singleton(period.getPeriodId()));
+
+        List<FsUserCourseVideoRedPackage> fsRedPackageList = companyIds.stream()
+                .flatMap(companyId -> periodVideos.stream().map(video -> {
+                    FsUserCourseVideoRedPackage redPkg = new FsUserCourseVideoRedPackage();
+                    redPkg.setCompanyId(companyId);
+                    redPkg.setVideoId(video.getVideoId());
+                    redPkg.setRedPacketMoney(param.getRedPacketMoney());
+                    redPkg.setPeriodId(period.getPeriodId());
+                    redPkg.setDataType(2);
+                    return redPkg;
+                }))
+                .collect(Collectors.toList());
+
+        this.batchSaveCompanyRedPackage(fsRedPackageList);
+    }
 
 }

+ 1 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -1024,6 +1024,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         packetParam.setSource(param.getSource());
         packetParam.setRedPacketMode(config.getRedPacketMode());
         packetParam.setCompanyId(param.getCompanyId());
+        packetParam.setAppId(param.getAppId());
 
         System.out.println("红包金额"+amount);
         System.out.println("红包商户号"+packetParam);

+ 1 - 1
fs-service/src/main/resources/application-config-druid-kyt.yml

@@ -79,7 +79,7 @@ cloud_host:
 headerImg:
   imgUrl: https://kuanyitang-1317640934.cos.ap-shanghai.myqcloud.com/kuanyitang/20250813/6b3b62e01672407c98f0561b73e35f6a.jpg
 ipad:
-  ipadUrl:
+  ipadUrl: http://kytIpad.ylrzcloud.com
   aiApi:
 wx_miniapp_temp:
   pay_order_temp_id:

+ 1 - 1
fs-service/src/main/resources/application-config-druid-sxjz.yml

@@ -80,7 +80,7 @@ headerImg:
   imgUrl: https://jz-cos-1356808054.cos.ap-chengdu.myqcloud.com/fs/20250515/0877754b59814ea8a428fa3697b20e68.png
 ipad:
   ipadUrl: http://ipad.xintaihl.cn
-  aiApi:
+  aiApi: http://1.95.196.10:3000/api
 wx_miniapp_temp:
   pay_order_temp_id:
   inquiry_temp_id:

+ 9 - 4
fs-service/src/main/resources/application-druid-kyt.yml

@@ -5,9 +5,12 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 172.17.0.4
+#    host: 172.17.0.4
+#    # 端口,默认为6379
+#    port: 6379
+    host: sh-crs-bln5ggez.sql.tencentcdb.com
     # 端口,默认为6379
-    port: 6379
+    port: 26161
     # 密码
     password: Ylrztek250218!3@.
     # 连接超时时间
@@ -30,7 +33,8 @@ spring:
       druid:
         # 主库数据源
         master:
-          url: jdbc:mysql://172.17.0.3:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#          url: jdbc:mysql://172.17.0.3:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+          url: jdbc:mysql://sh-cdb-qyfybkwy.sql.tencentcdb.com:24529/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
           username: root
           password: Ylrztek250218!3@.
         # 从库数据源
@@ -85,7 +89,8 @@ spring:
       druid:
         # 主库数据源
         master:
-          url: jdbc:mysql://172.17.0.3:3306/sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#          url: jdbc:mysql://172.17.0.3:3306/sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+          url: jdbc:mysql://sh-cdb-qyfybkwy.sql.tencentcdb.com:24529/sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
           username: root
           password: Ylrztek250218!3@.
         # 初始连接数