fanli/src/main/java/com/yeshi/fanli/controller/admin/UserSystemCouponAdminController.java
@@ -1,6 +1,7 @@ package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -11,7 +12,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.entity.bus.user.UserSystemCoupon; import com.yeshi.fanli.entity.bus.user.UserSystemCouponGiveRecord; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.service.inter.count.UserSystemCouponCountService; import com.yeshi.fanli.service.inter.user.UserSystemCouponGiveRecordService; import com.yeshi.fanli.tag.PageEntity; @@ -338,5 +341,56 @@ } } /** * 券统计 * @param callback * @param uid * @param out */ @RequestMapping(value = "statisticsCoupon") public void statisticsCoupon(String callback, Long uid, PrintWriter out) { try { List<String> listSource = new ArrayList<>(); listSource.add(UserSystemCoupon.SOURCE_EXCHANGE); // 免单券 List<String> listFree = new ArrayList<>(); listFree.add(CouponTypeEnum.freeCoupon.name()); listFree.add(CouponTypeEnum.welfareFreeCoupon.name()); listFree.add(CouponTypeEnum.freeCouponBuy.name()); listFree.add(CouponTypeEnum.freeCouponGive.name()); // 累计-金币兑换 long freeTotal = userSystemCouponCountService.countCouponNum(uid, null, null, listFree,listSource); // 使用中 long freeUseIn = userSystemCouponCountService.countCouponNum(uid, UserSystemCoupon.STATE_IN_USE, null, listFree, null); // 剩余 long freeUseCan = userSystemCouponCountService.countCouponNum(uid, UserSystemCoupon.STATE_CAN_USE, null, listFree, null); long freeUseActive = userSystemCouponCountService.countCouponNum(uid, 0, 0, listFree, null); // 奖励券 listFree.clear(); listFree.add(CouponTypeEnum.rebatePercentCoupon.name()); // 累计-金币兑换 long rebateTotal = userSystemCouponCountService.countCouponNum(uid, null, null, listFree, listSource); // 使用中 long rebateUseIn = userSystemCouponCountService.countCouponNum(uid, UserSystemCoupon.STATE_IN_USE, null, listFree, null); // 剩余 long rebateUseCan = userSystemCouponCountService.countCouponNum(uid, UserSystemCoupon.STATE_CAN_USE, null, listFree, null); JSONObject data = new JSONObject(); data.put("freeTotal", freeTotal); data.put("freeUseIn", freeUseIn); data.put("freeLeft", freeUseCan + freeUseActive); data.put("rebateTotal", rebateTotal); data.put("rebateUseIn", rebateUseIn); data.put("rebateLeft", rebateUseCan); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); e.printStackTrace(); } } } fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/UserSystemCouponCountMapper.java
@@ -136,4 +136,14 @@ */ BigDecimal countCouponNumByDay(@Param("type") String type, @Param("preDay") String preDay); /** * 统计券数量 * @param state * @param activated * @param list * @return */ Long countCouponNum(@Param("uid")Long uid, @Param("state") Integer state, @Param("activated") Integer activated, @Param("list")List<String> list, @Param("listSource")List<String> listSource); } fanli/src/main/java/com/yeshi/fanli/mapping/user/UserSystemCouponCountMapper.xml
@@ -291,5 +291,28 @@ WHERE p.`sc_type` = #{type} AND TO_DAYS(c.`usc_create_time`) = TO_DAYS(#{preDay}) </select> <select id="countCouponNum" resultType="java.lang.Long"> SELECT IFNULL(count(uc.`usc_id`),0) FROM `yeshi_ec_user_system_coupon` uc LEFT JOIN yeshi_ec_system_coupon p ON p.`sc_id`= uc.`usc_coupon_id` WHERE 1=1 <if test="uid != null"> AND uc.`usc_uid` = #{uid} </if> <if test="state != null"> AND uc.usc_state = #{state} </if> <if test="activated != null"> AND uc.`usc_state_activate` = #{activated} </if> <if test="list != null"> AND p.`sc_type` in <foreach collection="list" item="item" open="(" close=")" separator=",">#{item}</foreach> </if> <if test="listSource != null"> AND uc.`usc_source` in <foreach collection="listSource" item="item" open="(" close=")" separator=",">#{item}</foreach> </if> </select> </mapper> fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserSystemCouponCountServiceImpl.java
@@ -277,4 +277,13 @@ return userSystemCouponCountMapper.countCouponNumByDay(typeEnum.name(), preDay); } @Override public long countCouponNum(Long uid, Integer state, Integer activated, List<String> list, List<String> listSource){ Long count = userSystemCouponCountMapper.countCouponNum(uid, state, activated, list, listSource); if (count == null) count = 0L; return count; } } fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserSystemCouponCountService.java
@@ -98,5 +98,15 @@ * @return */ public BigDecimal countCouponNumByDay(CouponTypeEnum typeEnum, String preDay); /** * 统计券数量 * @param state * @param activated * @param list * @param listSource * @return */ public long countCouponNum(Long uid, Integer state, Integer activated, List<String> list, List<String> listSource); }