| @@ -97,4 +97,13 @@ public class WxCreditHistoryController extends BaseController { | |||||
| wxCreditHistoryService.exportData(request, response, wxCreditHistory); | wxCreditHistoryService.exportData(request, response, wxCreditHistory); | ||||
| } | } | ||||
| @ApiOperation("积分统计概览") | |||||
| @GetMapping("getCreditSummary") | |||||
| @SystemControllerLog(description = "积分历史-积分统计概览") | |||||
| public ResultData getCreditSummary(@ModelAttribute WxCreditHistory wxCreditHistory) { | |||||
| logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::getCreditSummary"); | |||||
| wxCreditHistory.setTenantId(getTenantId()); | |||||
| return wxCreditHistoryService.getCreditSummary(wxCreditHistory); | |||||
| } | |||||
| } | } | ||||
| @@ -1,10 +1,11 @@ | |||||
| package com.iformall.mapper; | package com.iformall.mapper; | ||||
| import java.util.*; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxCreditHistory; | |||||
| import com.iformall.domain.vo.WxCreditHistoryNewIdVo; | import com.iformall.domain.vo.WxCreditHistoryNewIdVo; | ||||
| import com.iformall.domain.vo.WxCreditHistoryVo; | import com.iformall.domain.vo.WxCreditHistoryVo; | ||||
| import com.iformall.domain.po.WxCreditHistory; | |||||
| import java.util.List; | |||||
| public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Long> { | public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Long> { | ||||
| @@ -20,4 +21,15 @@ public interface WxCreditHistoryMapper extends CommonMapper<WxCreditHistory, Lon | |||||
| int updateNewId(WxCreditHistoryNewIdVo wxCreditHistory); | int updateNewId(WxCreditHistoryNewIdVo wxCreditHistory); | ||||
| long getTotalCreditAmount(WxCreditHistory wxCreditHistory); | |||||
| long getIncrementCreditAmount(WxCreditHistory wxCreditHistory); | |||||
| long getDecrementCreditAmount(WxCreditHistory wxCreditHistory); | |||||
| long getPeopleCount(WxCreditHistory wxCreditHistory); | |||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.WxCreditHistory; | import com.iformall.domain.po.WxCreditHistory; | ||||
| import com.iformall.domain.vo.WxCreditHistoryVo; | import com.iformall.domain.vo.WxCreditHistoryVo; | ||||
| @@ -65,4 +66,6 @@ public interface WxCreditHistoryService { | |||||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory); | void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory); | ||||
| ResultData getCreditSummary(WxCreditHistory wxCreditHistory); | |||||
| } | } | ||||
| @@ -8,6 +8,7 @@ import com.google.common.collect.Lists; | |||||
| import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.WxCreditHistoryVo; | import com.iformall.domain.vo.WxCreditHistoryVo; | ||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| @@ -30,6 +31,7 @@ import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| @@ -88,6 +90,20 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { | |||||
| } | } | ||||
| @Override | |||||
| public ResultData getCreditSummary(WxCreditHistory wxCreditHistory) { | |||||
| long totalCreditAmount = wxCreditHistoryMapper.getTotalCreditAmount(wxCreditHistory); | |||||
| long incrementCreditAmount = wxCreditHistoryMapper.getIncrementCreditAmount(wxCreditHistory); | |||||
| long decrementCreditAmount = wxCreditHistoryMapper.getDecrementCreditAmount(wxCreditHistory); | |||||
| long peopleCount = wxCreditHistoryMapper.getPeopleCount(wxCreditHistory); | |||||
| Map<String, Long> result = new HashMap<>(4); | |||||
| result.put("totalCreditAmount", totalCreditAmount); | |||||
| result.put("incrementCreditAmount", incrementCreditAmount); | |||||
| result.put("decrementCreditAmount", decrementCreditAmount); | |||||
| result.put("peopleCount", peopleCount); | |||||
| return new ResultData(result); | |||||
| } | |||||
| @Override | @Override | ||||
| public PageInfo<WxCreditHistory> listAsPage(WxCreditHistory record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxCreditHistory> listAsPage(WxCreditHistory record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCreditHistoryMapper.findList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCreditHistoryMapper.findList(record)); | ||||
| @@ -206,4 +206,36 @@ | |||||
| where tenant_id=#{tenantId} | where tenant_id=#{tenantId} | ||||
| and c_user_id = #{cUserId} | and c_user_id = #{cUserId} | ||||
| </update> | </update> | ||||
| <select id="getTotalCreditAmount" parameterType="com.iformall.domain.po.WxCreditHistory" | |||||
| resultType="java.lang.Long"> | |||||
| select ifnull(sum(credit.amount),0) amount from ( | |||||
| select max(credit.credit_amount) amount,credit.c_user_id from wx_credit_history credit | |||||
| <include refid="customWhereConditions"/> | |||||
| group by credit.c_user_id | |||||
| ) credit | |||||
| </select> | |||||
| <select id="getIncrementCreditAmount" parameterType="com.iformall.domain.po.WxCreditHistory" | |||||
| resultType="java.lang.Long"> | |||||
| select ABS(ifnull(sum(credit.credit_num),0)) amount from wx_credit_history credit | |||||
| <include refid="customWhereConditions"/> | |||||
| and credit.credit_num>0 | |||||
| </select> | |||||
| <select id="getDecrementCreditAmount" parameterType="com.iformall.domain.po.WxCreditHistory" | |||||
| resultType="java.lang.Long"> | |||||
| select ABS(ifnull(sum(credit.credit_num),0)) amount from wx_credit_history credit | |||||
| <include refid="customWhereConditions"/> | |||||
| and credit.credit_num < 0 | |||||
| </select> | |||||
| <select id="getPeopleCount" parameterType="com.iformall.domain.po.WxCreditHistory" resultType="java.lang.Long"> | |||||
| select ifnull(sum(credit.people),0) people from ( | |||||
| select count(*) people from wx_credit_history credit | |||||
| <include refid="customWhereConditions"/> | |||||
| group by credit.c_user_id | |||||
| ) credit | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||