Selaa lähdekoodia

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_scrm_java

caoliqin 1 kuukausi sitten
vanhempi
commit
dc42ebefb0
22 muutettua tiedostoa jossa 214 lisäystä ja 13 poistoa
  1. 13 0
      fs-admin/src/main/java/com/fs/store/controller/FsStoreProductController.java
  2. 1 1
      fs-admin/src/main/java/com/fs/store/controller/FsStoreProductPackageController.java
  3. 1 1
      fs-service-system/src/main/java/com/fs/company/cache/impl/ICompanyCacheServiceImpl.java
  4. 6 0
      fs-service-system/src/main/java/com/fs/course/mapper/FsCourseTrafficLogMapper.java
  5. 29 0
      fs-service-system/src/main/java/com/fs/statis/dto/ModifyMoreDTO.java
  6. 5 0
      fs-service-system/src/main/java/com/fs/statis/dto/TrafficLogDTO.java
  7. 3 0
      fs-service-system/src/main/java/com/fs/statis/mapper/ConsumptionBalanceMapper.java
  8. 50 1
      fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsServiceImpl.java
  9. 6 0
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductAttrValueMapper.java
  10. 3 0
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductMapper.java
  11. 3 2
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductPackageMapper.java
  12. 1 1
      fs-service-system/src/main/java/com/fs/store/param/FsProductAttrValueParam.java
  13. 1 0
      fs-service-system/src/main/java/com/fs/store/param/FsStoreProductPackageModifyParam.java
  14. 1 1
      fs-service-system/src/main/java/com/fs/store/service/IFsStoreProductPackageService.java
  15. 4 0
      fs-service-system/src/main/java/com/fs/store/service/IFsStoreProductService.java
  16. 2 2
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductPackageServiceImpl.java
  17. 40 2
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductServiceImpl.java
  18. 10 1
      fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductListVO.java
  19. 8 0
      fs-service-system/src/main/resources/mapper/course/FsCourseTrafficLogMapper.xml
  20. 3 0
      fs-service-system/src/main/resources/mapper/statis/ConsumptionBalanceMapper.xml
  21. 15 0
      fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml
  22. 9 1
      fs-service-system/src/main/resources/mapper/store/FsStoreProductPackageMapper.xml

+ 13 - 0
fs-admin/src/main/java/com/fs/store/controller/FsStoreProductController.java

@@ -6,6 +6,7 @@ import java.util.Date;
 import java.util.List;
 
 import com.fs.common.core.domain.R;
+import com.fs.statis.dto.ModifyMoreDTO;
 import com.fs.store.domain.FsStoreProductAttr;
 import com.fs.store.domain.FsStoreProductPackage;
 import com.fs.store.param.FsProductAttrValueParam;
@@ -59,6 +60,18 @@ public class FsStoreProductController extends BaseController
     private IFsStoreProductAttrValueService attrValueService;
 
 
+    /**
+     * 批量修改商品
+     * @param modifyMoreDTO
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('store:storeProduct:list')")
+    @PostMapping("/batchModify")
+    public R batchModify(@RequestBody ModifyMoreDTO modifyMoreDTO){
+        fsStoreProductService.batchModify(modifyMoreDTO);
+        return R.ok();
+    }
+
     /**
      * 查询商品列表
      */

+ 1 - 1
fs-admin/src/main/java/com/fs/store/controller/FsStoreProductPackageController.java

@@ -149,7 +149,7 @@ public class FsStoreProductPackageController extends BaseController
     @Log(title = "商品组合套餐", businessType = BusinessType.UPDATE)
     @PostMapping("/modifyMore")
     public AjaxResult modifyMore(@RequestBody FsStoreProductPackageModifyParam param) {
-        return toAjax(fsStoreProductPackageService.updateFsStoreProductPackages(param.getPackageIds(),param.getStatus()));
+        return toAjax(fsStoreProductPackageService.updateFsStoreProductPackages(param.getPackageIds(),param.getStatus(),param.getCompanyId()));
     }
 
     /**

+ 1 - 1
fs-service-system/src/main/java/com/fs/company/cache/impl/ICompanyCacheServiceImpl.java

@@ -23,7 +23,7 @@ public class ICompanyCacheServiceImpl implements ICompanyCacheService {
             .build();
     private static final Cache<Long, String> COMPANY_NAME_CACHE = Caffeine.newBuilder()
             .maximumSize(1000)
-            .expireAfterWrite(3, TimeUnit.MINUTES)
+            .expireAfterWrite(7, TimeUnit.DAYS)
             .build();
     @Override
     public Company selectCompanyById(Long companyId) {

+ 6 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsCourseTrafficLogMapper.java

@@ -87,4 +87,10 @@ public interface FsCourseTrafficLogMapper
      */
     Long getMonthTrafficLog();
 
