chenguo преди 1 седмица
родител
ревизия
a6fdf0c0af

+ 156 - 13
fs-admin/src/main/java/com/fs/api/controller/IndexStatisticsController.java

@@ -1,14 +1,25 @@
 package com.fs.api.controller;
 
 import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.entity.SysDept;
 import com.fs.common.core.redis.RedisCache;
+import com.fs.company.constant.CompanyTrafficConstants;
+import com.fs.company.domain.Company;
+import com.fs.company.service.ICompanyService;
+import com.fs.his.utils.ConfigUtil;
+import com.fs.hisStore.config.MedicalMallConfig;
 import com.fs.statis.StatisticsRedisConstant;
 import com.fs.statis.dto.*;
+import com.fs.statis.param.StatisticsDeptCompanyParam;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.service.ISysConfigService;
+import com.fs.system.service.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.YearMonth;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -25,6 +36,18 @@ public class IndexStatisticsController {
 
     @Autowired
     private ISysConfigService sysConfigService;
+
+    @Autowired
+    private ConfigUtil configUtil;
+
+    @Autowired
+    private ISysDeptService deptService;
+
+    @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
+    private MedicalMallConfig medicalMallConfig;
     /**
      * 分析概览
      */
@@ -51,8 +74,35 @@ public class IndexStatisticsController {
      * 消费余额
      */
     @GetMapping("/rechargeComsumption")
-    public R rechargeComsumption(){
-        ConsumptionBalanceDataDTO consumptionBalanceDataDTO = redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_BALANCE);
+    public R rechargeComsumption(StatisticsDeptCompanyParam param){
+        ConsumptionBalanceDataDTO consumptionBalanceDataDTO = new ConsumptionBalanceDataDTO();
+        if(!"1".equals(medicalMallConfig.getStatics())) {
+            consumptionBalanceDataDTO = redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_BALANCE);
+        }
+        if(param.getCompanyId() != null){
+            consumptionBalanceDataDTO = redisCache.getCacheObject(String.format("%s:%d",DATA_OVERVIEW_DEALER_BALANCE,param.getCompanyId()));
+        }else if(param.getDeptId() == 1) {
+            consumptionBalanceDataDTO = redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_BALANCE);
+        }else{
+            Company company = new Company();
+            company.setDeptId(param.getDeptId());
+            Long[] companyIds = companyService.selectCompanyList(company).stream().map(Company::getCompanyId).toArray(Long[]::new);
+            for(Long companyId : companyIds){
+                ConsumptionBalanceDataDTO clildDTO = redisCache.getCacheObject(String.format("%s:%d",DATA_OVERVIEW_DEALER_BALANCE,companyId));
+                consumptionBalanceDataDTO.setBalance(
+                    (consumptionBalanceDataDTO.getBalance() == null ? BigDecimal.ZERO : consumptionBalanceDataDTO.getBalance())
+                    .add(clildDTO.getBalance() == null ? BigDecimal.ZERO : clildDTO.getBalance())
+                );
+                consumptionBalanceDataDTO.setTodayComsumption(
+                    (consumptionBalanceDataDTO.getTodayComsumption() == null ? BigDecimal.ZERO : consumptionBalanceDataDTO.getTodayComsumption())
+                    .add(clildDTO.getTodayComsumption() == null ? BigDecimal.ZERO : clildDTO.getTodayComsumption())
+                );
+                consumptionBalanceDataDTO.setYesterdayComsumption(
+                    (consumptionBalanceDataDTO.getYesterdayComsumption() == null ? BigDecimal.ZERO : consumptionBalanceDataDTO.getYesterdayComsumption())
+                    .add(clildDTO.getYesterdayComsumption() == null ? BigDecimal.ZERO : clildDTO.getYesterdayComsumption())
+                );
+            }
+        }
 
         return R.ok().put("data", consumptionBalanceDataDTO);
     }
