Jelajahi Sumber

提交总统计表

zhouxianguang 6 tahun lalu
induk
melakukan
d1a057fcf8

+ 123 - 0
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/stmt/StmtStatsController.java

@@ -0,0 +1,123 @@
+package cn.rankin.cmsweb.controller.stmt;
+
+import cn.rankin.cmsweb.assist.resolver.NeedUser;
+import cn.rankin.cmsweb.entity.UserDetails;
+import cn.rankin.cmsweb.service.product.ProductService;
+import cn.rankin.cmsweb.service.stmt.StmtCampusService;
+import cn.rankin.cmsweb.service.user.CampusService;
+import cn.rankin.cmsweb.service.user.TerminalUserService;
+import cn.rankin.common.utils.api.model.APIResult;
+import cn.rankin.common.utils.api.page.Page;
+import cn.rankin.common.utils.util.BeanUtil;
+import cn.rankin.common.utils.util.DateUtil;
+import cn.rankin.common.utils.util.ListUtil;
+import cn.rankin.common.utils.util.ProvinceUtil;
+import cn.rankin.data.api.product.vo.ProductVo;
+import cn.rankin.data.api.user.dto.CampusSearchDTO;
+import cn.rankin.data.api.user.dto.TerminalUserSearchDTO;
+import cn.rankin.data.api.user.vo.CampusVo;
+import cn.rankin.data.api.user.vo.TerminalUserAuthVo;
+import cn.rankin.data.api.user.vo.TerminalUserVo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.usermodel.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping(value = "/stmt/stats")
+public class StmtStatsController
+{
+    @Autowired
+    private TerminalUserService terminalUserService;
+
+    @Autowired
+    private ProductService productService;
+
+    @Autowired
+    private CampusService campusService;
+
+    @Autowired
+    private StmtCampusService stmtService;
+
+    /**
+     * 查询已开通校区报表
+     *
+     * @param user      the user info
+     * @param searchDTO the campus search
+     * @return
+     */
+    @RequestMapping(value = {"/page", "/"}, method = RequestMethod.GET)
+    public APIResult<Page<TerminalUserVo>> campusList(@NeedUser UserDetails user, TerminalUserSearchDTO searchDTO)
+    {
+        if (!user.isPlatForm())
+        {
+            String merchantId = user.getMerchantId();
+            searchDTO.setMerchantId(merchantId);
+        }
+        APIResult<Page<TerminalUserVo>> page= terminalUserService.search(BeanUtil.convertToMap(searchDTO));
+
+        return page;
+    }
+
+    /**
+     * 查询已开通校区报表
+     *
+     * @param user            the user info
+     * @param campusSearchDTO the campus search
+     * @return
+     */
+    @RequestMapping(value = {"/campus/totalsize", "/"}, method = RequestMethod.GET)
+    public APIResult<Page<CampusVo>> campusList(@NeedUser UserDetails user, CampusSearchDTO campusSearchDTO)
+    {
+        if (!user.isPlatForm())
+        {
+            String merchantId = user.getMerchantId();
+            campusSearchDTO.setMerchantId(merchantId);
+        }
+        APIResult<Page<CampusVo>> pageData = stmtService.search(BeanUtil.convertToMap(campusSearchDTO));
+
+        return APIResult.ok(pageData.getData().getTotalSize());
+    }
+
+
+    private void setProductInfo(List<TerminalUserAuthVo> terminalUserAuthVos)
+    {
+        if (CollectionUtils.isEmpty(terminalUserAuthVos))
+        {
+            return;
+        }
+
+        List<ProductVo> productVos = productService.productList();
+        if (CollectionUtils.isEmpty(productVos))
+        {
+            return;
+        }
+
+        Map<String, ProductVo> productVoMap = ListUtil.convert(productVos, "pid", ProductVo.class);
+
+        terminalUserAuthVos.forEach(vo ->
+        {
+            ProductVo productVo = productVoMap.get(vo.getPid());
+            if (null != productVo)
+            {
+                vo.setPCode(productVo.getCode());
+                vo.setPName(productVo.getName());
+            }
+            else
+            {
+                log.info("not found product by pid ,pid={}", vo.getPid());
+            }
+        });
+
+    }
+}