+    /**
+     * 昨天
+     * @return Long
+     */
+    Long getYesterdayTrafficLog();
+
 }

+ 29 - 0
fs-service-system/src/main/java/com/fs/statis/dto/ModifyMoreDTO.java

@@ -0,0 +1,29 @@
+package com.fs.statis.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 批量修改商品
+ */
+@Data
+public class ModifyMoreDTO implements Serializable {
+    /**
+     * 产品id
+     */
+    private List<Long> productId;
+    /**
+     * 产品状态
+     */
+    private Integer goodsStatus;
+    /**
+     * 是否显示
+     */
+    private Integer goodsIsShow;
+    /**
+     * 公司id
+     */
+    private String companyIds;
+}

+ 5 - 0
fs-service-system/src/main/java/com/fs/statis/dto/TrafficLogDTO.java

@@ -9,6 +9,11 @@ import java.io.Serializable;
  */
 @Data
 public class TrafficLogDTO implements Serializable {
+
+    /**
+     * 昨天
+     */
+    private Long yesterday;
     /**
      * 今日流量
      */

+ 3 - 0
fs-service-system/src/main/java/com/fs/statis/mapper/ConsumptionBalanceMapper.java

@@ -118,4 +118,7 @@ public interface ConsumptionBalanceMapper {
      * @return 趋势
      */
     List<RewardMoneyTrendDTO> rewardMoneyTrendDTO(AnalysisPreviewQueryDTO param);
+
+    BigDecimal getCurrentBalance();
+
 }

+ 50 - 1
fs-service-system/src/main/java/com/fs/statis/service/impl/StatisticsServiceImpl.java

@@ -16,8 +16,11 @@ import com.fs.store.service.IFsStorePaymentService;
 import com.fs.store.service.IFsStoreProductService;
 import com.fs.store.service.IFsUserService;
 import com.fs.store.service.cache.IFsUserCourseCacheService;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.service.ISysConfigService;
 import com.hc.openapi.tool.util.ObjectUtils;
 import com.hc.openapi.tool.util.StringUtils;
+import org.apache.http.util.Asserts;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -62,6 +65,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
     @Autowired
     private IFsStoreProductService productService;
 
+    @Autowired
+    private ISysConfigService configService;
+
     @Override
     public void dataOverviewTask() {
         DealerAggregatedDTO dealerAggregatedDTO = this.dealerAggregated();
@@ -601,9 +607,50 @@ public class StatisticsServiceImpl implements IStatisticsService {
 
     @Override
     public ConsumptionBalanceDataDTO rechargeConsumption() {
-        return consumptionBalanceMapper.rechargeConsumption();
+        // 获取流量统计数据
+        TrafficLogDTO trafficLog = this.getTrafficLog();
+
+        // 获取流量价格配置
+        SysConfig config = configService.selectConfigByConfigKey("statis.config");
+        Asserts.notNull(config, "流量价格配置不能为空!");
+        JSONObject jsonObject = JSONObject.parseObject(config.getConfigValue());
+        float trafficPrice = jsonObject.getFloatValue("trafficPrice");
+
+        // 创建消费余额数据对象
+        ConsumptionBalanceDataDTO consumptionBalanceData = new ConsumptionBalanceDataDTO();
+
+        // 计算消费金额(将流量从字节转换为GB,然后乘以每GB价格)
+        BigDecimal todayConsumption = calculateTrafficCost(trafficLog.getToday(), trafficPrice);
+        BigDecimal yesterdayConsumption = calculateTrafficCost(trafficLog.getYesterday(), trafficPrice);
+
+        // 设置消费数据
+        consumptionBalanceData.setTodayComsumption(todayConsumption);
+        consumptionBalanceData.setYesterdayComsumption(yesterdayConsumption);
+
+        // 从数据库获取当前余额
+        BigDecimal currentBalance = consumptionBalanceMapper.getCurrentBalance();
+        consumptionBalanceData.setBalance(currentBalance);
+
+        return consumptionBalanceData;
     }
+    /**
+     * 计算流量消费金额
+     * @param trafficBytes 流量字节数
+     * @param pricePerGB 每GB价格
+     * @return 消费金额
+     */
+    private BigDecimal calculateTrafficCost(Long trafficBytes, float pricePerGB) {
+        if (trafficBytes == null || trafficBytes <= 0) {
+            return BigDecimal.ZERO;
+        }
+
+        // 将字节转换为GB (1GB = 1024^3 bytes)
+        BigDecimal trafficGB = new BigDecimal(trafficBytes)
+                .divide(new BigDecimal(1024 * 1024 * 1024), 6, BigDecimal.ROUND_HALF_UP);
 
+        // 计算消费金额
+        return trafficGB.multiply(new BigDecimal(pricePerGB)).setScale(2, BigDecimal.ROUND_HALF_UP);
+    }
     @Override
     public AnalysisPreviewDTO analysisPreview(AnalysisPreviewQueryDTO param) {
         AnalysisPreviewDTO dto = new AnalysisPreviewDTO();
@@ -788,9 +835,11 @@ public class StatisticsServiceImpl implements IStatisticsService {
     public TrafficLogDTO getTrafficLog() {
         TrafficLogDTO trafficLogDTO = new TrafficLogDTO();
         Long todayTrafficLog = fsCourseTrafficLogMapper.getTodayTrafficLog();
+        Long yesterdayTrafficLog = fsCourseTrafficLogMapper.getYesterdayTrafficLog();
         Long monthTrafficLog = fsCourseTrafficLogMapper.getMonthTrafficLog();
         trafficLogDTO.setToday(todayTrafficLog);
         trafficLogDTO.setThisMonth(monthTrafficLog);
+        trafficLogDTO.setYesterday(yesterdayTrafficLog);
         return trafficLogDTO;
     }
 

+ 6 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductAttrValueMapper.java

@@ -93,9 +93,15 @@ public interface FsStoreProductAttrValueMapper
             "<if test = 'maps.cateId != null    '> " +
             "and (p.cate_id =#{maps.cateId} or c.pid=#{maps.cateId} )" +
             "</if>" +
+
             "<if test = 'maps.isShow != null    '> " +
             "and p.is_show = #{maps.isShow}  " +
             "</if>" +
+
+            "<if test = 'maps.companyId != null    '> " +
+            "and find_in_set(#{maps.companyId},p.company_ids)  " +
+            "</if>" +
+
             " order by v.id desc "+
             "</script>"})
     List<FsStoreProductAttrValueVO> selectFsStoreProductAttrValueListVO(@Param("maps")FsProductAttrValueParam param);

+ 3 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductMapper.java

@@ -1,6 +1,8 @@
 package com.fs.store.mapper;
 
 import java.util.List;
+
+import com.fs.statis.dto.ModifyMoreDTO;
 import com.fs.store.domain.FsStoreProduct;
 import com.fs.store.param.FsStoreProductQueryParam;
 import com.fs.store.vo.*;
@@ -201,4 +203,5 @@ public interface FsStoreProductMapper
     List<FsStoreProductExportVO> selectFsStoreProductExportList(@Param("maps")FsStoreProduct fsStoreProduct);
 
 
+    void batchModify(ModifyMoreDTO modifyMoreDTO);
 }

+ 3 - 2
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductPackageMapper.java

@@ -74,7 +74,7 @@ public interface FsStoreProductPackageMapper
             "and p.cate_id =#{maps.cateId} " +
             "</if>" +
             "<if test = 'maps.companyId != null      '> " +
-            "and (p.company_id =#{maps.companyId} or p.company_id=0) " +
+            "and (p.company_id =#{maps.companyId}) " +
             "</if>" +
             "<if test = 'maps.status != null      '> " +
             "and p.status =#{maps.status} " +
@@ -113,7 +113,8 @@ public interface FsStoreProductPackageMapper
      * 批量修改商品组合套餐
      *
      * @param packageIds 需要修改的数据ID
+     * @param companyId
      * @return 结果
      */
-    public int updateFsStoreProductPackages(@Param("packageIds")Long[] orderIds,@Param("status")Long status);
+    public int updateFsStoreProductPackages(@Param("packageIds")Long[] orderIds, @Param("status")Long status, @Param("companyId") Long companyId);
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/param/FsProductAttrValueParam.java

@@ -12,5 +12,5 @@ public class FsProductAttrValueParam implements Serializable
     private Integer productType;
     private Integer isShow;
     Integer tuiCateId;
-
+    private Long companyId;
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreProductPackageModifyParam.java

@@ -10,4 +10,5 @@ import java.io.Serializable;
 public class FsStoreProductPackageModifyParam  implements Serializable {
     private Long[] packageIds;
     private Long status;
+    private Long companyId;
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/service/IFsStoreProductPackageService.java

@@ -72,6 +72,6 @@ public interface IFsStoreProductPackageService
      * @param packageIds 需要修改的数据ID
      * @return 结果
      */
-    public int updateFsStoreProductPackages(Long[] orderIds,Long status);
+    public int updateFsStoreProductPackages(Long[] orderIds,Long status,Long companyId);
 
 }

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

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.fs.common.core.domain.R;
+import com.fs.statis.dto.ModifyMoreDTO;
 import com.fs.store.domain.FsStoreProduct;
 import com.fs.store.param.FsStoreProductAddEditParam;
 import com.fs.store.param.FsStoreProductQueryParam;
@@ -105,4 +106,7 @@ public interface IFsStoreProductService
     List<FsStoreProductExportVO> selectFsStoreProductExportList(FsStoreProduct fsStoreProduct);
 
     String importStoreProduct(List<FsStoreProductExportVO> list, boolean updateSupport);
+
+    void batchModify(ModifyMoreDTO modifyMoreDTO);
+
 }

+ 2 - 2
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductPackageServiceImpl.java

@@ -148,8 +148,8 @@ public class FsStoreProductPackageServiceImpl implements IFsStoreProductPackageS
     }
 
     @Override