@@ -62,15 +112,57 @@ public class IndexStatisticsController {
      * @return
      */
     @GetMapping("/trafficLog")
-    public R getTrafficLog(){
-        TrafficLogDTO trafficLogDTO = redisCache.getCacheObject(DATA_OVERVIEW_TRAFFIC_LOG);
-        SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("redPacket.Traffic.config");
-        if(trafficLogDTO == null || sysConfig == null) {
-            return null;
+    public R getTrafficLog(StatisticsDeptCompanyParam  param){
+        TrafficLogDTO result = new TrafficLogDTO();
+        if(!"1".equals(medicalMallConfig.getStatics())) {
+            result = redisCache.getCacheObject(DATA_OVERVIEW_TRAFFIC_LOG);
+            SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("redPacket.Traffic.config");
+            if(result == null || sysConfig == null) {
+                return null;
+            }
+            String configValue = sysConfig.getConfigValue();
+            result.setTraffic(configValue);
+        }
+        if(param.getCompanyId() != null){
+            //昨天
+            LocalDate yesterday = LocalDate.now().minusDays(1);
+            result.setYesterday(redisCache.getCacheObject(String.format("%s:%d:%d:%s", CompanyTrafficConstants.CACHE_KEY,param.getDeptId(),param.getCompanyId(),yesterday)));
+            //今天
+            result.setToday(redisCache.getCacheObject(String.format("%s:%d:%d:%s", CompanyTrafficConstants.CACHE_KEY,param.getDeptId(),param.getCompanyId(),LocalDate.now())));
+            //本月
+            result.setThisMonth(redisCache.getCacheObject(String.format("%s:%d:%d:%s", CompanyTrafficConstants.CACHE_KEY,param.getDeptId(),param.getCompanyId(),YearMonth.now())));
+            //剩余
+            result.setTraffic(redisCache.getCacheObject(String.format("%s:%d:%d", CompanyTrafficConstants.CACHE_KEY,param.getDeptId(),param.getCompanyId())));
+
+        }else if(param.getDeptId() != null) {
+            //昨天
+            LocalDate yesterday = LocalDate.now().minusDays(1);
+            result.setYesterday(redisCache.getCacheObject(String.format("%s:%s:%s", CompanyTrafficConstants.CACHE_KEY,":1:",yesterday)));
+            //今天
+            result.setToday(redisCache.getCacheObject(String.format("%s:%s:%s", CompanyTrafficConstants.CACHE_KEY,":1:",LocalDate.now())));
+            //本月
+            result.setThisMonth(redisCache.getCacheObject(String.format("%s:%s:%s", CompanyTrafficConstants.CACHE_KEY,":1:",YearMonth.now())));
+            //剩余
+            result.setTraffic(redisCache.getCacheObject(String.format("%s:%s", CompanyTrafficConstants.CACHE_KEY,":1")));
+
         }
-        String configValue = sysConfig.getConfigValue();
-        trafficLogDTO.setTraffic(configValue);
-        return R.ok().put("data",trafficLogDTO);
+        return R.ok().put("data",result);
+    }
+
+    private TrafficLogDTO getTrafficLogCompany(String key){
+        TrafficLogDTO dto = new TrafficLogDTO();
+        //昨天
+        LocalDate yesterday = LocalDate.now().minusDays(1);
+        dto.setYesterday(redisCache.getCacheObject(key+yesterday));
+        //今天
+        dto.setToday(redisCache.getCacheObject(key+LocalDate.now()));
+        //本月
+        dto.setThisMonth(redisCache.getCacheObject(key+YearMonth.now()));
+        //剩余
+        //删除key最后一个字符
+        key = key.substring(0,key.lastIndexOf(":"));
+        dto.setTraffic(redisCache.getCacheObject(key));
+        return dto;
     }
 
     /**
@@ -157,12 +249,63 @@ public class IndexStatisticsController {
      * 数据概览
      */
     @GetMapping("/dealerAggregated")
-    public R dealerAggregated(){
-        DealerAggregatedDTO dealerAggregatedDTO = redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_AGGREGATED);
+    public R dealerAggregated(StatisticsDeptCompanyParam param){
+        DealerAggregatedDTO result = new DealerAggregatedDTO();
+        if (!"1".equals(medicalMallConfig.getStatics()) || (param.getCompanyId() == null && param.getDeptId() == null)) {
+           return R.ok().put("data",redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_AGGREGATED));
+        }
+        //选中销售公司
+        if (param.getCompanyId() != null) {
+            result = redisCache.getCacheObject(String.format("%s:%d", DATA_OVERVIEW_DEALER_AGGREGATED, param.getCompanyId()));
+        //没选中销售公司,选中部门为总公司
+        }else if (param.getDeptId() == 1){
+            result = redisCache.getCacheObject(StatisticsRedisConstant.DATA_OVERVIEW_DEALER_AGGREGATED);
+        //没选中销售公司,部门不为总公司
+        }else{
+            //Long padMaxNum = deptLimiteService.selectById(param.getDeptId()).getMaxPadNum();
+            Company company = new Company();
+            company.setDeptId(param.getDeptId());
+            Long[] companyIds = companyService.selectCompanyList(company).stream().map(Company::getCompanyId).toArray(Long[]::new);
+            for(Long companyId : companyIds) {
+                DealerAggregatedDTO dealerAggregatedDTO = redisCache.getCacheObject(String.format("%s:%d", DATA_OVERVIEW_DEALER_AGGREGATED, companyId));
+                // 添加空值检查
+                if (dealerAggregatedDTO != null) {
+                    result.setDealderCount((result.getDealderCount() == null ? 0 : result.getDealderCount())
+                            + (dealerAggregatedDTO.getDealderCount() == null ? 0 : dealerAggregatedDTO.getDealderCount()));
+                    result.setGroupMgrCount((result.getGroupMgrCount() == null ? 0 : result.getGroupMgrCount())
+                            + (dealerAggregatedDTO.getGroupMgrCount() == null ? 0 : dealerAggregatedDTO.getGroupMgrCount()));
+                    result.setMemberCount((result.getMemberCount() == null ? 0 : result.getMemberCount())
+                            + (dealerAggregatedDTO.getMemberCount() == null ? 0 : dealerAggregatedDTO.getMemberCount()));
+                    result.setNormalNum((result.getNormalNum() == null ? 0 : result.getNormalNum())
+                            + (dealerAggregatedDTO.getNormalNum() == null ? 0 : dealerAggregatedDTO.getNormalNum()));
+                    result.setBlackNum((result.getBlackNum() == null ? 0 : result.getBlackNum())
+                            + (dealerAggregatedDTO.getBlackNum() == null ? 0 : dealerAggregatedDTO.getBlackNum()));
+                    result.setQwMemberNum((result.getQwMemberNum() == null ? 0 : result.getQwMemberNum())
+                            + (dealerAggregatedDTO.getQwMemberNum() == null ? 0 : dealerAggregatedDTO.getQwMemberNum()));
+                    result.setTodayIncreaseUserNum((result.getTodayIncreaseUserNum() == null ? 0 : result.getTodayIncreaseUserNum())
+                            + (dealerAggregatedDTO.getTodayIncreaseUserNum() == null ? 0 : dealerAggregatedDTO.getTodayIncreaseUserNum()));
+                    result.setOrderTotalNum((result.getOrderTotalNum() == null ? 0 : result.getOrderTotalNum())
+                            + (dealerAggregatedDTO.getOrderTotalNum() == null ? 0 : dealerAggregatedDTO.getOrderTotalNum()));
+                    result.setTodayOrderNum((result.getTodayOrderNum() == null ? 0 : result.getTodayOrderNum())
+                            + (dealerAggregatedDTO.getTodayOrderNum() == null ? 0 : dealerAggregatedDTO.getTodayOrderNum()));
+                    result.setRecvTodayNum((result.getRecvTodayNum() == null ? 0 : result.getRecvTodayNum())
+                            + (dealerAggregatedDTO.getRecvTodayNum() == null ? 0 : dealerAggregatedDTO.getRecvTodayNum()));
+                    result.setRecvTotalNum((result.getRecvTotalNum() == null ? 0 : result.getRecvTotalNum())
+                            + (dealerAggregatedDTO.getRecvTotalNum() == null ? 0 : dealerAggregatedDTO.getRecvTotalNum()));
+                    result.setGoodsTotalNum((result.getGoodsTotalNum() == null ? 0 : result.getGoodsTotalNum())
+                            + (dealerAggregatedDTO.getGoodsTotalNum() == null ? 0 : dealerAggregatedDTO.getGoodsTotalNum()));
+                    result.setTodayGoodsNum((result.getTodayGoodsNum() == null ? 0 : result.getTodayGoodsNum())
+                            + (dealerAggregatedDTO.getTodayGoodsNum() == null ? 0 : dealerAggregatedDTO.getTodayGoodsNum()));
+                    result.setPadUsedNum((result.getPadUsedNum() == null ? 0 : result.getPadUsedNum())
+                            + (dealerAggregatedDTO.getPadUsedNum() == null ? 0 : dealerAggregatedDTO.getPadUsedNum()));
+                }
+            }
+        }
 
-        return R.ok().put("data",dealerAggregatedDTO);
+        return R.ok().put("data",result);
     }
 
+
     /**
      * 短信余额
      */

+ 1 - 0
fs-admin/src/main/java/com/fs/web/controller/system/SysLoginController.java

@@ -86,6 +86,7 @@ public class SysLoginController
         //药品商城参数
         JSONObject jsonObject = configUtil.generateConfigByKey("medicalMall.func.switch");
         AjaxResult ajax = AjaxResult.success();
+
         if(jsonObject!=null){
             ajax.put("isMedicalMall", "1".equals(jsonObject.getString("isMedicalMall")));
             ajax.put("isPadLimit", "1".equals(jsonObject.getString("isPadLimit")));

+ 2 - 1
fs-service/src/main/java/com/fs/company/mapper/CompanyMapper.java

@@ -164,8 +164,9 @@ public interface CompanyMapper
             "            <if test=\"linkName != null  and linkName != ''\"> and c.link_name like concat('%', #{linkName}, '%')</if>\n" +
             "            <if test=\"limitUserCount != null \"> and c.limit_user_count = #{limitUserCount}</if>\n" +
             "            <if test=\"isDel != null \"> and c.is_del = #{isDel}</if>\n" +
+            "            <if test=\"deptId != null \"> and c.dept_id = #{deptId}</if> " +
             "        " +
-            "order by company_id desc" +
+            " order by company_id desc" +
             "</script>"})
     List<CompanyVO> selectCompanyListVO(Company param);
 

+ 5 - 4
fs-service/src/main/java/com/fs/company/service/impl/CompanyTrafficRecordServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
+import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
 
@@ -50,7 +51,7 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
             //同步redis缓存 更新getBalance()
-            doReduce(companyTrafficRecord,"重启同步流量");
+            doReduce(companyTrafficRecord,"0");
 
             // 获取公司流量
             Long balance = companyTrafficRecord.getBalance();
@@ -74,12 +75,12 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
     public void refreshTraffic() {
         List<CompanyTrafficRecord> companyTrafficRecords = baseMapper.selectList(new LambdaQueryWrapper<>());
         for (CompanyTrafficRecord companyTrafficRecord : companyTrafficRecords) {
-            doReduce(companyTrafficRecord,"定时更新扣除流量");
+            doReduce(companyTrafficRecord,"1");
         }
     }
 
     //通过redis更新表流量并添加扣除日志
-    private void doReduce(CompanyTrafficRecord companyTrafficRecord, String remark) {
+    private void doReduce(CompanyTrafficRecord companyTrafficRecord, String doType) {
         //redis获取剩余流量
         Object traffic = redisCache.getCacheObject(CompanyTrafficConstants.CACHE_KEY + ":" + companyTrafficRecord.getDeptId() + ":" + companyTrafficRecord.getCompanyId());
         if(traffic!=null) {
@@ -108,7 +109,7 @@ public class CompanyTrafficRecordServiceImpl extends ServiceImpl<CompanyTrafficR
                         .createTime(new Date())
                         .operationType(2)
                         .userId(1L)//表示amdin
-                        .remark(remark)
+                        .remark("0".equals(doType)?"重启同步流量":"定时更新扣除流量")
                         .userName("admin")
                         .build());
             }

+ 10 - 3
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -82,9 +82,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
@@ -847,6 +846,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         // 分布式扣除流量
         String companyKey = CompanyTrafficConstants.CACHE_KEY + ":" + company.getDeptId() + ":" + company.getCompanyId();
         String deptKey = CompanyTrafficConstants.CACHE_KEY + ":" + company.getDeptId();
+        String companyDayKey = companyKey + ":"+ LocalDate.now();
+        String dayKey = CompanyTrafficConstants.CACHE_KEY+ ":1:"+ LocalDate.now();
+        String companyMonthKey = companyKey + ":"+ YearMonth.now();
+        String monthKey = CompanyTrafficConstants.CACHE_KEY+ ":1:"+ YearMonth.now();
         String lockKey = companyKey + ":lock";
         //销售公司剩余流量
         Long companyTraffic = ((Integer)redisCache.getCacheObject(companyKey)).longValue();
@@ -858,6 +861,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
                 try {
                    companyTraffic = redisCache.decr(companyKey, traffic);
                    redisCache.decr(deptKey, traffic);
+                   redisCache.incr(companyDayKey, traffic);
+                   redisCache.incr(dayKey, traffic);
+                   redisCache.incr(companyMonthKey, traffic);
+                   redisCache.incr(monthKey, traffic);
                 } finally {
                     redisCache.deleteObject(lockKey); // 释放锁
                 }

+ 0 - 2
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreProductListVO.java

@@ -118,6 +118,4 @@ public class FsStoreProductListVO  implements Serializable
 
     private String isAudit;
 
-    private String storeId;
-    private String storeName;
 }

+ 15 - 0
fs-service/src/main/java/com/fs/statis/param/StatisticsDeptCompanyParam.java

@@ -0,0 +1,15 @@
+ package com.fs.statis.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+ /**
+  * 区分公司和部门统计
+  */
+ @Data
+ public class StatisticsDeptCompanyParam implements Serializable {
+
+     private Long companyId;
+     private Long deptId;
+ }

+ 13 - 0
fs-service/src/main/java/com/fs/statis/service/impl/StatisticsCompanyServiceImpl.java

@@ -1,6 +1,8 @@
 package com.fs.statis.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.utils.TimeUtils;
@@ -12,6 +14,8 @@ import com.fs.his.service.IFsStorePaymentService;
 import com.fs.his.service.IFsStoreProductService;
 import com.fs.his.service.IFsUserService;
 import com.fs.his.vo.OptionsVO;
+import com.fs.qw.domain.QwUser;
+import com.fs.qw.mapper.QwUserMapper;
 import com.fs.statis.StatisticsRedisConstant;
 import com.fs.statis.dto.*;
 import com.fs.statis.mapper.ConsumptionBalanceMapper;
@@ -75,6 +79,9 @@ public class StatisticsCompanyServiceImpl implements IStatisticsCompanyService {
 
     @Autowired
     private ICompanyService companyService;
+
+    @Autowired
+    private QwUserMapper qwUserMapper;
     @Override
     public void dataOverviewTask() {
         List<OptionsVO> optionsVOS = companyService.selectAllCompanyList();
@@ -779,6 +786,10 @@ public class StatisticsCompanyServiceImpl implements IStatisticsCompanyService {
         Long dayPaymentCount=paymentService.selectFsStorePaymentCount(1,companyId);
         Long productCount=productService.selectFsStoreProductCount(0,companyId);
         Long dayProductCount=productService.selectFsStoreProductCount(1,companyId);
+        //company表中的pad信息
+        Long padTotalNum=companyService.selectCompanyById(companyId).getMaxPadNum().longValue();
+        //qw_user获取
+        Long padUsedNum= qwUserMapper.selectCount(new LambdaQueryWrapper<QwUser>().eq(QwUser::getCompanyId, companyId).isNotNull(QwUser::getServerId)).longValue();
         DealerAggregatedDTO dealerAggregatedDTO = consumptionBalanceMapper.dealerAggregatedCompanyId(companyId);
         dealerAggregatedDTO.setTodayIncreaseUserNum(dayUserCount);
         dealerAggregatedDTO.setOrderTotalNum(storeOrderCount);
@@ -787,6 +798,8 @@ public class StatisticsCompanyServiceImpl implements IStatisticsCompanyService {
         dealerAggregatedDTO.setRecvTodayNum(dayPaymentCount);
         dealerAggregatedDTO.setGoodsTotalNum(productCount);
         dealerAggregatedDTO.setTodayGoodsNum(dayProductCount);
+        dealerAggregatedDTO.setPadTotalNum(padTotalNum);
+        dealerAggregatedDTO.setPadUsedNum(padUsedNum);
         return dealerAggregatedDTO;
     }
 

+ 2 - 1
fs-service/src/main/resources/application-config-dev-yjb.yml

@@ -99,7 +99,8 @@ tmp_secret_config:
   region: ap-chongqing
   proxy: fs
 cloud_host:
-  company_name: 金康健
+  company_name: 医健宝
+  projectCode: YJB
 headerImg:
   imgUrl: https://jz-cos-1356808054.cos.ap-chengdu.myqcloud.com/fs/20250515/0877754b59814ea8a428fa3697b20e68.png
 ipad:

+ 1 - 1
fs-service/src/main/resources/application-dev-yjb.yml

@@ -1,7 +1,7 @@
 # 数据源配置
 spring:
     profiles:
-        include: common,config-dev
+        include: common,config-dev-yjb
 #    profiles:
 #        include: config-dev,common
     # redis 配置

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

@@ -13,12 +13,12 @@
     </select>
     <select id="dealerAggregated" resultType="com.fs.statis.dto.DealerAggregatedDTO">
         SELECT
-                (SELECT COUNT(*) FROM COMPANY) AS dealder_count,
-                (SELECT COUNT(*) FROM COMPANY_USER) AS group_mgr_count,
+                (SELECT COUNT(*) FROM COMPANY WHERE IS_DEL = 0) AS dealder_count,
+                (SELECT COUNT(*) FROM COMPANY_USER  CU INNER JOIN COMPANY C ON C.company_id = CU.company_id AND C.is_del = 0) AS group_mgr_count,
                 (SELECT COUNT(*) FROM FS_USER) AS member_count,
                 (SELECT COUNT(*) FROM FS_USER WHERE STATUS=1) AS normal_num,
                 (SELECT COUNT(*) FROM FS_USER WHERE STATUS=0) AS black_num,
-                (select COUNT(*) FROM qw_user) AS qw_member_num
+                (select COUNT(*) FROM qw_user WHERE is_del = 0) AS qw_member_num
     </select>
     <select id="analysisPreview" resultType="com.fs.statis.dto.AnalysisPreviewDTO">
         -- 观看人数

+ 4 - 4
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreProductScrmController.java

@@ -72,7 +72,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @GetMapping("/export")
     public AjaxResult export(FsStoreProductScrm fsStoreProduct)
     {
-        fsStoreProduct.setStoreId(String.valueOf(UserUtil.getLoginUserStoreID()));
+        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
         List<FsStoreProductScrm> list = fsStoreProductService.selectFsStoreProductList(fsStoreProduct);
         ExcelUtil<FsStoreProductScrm> util = new ExcelUtil<FsStoreProductScrm>(FsStoreProductScrm.class);
         return util.exportExcel(list, "商品数据");
@@ -101,7 +101,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @PostMapping("/price/{price}")
     public AjaxResult editPrice(@RequestBody FsStoreProductScrm fsStoreProduct, @PathVariable("price")Integer price)
     {
-        fsStoreProduct.setStoreId(String.valueOf(UserUtil.getLoginUserStoreID()));
+        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
         return toAjax(fsStoreProductService.updateFsStoreProductPrice(fsStoreProduct,price));
     }
     /**
@@ -112,7 +112,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @PostMapping
     public AjaxResult add(@RequestBody FsStoreProductScrm fsStoreProduct)
     {
-        fsStoreProduct.setStoreId(String.valueOf(UserUtil.getLoginUserStoreID()));
+        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
         return toAjax(fsStoreProductService.insertFsStoreProduct(fsStoreProduct));
     }
 
@@ -185,7 +185,7 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
     @PostMapping(value = "/addOrEdit")
     public R addOrEdit(@RequestBody FsStoreProductAddEditParam fsStoreProduct)
     {
-        fsStoreProduct.setStoreId(String.valueOf(UserUtil.getLoginUserStoreID()));
+        fsStoreProduct.setStoreId(UserUtil.getLoginUserStoreID());
 
         return fsStoreProductService.addOrEdit(fsStoreProduct);
     }

+ 3 - 3
fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java

@@ -99,8 +99,8 @@ public class ProductScrmController extends AppBaseController {
     }
     @ApiOperation("获取商品详情")
     @GetMapping("/getProductDetails")
-    public R getProductDetails(@RequestParam(value="productId") Long productId){
-        FsStoreProductQueryVO product=productService.selectFsStoreProductByIdQuery(productId);
+    public R getProductDetails(@RequestParam(value="productId") Long productId,String storeId){
+        FsStoreProductQueryVO product=productService.selectFsStoreProductByIdQuery(productId,storeId);
         if(product==null){
             return R.error("商品不存在或已下架");
         }
@@ -110,7 +110,7 @@ public class ProductScrmController extends AppBaseController {
             fsStoreScrm = storeScrmService.selectFsStoreByStoreId(Long.parseLong(product.getStoreId()));
         }
         List<FsStoreProductAttrScrm> productAttr=attrService.selectFsStoreProductAttrByProductId(product.getProductId());
-        List<FsStoreProductAttrValueScrm> productValues=attrValueService.selectFsStoreProductAttrValueByProductId(product.getProductId());
+        List<FsStoreProductAttrValueScrm> productValues=attrValueService.selectFsStoreProductAttrValueByProductId(product.getProductId(),storeId);
 
 //        for(FsStoreProductAttrValue value:productValues){
 //            if(StringUtils.isEmpty(value.getGroupBarCode())){