yujian
2020-06-12 8a54915d3c39d9d8d7e90c0971d1e19d0eb76622
券统计
5个文件已修改
106 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserSystemCouponAdminController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/UserSystemCouponCountMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/user/UserSystemCouponCountMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserSystemCouponCountServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserSystemCouponCountService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    
}