-    public int updateFsStoreProductPackages(Long[] orderIds, Long status) {
-        return fsStoreProductPackageMapper.updateFsStoreProductPackages(orderIds,status);
+    public int updateFsStoreProductPackages(Long[] orderIds, Long status,Long companyId) {
+        return fsStoreProductPackageMapper.updateFsStoreProductPackages(orderIds,status,companyId);
     }
 
 }

+ 40 - 2
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductServiceImpl.java

@@ -14,6 +14,8 @@ import com.fs.common.BeanCopyUtils;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
 import com.fs.common.utils.DateUtils;
+import com.fs.company.cache.ICompanyCacheService;
+import com.fs.statis.dto.ModifyMoreDTO;
 import com.fs.store.domain.*;
 import com.fs.store.dto.ProductArrtDTO;
 import com.fs.store.dto.ProductAttrCountDto;
@@ -54,6 +56,9 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
     private FsStoreProductPackageMapper fsStoreProductPackageMapper;
     @Autowired
     private FsStoreProductGroupMapper fsStoreProductGroupMapper;
+
+    @Autowired
+    private ICompanyCacheService companyCacheService;
     /**
      * 查询商品
      *
@@ -130,12 +135,40 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
 
     @Override
     public List<FsStoreProductListVO> selectFsStoreProductListVO(FsStoreProduct fsStoreProduct) {
-        return fsStoreProductMapper.selectFsStoreProductListVO(fsStoreProduct);
+        List<FsStoreProductListVO> fsStoreProductListVOS = fsStoreProductMapper.selectFsStoreProductListVO(fsStoreProduct);
+
+        for (FsStoreProductListVO item : fsStoreProductListVOS) {
+            if(StringUtils.isNotBlank(item.getCompanyIds())){
+                List<String> companyNameList = new ArrayList<>();
+                String[] split = item.getCompanyIds().split(",");
+
+                for (String companyId : split) {
+                    String companyName = companyCacheService.selectCompanyNameById(Long.valueOf(companyId));
+                    companyNameList.add(companyName);
+                }
+                item.setCompanyName(String.join(",",companyNameList));
+            }
+        }
+        return fsStoreProductListVOS;
     }
 
     @Override
     public List<FsStoreProductListVO> selectFsStoreProductBarCodeListVO(FsStoreProduct fsStoreProduct) {
-        return fsStoreProductMapper.selectFsStoreProductBarCodeListVO(fsStoreProduct);
+        List<FsStoreProductListVO> fsStoreProductListVOS = fsStoreProductMapper.selectFsStoreProductBarCodeListVO(fsStoreProduct);
+
+        for (FsStoreProductListVO item : fsStoreProductListVOS) {
+            if(StringUtils.isNotBlank(item.getCompanyIds())){
+                List<String> companyNameList = new ArrayList<>();
+                String[] split = item.getCompanyIds().split(",");
+
+                for (String companyId : split) {
+                    String companyName = companyCacheService.selectCompanyNameById(Long.valueOf(companyId));
+                    companyNameList.add(companyName);
+                }
+                item.setCompanyName(String.join(",",companyNameList));
+            }
+        }
+        return fsStoreProductListVOS;
     }
 
     @Override
@@ -727,4 +760,9 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public void batchModify(ModifyMoreDTO modifyMoreDTO) {
+        fsStoreProductMapper.batchModify(modifyMoreDTO);
+    }
 }

+ 10 - 1
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductListVO.java

@@ -7,7 +7,7 @@ import java.math.BigDecimal;
 @Data
 /**
  * 商品对象 fs_store_product
- * 
+ *
  * @author fs
  * @date 2022-03-15
  */
