From ba169443d174c669ffd0bbeca8f277fceb8444e1 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 02 Nov 2021 16:18:31 +0800 Subject: [PATCH] add vipArrearsStatistics --- zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java | 13 +++ zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml | 60 +++++++++++++++ zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java | 5 + zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java | 8 ++ zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java | 7 + zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 2 zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java | 5 + zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html | 79 +++++++++++++++++++ zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java | 17 ++++ 9 files changed, 192 insertions(+), 4 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java index 5827bb1..47d0e49 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiSettingAction.java @@ -3,6 +3,7 @@ import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.WebUtil; +import com.matrix.system.app.dto.SettingDto; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.BusParameterSettingsDao; @@ -42,11 +43,11 @@ } @ApiOperation(value = "根据code获取配置", notes = "根据code获取配置") - @GetMapping(value = "/findAppSettingsByCode") - public AjaxResult findAppSettingsByCode(String code) { + @PostMapping(value = "/findAppSettingsByCode") + public AjaxResult findAppSettingsByCode(@RequestBody SettingDto settingDto) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); AjaxResult result = AjaxResult.buildSuccessInstance("查询成功"); - result.putInMap(code, busParameterSettingsDao.selectCompanyParamByCode(code,user.getCompanyId())); + result.putInMap(settingDto.getCode(), busParameterSettingsDao.selectCompanyParamByCode(settingDto.getCode(),user.getCompanyId())); return result; } diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java new file mode 100644 index 0000000..76865f9 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/SettingDto.java @@ -0,0 +1,13 @@ +package com.matrix.system.app.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "SettingDto", description = "根据code获取配置参数接收类") +public class SettingDto { + + @ApiModelProperty(value = "code", example = "1") + private String code; +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java index 747dc87..fd8fba7 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipInfoDao.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** @@ -214,4 +215,8 @@ int unbundlingSaleMan(Long userId); int bindingRecommend(@Param("recommendId") Long recommendId,@Param("userId") Long userId); + + List<Map<String, Object>> selectVipArrearsStatistics(@Param("record") SysVipInfo sysVipInfo, @Param("pageVo") PaginationVO pageVo); + + Integer selectVipArrearsStatisticsTotal(@Param("record") SysVipInfo sysVipInfo); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java index dd21bc1..cd93e2d 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Map; /** * @@ -205,4 +206,8 @@ public int setToBeAnSalesman(Long userId,Long invitationId,long gradeId); SysVipInfo findByOpenId(String openId); + + List<Map<String, Object>> findVipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo); + + Integer findVipArrearsStatisticsTotal(SysVipInfo sysVipInfo); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java index 359169f..0515e39 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java @@ -674,5 +674,13 @@ } + @Override + public List<Map<String, Object>> findVipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo) { + return sysVipInfoDao.selectVipArrearsStatistics(sysVipInfo, pageVo); + } + @Override + public Integer findVipArrearsStatisticsTotal(SysVipInfo sysVipInfo) { + return sysVipInfoDao.selectVipArrearsStatisticsTotal(sysVipInfo); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java index 52abb4e..94aad6a 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/VipStatisticsAction.java @@ -7,7 +7,9 @@ import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.hive.bean.AchieveNew; +import com.matrix.system.hive.bean.SysVipInfo; import com.matrix.system.hive.service.AchieveNewService; +import com.matrix.system.hive.service.SysVipInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,6 +31,9 @@ @Autowired private AchieveNewService achieveNewService; + @Autowired + private SysVipInfoService sysVipInfoService; + @RequestMapping(value = "/vipConsumeStatistics") @ResponseBody public AjaxResult vipConsumeStatistics(AchieveNew achieveNew, PaginationVO pageVo) { @@ -40,4 +45,16 @@ int total = achieveNewService.findVipConsumeStatisticsTotal(achieveNew); return AjaxResult.buildSuccessInstance(list, total); } + + @RequestMapping(value = "/vipArrearsStatistics") + @ResponseBody + public AjaxResult vipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo) { + SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + if (!DataAuthUtil.hasAllShopAuth()) { + sysVipInfo.setShopId(sysUsers.getShopId()); + } + + int total = sysVipInfoService.findVipArrearsStatisticsTotal(sysVipInfo); + return AjaxResult.buildSuccessInstance(sysVipInfoService.findVipArrearsStatistics(sysVipInfo, pageVo), total); + } } diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml index 9c23401..ac64cfa 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml @@ -1103,7 +1103,7 @@ and date_format(a.create_time, '%Y') = date_format(#{record.datatime}, '%Y') </if> <if test='record.t1 == "4" and record.datatime != null'> - and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') + and date_format(a.create_time, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u') </if> </where> group by a.shop_id diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml index 4c304c9..a465730 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysVipInfoDao.xml @@ -1473,8 +1473,68 @@ + <select id="selectVipArrearsStatistics" resultType="java.util.Map"> + select + a.VIP_NAME vipName, + a.PHONE phone, + c.shop_short_name shopName, + sum(b.arrears) arrears, + count(1) cnt, + d.su_name staffName + from sys_vip_info a + inner join sys_order b on a.ID=b.VIP_ID + inner join sys_shop_info c on a.SHOP_ID=c.ID + left join sys_users d on a.STAFF_ID=d.su_id + where b.STATU='欠款' and b.arrears!=0 + <if test="record.companyId!=null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId!=null"> + and a.shop_id=#{record.shopId} + </if> + <if test='record.vipName!=null and record.vipName!="" '> + and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%')) + </if> + group by a.id + <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> + <if test="pageVo.sort !=null and pageVo.order !=null"> + order by + ${pageVo.sort} ${pageVo.order} + </if> + <if test="pageVo.offset >=0 and pageVo.limit >0"> + limit + #{pageVo.offset},#{pageVo.limit} + </if> + </if> + </select> + <select id="selectVipArrearsStatisticsTotal" resultType="java.lang.Integer"> + select count(1) from ( + select + a.VIP_NAME vipName, + a.PHONE phone, + c.shop_short_name shopName, + sum(b.arrears) arrears, + count(1) cnt, + d.su_name staffName + from sys_vip_info a + inner join sys_order b on a.ID=b.VIP_ID + inner join sys_shop_info c on a.SHOP_ID=c.ID + left join sys_users d on a.STAFF_ID=d.su_id + where b.STATU='欠款' and b.arrears!=0 + <if test="record.companyId!=null"> + and a.company_id=#{record.companyId} + </if> + <if test="record.shopId!=null"> + and a.shop_id=#{record.shopId} + </if> + <if test='record.vipName!=null and record.vipName!="" '> + and (a.vip_name like concat('%', #{record.vipName}, '%') or a.vip_no like concat('%', #{record.vipName}, '%') or a.phone like concat('%', #{record.vipName}, '%')) + </if> + group by a.id + ) a + </select> </mapper> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html new file mode 100644 index 0000000..5798f72 --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/vip-arrears-list.html @@ -0,0 +1,79 @@ + +<!DOCTYPE HTML> +<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> +<head> +<meta charset="utf-8"> +<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> +<meta name="renderer" content="webkit|ie-comp|ie-stand"> +<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> +<meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> +<meta http-equiv="Cache-Control" content="no-siteapp" /> +<LINK rel="Bookmark" href="../images/favicon.ico"> +<!-- 本框架基本脚本和样式 --> +<script type="text/javascript" + th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> +</head> +<body class="gray-bg"> + <div class="ibox-content"> + <!-- 搜索框部分start --> + <form class="form-inline" id="serchform"> + <div class="row mb-10"> + <div class="col-sm-8"> + <button onclick="myGrid.serchData()" type="button" class="btn btn-info btn-sm"><i class="fa fa-search" ></i> 搜索</button> + <button onclick="myGrid.resetForm()" type="button" class="btn btn-default btn-sm"><i class="fa fa-refresh " ></i> 重置</button> + </div> + </div> + <div class="form-group mr-20"> + <input autocomplete="off" placeholder="会员姓名/手机/编号" name="vipName" type="text" class="form-control" /> + </div> + <div class="form-group mr-20"> + <label for="staffId">健康顾问</label> + <select class="form-control autoFull select2" + th:data-url="@{/admin/shopAll}" + data-value="suId" + id="staffId" + data-filed="suName" + name="staffId"> + <option value="">--请选择顾问--</option> + </select> + </div> + </form> + <div id="option-bar" > + <button matrix:btn="bedList-exportExcel" onclick="exportExcel()" type="button" class="btn btn-default btn-sm"><i class="fa fa-download" ></i> 导出</button> + </div> + <table id="mgrid" data-url="" > + <thead> + <tr> + <th data-formatter="MGrid.indexfn" data-align="center" data-width="30px" >序号</th> + <th data-field="vipName">会员名称</th> + <th data-field="phone">手机号码</th> + <th data-field="shopName">所属门店</th> + <th data-field="arrears" data-sortable="true">欠款金额</th> + <th data-field="cnt" data-sortable="true">欠款订单</th> + <th data-field="staffName">所属顾问</th> + </tr> + </thead> + </table> + </div> + <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script><script type="text/javascript"> + var myGrid; + $(function(){ + //初始化项目属性搜索列表 + MTools.autoFullSelect(); + $(".select2").select2(); + + myGrid=MGrid.initGrid({ + url:basePath+"/admin/vipStatistics/vipArrearsStatistics" + }); + }); + + // function exportExcel(){ + // var param=MForm.toUrlParam("#serchform"); + // window.location.href=basePath+"/admin/moneyCardUseStatistics/exportSummaryItemDetail?"+param; + // } + + </script> +</body> +</html> -- Gitblit v1.9.1