1
0
Эх сурвалжийг харах

fixed 数据看板统计优化

fushengqian 6 сар өмнө
parent
commit
48c977f455

+ 25 - 0
fuint-application/src/main/java/com/fuint/common/param/StatisticParam.java

@@ -0,0 +1,25 @@
+package com.fuint.common.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 统计请求参数
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+public class StatisticParam implements Serializable {
+
+    @ApiModelProperty(value="开始时间", name="startTime")
+    private String startTime;
+
+    @ApiModelProperty(value="结束时间", name="endTime")
+    private String endTime;
+
+    @ApiModelProperty(value="店铺ID", name="storeId")
+    private Integer storeId;
+
+}

+ 3 - 0
fuint-application/src/main/java/com/fuint/common/service/impl/CouponServiceImpl.java

@@ -177,6 +177,9 @@ public class CouponServiceImpl extends ServiceImpl<MtCouponMapper, MtCoupon> imp
             mtCoupon = mtCouponMapper.selectById(reqCouponDto.getId());
         } else {
             mtCoupon = new MtCoupon();
+            if (reqCouponDto.getMerchantId() == null || reqCouponDto.getMerchantId() <= 0) {
+                throw new BusinessCheckException("平台方帐号无法执行该操作,请使用商户帐号操作");
+            }
         }
         // 固定有效期验证
         if (reqCouponDto.getExpireType().equals(CouponExpireTypeEnum.FIX.getKey())) {

+ 3 - 3
fuint-application/src/main/java/com/fuint/common/service/impl/MemberServiceImpl.java

@@ -840,7 +840,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
      * */
     @Override
     public Long getUserCount(Integer merchantId, Integer storeId) {
-        if (storeId > 0) {
+        if (storeId != null && storeId > 0) {
             return mtUserMapper.getStoreUserCount(storeId);
         } else {
             return mtUserMapper.getUserCount(merchantId);
@@ -858,7 +858,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
      * */
     @Override
     public Long getUserCount(Integer merchantId, Integer storeId, Date beginTime, Date endTime) {
-        if (storeId > 0) {
+        if (storeId != null && storeId > 0) {
             return mtUserMapper.getStoreUserCountByTime(storeId, beginTime, endTime);
         } else {
             return mtUserMapper.getUserCountByTime(merchantId, beginTime, endTime);
@@ -876,7 +876,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
      * */
     @Override
     public Long getActiveUserCount(Integer merchantId, Integer storeId, Date beginTime, Date endTime) {
-        if (storeId > 0) {
+        if (storeId != null && storeId > 0) {
             return mtUserActionMapper.getStoreActiveUserCount(storeId, beginTime, endTime);
         } else {
             return mtUserActionMapper.getActiveUserCount(merchantId, beginTime, endTime);

+ 6 - 1
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendHomeController.java

@@ -12,6 +12,7 @@ import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.TAccount;
+import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -119,6 +120,7 @@ public class BackendHomeController extends BaseController {
     public ResponseObject statistic(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         String tag = request.getParameter("tag") == null ? "order,user_active" : request.getParameter("tag");
+        Integer storeId = StringUtil.isEmpty(request.getParameter("storeId")) ? 0 : Integer.parseInt(request.getParameter("storeId"));
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
         if (accountInfo == null) {
@@ -127,7 +129,10 @@ public class BackendHomeController extends BaseController {
 
         TAccount account = accountService.getAccountInfoById(accountInfo.getId());
         Integer merchantId = account.getMerchantId() == null ? 0 : account.getMerchantId();
-        Integer storeId = account.getStoreId() == null ? 0 : account.getStoreId();
+
+        if (account.getStoreId() != null && account.getStoreId() > 0) {
+            storeId = account.getStoreId();
+        }
 
         ArrayList<String> days = TimeUtils.getDays(5);
         days.add("昨天");

+ 36 - 11
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStatisticController.java

@@ -3,14 +3,18 @@ package com.fuint.module.backendApi.controller;
 import com.fuint.common.dto.AccountInfo;
 import com.fuint.common.dto.GoodsTopDto;
 import com.fuint.common.dto.MemberTopDto;
+import com.fuint.common.enums.StatusEnum;
+import com.fuint.common.param.StatisticParam;
 import com.fuint.common.service.GoodsService;
 import com.fuint.common.service.MemberService;
 import com.fuint.common.service.OrderService;
+import com.fuint.common.service.StoreService;
 import com.fuint.common.util.DateUtil;
 import com.fuint.common.util.TokenUtil;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
+import com.fuint.repository.model.MtStore;
 import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -48,6 +52,11 @@ public class BackendStatisticController extends BaseController {
      * */
     private GoodsService goodsService;
 
+    /**
+     * 店铺服务接口
+     */
+    private StoreService storeService;
+
     /**
      * 数据概况
      *
@@ -56,10 +65,11 @@ public class BackendStatisticController extends BaseController {
     @ApiOperation(value = "数据概况")
     @RequestMapping(value = "/main", method = RequestMethod.POST)
     @CrossOrigin
-    public ResponseObject main(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException, ParseException {
+    public ResponseObject main(HttpServletRequest request, @RequestBody StatisticParam param) throws BusinessCheckException, ParseException {
         String token = request.getHeader("Access-Token");
-        String startTimeStr = param.get("startTime") == null ? "" : param.get("startTime").toString();
-        String endTimeStr = param.get("endTime") == null ? "" : param.get("endTime").toString();
+        String startTimeStr = param.getStartTime();
+        String endTimeStr = param.getEndTime();
+        Integer storeId = param.getStoreId();
 
         Date startTime = StringUtil.isNotEmpty(startTimeStr) ? DateUtil.parseDate(startTimeStr) : null;
         Date endTime = StringUtil.isNotEmpty(endTimeStr) ? DateUtil.parseDate(endTimeStr) : null;
@@ -70,7 +80,9 @@ public class BackendStatisticController extends BaseController {
         }
 
         Integer merchantId = accountInfo.getMerchantId();
-        Integer storeId = accountInfo.getStoreId();
+        if (accountInfo.getStoreId() != null && accountInfo.getStoreId() > 0) {
+            storeId = accountInfo.getStoreId();
+        }
 
         // 总会员数
         Long totalUserCount = memberService.getUserCount(merchantId, storeId);
@@ -93,8 +105,18 @@ public class BackendStatisticController extends BaseController {
         // 总支付人数
         Integer totalPayUserCount = orderService.getPayUserCount(merchantId, storeId);
 
-        Map<String, Object> result = new HashMap<>();
+        // 店铺列表
+        Map<String, Object> params = new HashMap<>();
+        params.put("status", StatusEnum.ENABLED.getKey());
+        if (accountInfo.getStoreId() != null && accountInfo.getStoreId() > 0) {
+            params.put("storeId", accountInfo.getStoreId().toString());
+        }
+        if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
+            params.put("merchantId", accountInfo.getMerchantId());
+        }
+        List<MtStore> storeList = storeService.queryStoresByParams(params);
 
+        Map<String, Object> result = new HashMap<>();
         result.put("userCount", userCount);
         result.put("totalUserCount", totalUserCount);
         result.put("orderCount", orderCount);
@@ -103,6 +125,7 @@ public class BackendStatisticController extends BaseController {
         result.put("totalPayAmount", totalPayAmount);
         result.put("activeUserCount", activeUserCount);
         result.put("totalPayUserCount", totalPayUserCount);
+        result.put("storeList", storeList);
 
         return getSuccessResult(result);
     }
@@ -115,10 +138,11 @@ public class BackendStatisticController extends BaseController {
     @ApiOperation(value = "排行榜数据")
     @RequestMapping(value = "/top", method = RequestMethod.POST)
     @CrossOrigin
-    public ResponseObject top(HttpServletRequest request, @RequestBody Map<String, Object> param) throws ParseException {
+    public ResponseObject top(HttpServletRequest request, @RequestBody StatisticParam param) throws ParseException {
         String token = request.getHeader("Access-Token");
-        String startTimeStr = param.get("startTime") == null ? "" : param.get("startTime").toString();
-        String endTimeStr = param.get("endTime") == null ? "" : param.get("endTime").toString();
+        String startTimeStr = param.getStartTime();
+        String endTimeStr = param.getEndTime();
+        Integer storeId = param.getStoreId();
 
         Date startTime = StringUtil.isNotEmpty(startTimeStr) ? DateUtil.parseDate(startTimeStr) : null;
         Date endTime = StringUtil.isNotEmpty(endTimeStr) ? DateUtil.parseDate(endTimeStr) : null;
@@ -129,13 +153,14 @@ public class BackendStatisticController extends BaseController {
         }
 
         Integer merchantId = accountInfo.getMerchantId();
-        Integer storeId = accountInfo.getStoreId();
-
-        Map<String, Object> result = new HashMap<>();
+        if (accountInfo.getStoreId() != null && accountInfo.getStoreId() > 0) {
+            storeId = accountInfo.getStoreId();
+        }
 
         List<GoodsTopDto> goodsList = goodsService.getGoodsSaleTopList(merchantId, storeId, startTime, endTime);
         List<MemberTopDto> memberList = memberService.getMemberConsumeTopList(merchantId, storeId, startTime, endTime);
 
+        Map<String, Object> result = new HashMap<>();
         result.put("goodsList", goodsList);
         result.put("memberList", memberList);