@@ -69,4 +69,13 @@ public class FsStoreProductListVO  implements Serializable
 
     private String cateName;
 
+    /**
+     * 公司列表
+     */
+    private String companyIds;
+
+    /**
+     * 所属公司
+     */
+    private String companyName;
 }

+ 8 - 0
fs-service-system/src/main/resources/mapper/course/FsCourseTrafficLogMapper.xml

@@ -93,6 +93,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             YEAR(create_time) = YEAR(CURDATE())
           AND MONTH(create_time) = MONTH(CURDATE())
     </select>
+    <select id="getYesterdayTrafficLog" resultType="java.lang.Long">
+        SELECT
+            COALESCE(SUM(internet_traffic), 0) AS yesterday_traffic_bytes
+        FROM
+            fs_course_traffic_log
+        WHERE
+            DATE(create_time) = CURDATE() - INTERVAL 1 DAY
+    </select>
 
     <insert id="insertFsCourseTrafficLog" parameterType="FsCourseTrafficLog" useGeneratedKeys="true" keyProperty="logId">
         insert into fs_course_traffic_log

+ 3 - 0
fs-service-system/src/main/resources/mapper/statis/ConsumptionBalanceMapper.xml

@@ -299,5 +299,8 @@
         </where>
         group by start_date
     </select>
