fushengqian 1 rok pred
rodič
commit
4b9b7d2533

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/service/MemberService.java

@@ -115,10 +115,11 @@ public interface MemberService extends IService<MtUser> {
     /**
      * 根据会员号获取会员信息
      *
+     * @param  merchantId
      * @param  userNo 会员号
      * @throws BusinessCheckException
      */
-    MtUser queryMemberByUserNo(String userNo) throws BusinessCheckException;
+    MtUser queryMemberByUserNo(Integer merchantId, String userNo) throws BusinessCheckException;
 
     /**
      * 根据会员ID 删除店铺信息

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

@@ -412,7 +412,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
 
         // 检查会员号是否重复
         if (StringUtil.isNotEmpty(mtUser.getUserNo())) {
-            List<MtUser> userList = mtUserMapper.findMembersByUserNo(mtUser.getUserNo());
+            List<MtUser> userList = mtUserMapper.findMembersByUserNo(mtUser.getMerchantId(), mtUser.getUserNo());
             if (userList.size() > 0) {
                 for(MtUser user: userList) {
                     MtUser userInfo = user;
@@ -495,15 +495,16 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
     /**
      * 根据会员号号获取会员信息
      *
-     * @param  userNo 会员号
+     * @param  merchantId 商户ID
+     * @param  userNo     会员号
      * @throws BusinessCheckException
      */
     @Override
-    public MtUser queryMemberByUserNo(String userNo) {
+    public MtUser queryMemberByUserNo(Integer merchantId, String userNo) {
         if (userNo == null || StringUtil.isEmpty(userNo)) {
             return null;
         }
-        List<MtUser> mtUser = mtUserMapper.findMembersByUserNo(userNo);
+        List<MtUser> mtUser = mtUserMapper.findMembersByUserNo(merchantId, userNo);
         if (mtUser.size() > 0) {
             return mtUser.get(0);
         } else {

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

@@ -289,7 +289,7 @@ public class BackendCashierController extends BaseController {
         } else {
             userInfo = memberService.queryMemberByName(accountInfo.getMerchantId(), keyword);
             if (userInfo == null) {
-                userInfo = memberService.queryMemberByUserNo(keyword);
+                userInfo = memberService.queryMemberByUserNo(accountInfo.getMerchantId(), keyword);
             }
         }
 

+ 116 - 0
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStatisticController.java

@@ -0,0 +1,116 @@
+package com.fuint.module.backendApi.controller;
+
+import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.service.MemberService;
+import com.fuint.common.service.OrderService;
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 数据统计控制器
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Api(tags="管理端-数据统计相关接口")
+@RestController
+@RequestMapping(value = "/backendApi/statistic")
+public class BackendStatisticController extends BaseController {
+
+    @Resource
+    private MemberService memberService;
+
+    @Resource
+    private OrderService orderService;
+
+    /**
+     * 数据概况
+     *
+     * @return
+     */
+    @ApiOperation(value = "数据概况")
+    @RequestMapping(value = "/main", method = RequestMethod.POST)
+    @CrossOrigin
+    public ResponseObject main(HttpServletRequest request, @RequestBody Map<String, Object> 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();
+
+        Date startTime = DateUtil.parseDate(startTimeStr);
+        Date endTime = DateUtil.parseDate(endTimeStr);
+
+        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
+        if (accountInfo == null) {
+            return getFailureResult(1001, "请先登录");
+        }
+
+        Integer merchantId = accountInfo.getMerchantId();
+        Integer storeId = accountInfo.getStoreId();
+
+        // 总会员数
+        Long totalUserCount = memberService.getUserCount(merchantId, storeId);
+        // 新增会员数量
+        Long userCount = memberService.getUserCount(merchantId, storeId, startTime, endTime);
+
+        // 总订单数
+        BigDecimal totalOrderCount = orderService.getOrderCount(merchantId, storeId);
+        // 订单数
+        BigDecimal orderCount = orderService.getOrderCount(merchantId, storeId, startTime, endTime);
+
+        // 交易金额
+        BigDecimal payAmount = orderService.getPayMoney(merchantId, storeId, startTime, endTime);
+        // 总交易金额
+        BigDecimal totalPayAmount = orderService.getPayMoney(merchantId, storeId);
+
+        // 活跃会员数
+        Long activeUserCount = memberService.getActiveUserCount(merchantId, storeId, startTime, endTime);
+
+        // 总支付人数
+        Integer totalPayUserCount = orderService.getPayUserCount(merchantId, storeId);
+
+        Map<String, Object> result = new HashMap<>();
+
+        result.put("userCount", userCount);
+        result.put("totalUserCount", totalUserCount);
+        result.put("orderCount", orderCount);
+        result.put("totalOrderCount", totalOrderCount);
+        result.put("payAmount", payAmount);
+        result.put("totalPayAmount", totalPayAmount);
+        result.put("activeUserCount", activeUserCount);
+        result.put("totalPayUserCount", totalPayUserCount);
+
+        return getSuccessResult(result);
+    }
+
+    /**
+     * 排行榜数据
+     *
+     * @return
+     */
+    @ApiOperation(value = "排行榜数据")
+    @RequestMapping(value = "/top", method = RequestMethod.POST)
+    @CrossOrigin
+    public ResponseObject top(HttpServletRequest request, @RequestBody Map<String, Object> param) {
+        String token = request.getHeader("Access-Token");
+        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
+        if (accountInfo == null) {
+            return getFailureResult(1001, "请先登录");
+        }
+
+        Map<String, Object> result = new HashMap<>();
+        return getSuccessResult(result);
+    }
+}

+ 1 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserController.java

@@ -110,7 +110,7 @@ public class ClientUserController extends BaseController {
             userInfo = memberService.queryMemberById(loginInfo.getId());
         }
         if (StringUtil.isNotEmpty(userNo)) {
-            userInfo = memberService.queryMemberByUserNo(userNo);
+            userInfo = memberService.queryMemberByUserNo(merchantId, userNo);
         }
         MtUserGrade gradeInfo = null;
         if (userInfo != null) {

+ 1 - 1
fuint-repository/src/main/java/com/fuint/repository/mapper/MtUserMapper.java

@@ -20,7 +20,7 @@ public interface MtUserMapper extends BaseMapper<MtUser> {
 
     MtUser queryMemberByOpenId(@Param("merchantId") Integer merchantId, @Param("openId") String openId);
 
-    List<MtUser> findMembersByUserNo(@Param("userNo") String userNo);
+    List<MtUser> findMembersByUserNo(@Param("merchantId") Integer merchantId, @Param("userNo") String userNo);
 
     void updateActiveTime(@Param("userId") Integer userId, @Param("updateTime") Date updateTime);
 

+ 5 - 1
fuint-repository/src/main/resources/mapper/MtUserMapper.xml

@@ -24,7 +24,11 @@
     </select>
 
     <select id="findMembersByUserNo" resultType="com.fuint.repository.model.MtUser">
-        select * from mt_user t where t.USER_NO = #{userNo} and t.STATUS = 'A' limit 1
+        select * from mt_user t where t.USER_NO = #{userNo} and t.STATUS = 'A'
+        <if test="merchantId != null and merchantId > 0">
+            AND t.MERCHANT_ID = #{merchantId}
+        </if>
+        limit 1
     </select>
 
     <update id="updateActiveTime">

+ 2 - 0
fuint-repository/src/main/resources/mapper/TSourceMapper.xml

@@ -10,6 +10,7 @@
         <foreach collection="ids" item="id" separator="," open="(" close=")">
             #{id}
         </foreach>
+        order by source_style asc
     </select>
 
     <select id="findByStatus" resultType="com.fuint.repository.model.TSource">
@@ -18,5 +19,6 @@
         <if test="merchantId != null and merchantId > 0">
             and (s.merchant_id = 0 OR s.merchant_id = #{merchantId})
         </if>
+        order by source_style asc
     </select>
 </mapper>