+    <select id="getCurrentBalance" resultType="java.math.BigDecimal">
+        select sum(money) from company
+    </select>
 
 </mapper>

+ 15 - 0
fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml

@@ -249,6 +249,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
         where product_id = #{productId}
     </update>
+    <update id="batchModify">
+        <foreach collection="productId" separator=";" item="item">
+            update fs_store_product set
+                    <if test="goodsStatus != null">
+                        is_show = #{goodsStatus},
+                    </if>
+                    <if test="goodsIsShow != null">
+                        is_display = #{goodsIsShow},
+                    </if>
+                    <if test="companyIds != null and companyIds != ''">
+                        company_ids = #{companyIds}
+                    </if>
+            where product_id = #{item}
+        </foreach>
+    </update>
 
     <delete id="deleteFsStoreProductById" parameterType="Long">
         delete from fs_store_product where product_id = #{productId}

+ 9 - 1
fs-service-system/src/main/resources/mapper/store/FsStoreProductPackageMapper.xml

@@ -125,7 +125,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <update id="updateFsStoreProductPackages">
-        update  fs_store_product_package set status = #{status} where package_id in
+        update  fs_store_product_package set
+                                            <if test="status != null">
+                                                status = #{status},
+                                            </if>
+                                             <if test="companyId !=null">
+                                                 company_id = #{companyId},
+                                                 products = null
+                                             </if>
+                                         where package_id in
         <foreach item="packageId" collection="packageIds" open="(" separator="," close=")">
             #{packageId}
         </foreach>