yujian
2019-09-10 9e6b77bfbcec378c1419dde64c9c04094de3c24c
用户金币使用情况统计
6个文件已修改
134 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoCountMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoCountMapper.xml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserInfoCountService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/user/UserGoldCoinVO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserInfoAdminController.java
@@ -19,7 +19,6 @@
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
import com.yeshi.fanli.dto.money.AccountDetails;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
@@ -43,9 +42,8 @@
import com.yeshi.fanli.service.inter.user.UserRankService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
import com.yeshi.fanli.vo.user.UserGoldCoinVO;
import com.yeshi.fanli.vo.user.UserInfoVO;
import net.sf.json.JSONArray;
@@ -1092,15 +1090,11 @@
    
    /**
     * 当周产生3单的新增用户概率
     *
     * 获取金币排行榜
     * @param callback
     * @param channelArray
     *            渠道名称
     * @param startTime
     * @param endTime
     * @param orderNum
     *            订单数量
     * @param pageIndex
     * @param pageSize
     * @param type
     * @param out
     */
    @RequestMapping(value = "getGoldTop")
@@ -1111,12 +1105,29 @@
            return;
        }
        
        if (pageIndex == null)
            pageIndex = 1;
        if (pageSize == null)
            pageSize = 50;
        
        long count = 0;
        List<UserGoldCoinVO> list = null;
        if (type == 0) {
            count = userInfoCountService.countByHasGoldCoin();
            list = userInfoCountService.listByHasGoldCoin((pageIndex - 1) * pageSize, pageSize);
        } else if (type == 1 || type == 2) {
            count = userInfoCountService.countByUserGoldCoin(type);
            list = userInfoCountService.listByUserGoldCoin((pageIndex - 1) * pageSize, pageSize, type);
        }
        if(list == null)
            list = new ArrayList<>();
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("list", list);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/UserInfoCountMapper.java
@@ -16,4 +16,20 @@
     * @return
     */
    List<UserGoldCoinVO> listByUserGoldCoin(@Param("start")long start, @Param("count")int count, @Param("type")int type);
    long countByUserGoldCoin(@Param("type")int type);
    /**
     * 统计用户累计获得金币,消耗金币
     * @param start
     * @param count
     * @param type
     * @return
     */
    List<UserGoldCoinVO> listByHasGoldCoin(@Param("start")long start, @Param("count")int count);
    long countByHasGoldCoin();
}
fanli/src/main/java/com/yeshi/fanli/mapping/UserInfoCountMapper.xml
@@ -8,20 +8,39 @@
        <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
        <result column="portrait" property="portrait" jdbcType="VARCHAR" />
        <result column="goldCoin" property="goldCoin"    jdbcType="INTEGER" />
        <result column="goldCoinTotal" property="goldCoinTotal"    jdbcType="INTEGER" />
    </resultMap>
    
    
    <select id="listByUserGoldCoin" resultMap="UserGoldCoinMapVO">
        SELECT IFNULL(SUM(d.`td_money`),0) AS goldCoinTotal,u.`id`,u.`nick_name`,u.`portrait`
        SELECT IFNULL(SUM(d.`td_money`),0) AS goldCoin,u.`id`,u.`nick_name`,u.`portrait`
        FROM `yeshi_ec_integral_detail` d
        LEFT JOIN `yeshi_ec_user` u ON u.`id` = d.`td_uid`
        WHERE 1=1 
              <if test="type = 1">AND d.`td_money`<![CDATA[>]]> 0</if>
              <if test="type = 2">AND d.`td_money`<![CDATA[<]]> 0</if>
              <if test="type == 1">AND d.`td_money`<![CDATA[>]]> 0</if>
              <if test="type == 2">AND d.`td_money`<![CDATA[<]]> 0</if>
        GROUP BY d.`td_uid`
        ORDER BY goldCoinTotal <if test="type = 1">DESC</if>
        ORDER BY goldCoin <if test="type = 1">DESC</if>
        LIMIT #{start},#{count}
    </select>
    <select id="countByUserGoldCoin" resultType="Long">
        SELECT IFNULL(COUNT(DISTINCT d.`td_uid`),0) FROM `yeshi_ec_integral_detail` d
        WHERE 1=1
              <if test="type == 1">AND d.`td_money`<![CDATA[>]]> 0</if>
              <if test="type == 2">AND d.`td_money`<![CDATA[<]]> 0</if>
    </select>
    <select id="listByHasGoldCoin" resultMap="UserGoldCoinMapVO">
        SELECT IFNULL(t.`uie_gold_coin`,0) AS goldCoin,u.`id`,u.`nick_name`,u.`portrait`
        FROM `yeshi_ec_user_info_extra` t
        LEFT JOIN `yeshi_ec_user` u ON t.`uie_uid` = u.`id`
        ORDER BY t.`uie_gold_coin` DESC
        LIMIT #{start},#{count}
    </select>
    <select id="countByHasGoldCoin" resultType="Long">
        SELECT IFNULL(COUNT(t.`uie_id`),0)FROM `yeshi_ec_user_info_extra` t
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java
@@ -295,5 +295,19 @@
        return userInfoCountMapper.listByUserGoldCoin(start, count, type);
    }
    @Override
    public long countByUserGoldCoin(int type) {
        return userInfoCountMapper.countByUserGoldCoin(type);
    }
    @Override
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count) {
        return userInfoCountMapper.listByHasGoldCoin(start, count);
    }
    @Override
    public long countByHasGoldCoin() {
        return userInfoCountMapper.countByHasGoldCoin();
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/count/UserInfoCountService.java
@@ -70,6 +70,17 @@
     * @return
     */
    public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type);
    public long countByUserGoldCoin(int type);
    /**
     * 统计剩余金币
     * @param start
     * @param count
     * @return
     */
    public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count);
    public long countByHasGoldCoin();
    
}
fanli/src/main/java/com/yeshi/fanli/vo/user/UserGoldCoinVO.java
@@ -7,13 +7,9 @@
    private String nickName;
    // 头像
    private String portrait;
    // 累计
    private int goldCoin;
    // 累计
    private int goldCoinTotal;
    // 消耗
    private int goldCoinConsume;
    public Long getUid() {
        return uid;
@@ -47,19 +43,4 @@
        this.goldCoin = goldCoin;
    }
    public int getGoldCoinTotal() {
        return goldCoinTotal;
    }
    public void setGoldCoinTotal(int goldCoinTotal) {
        this.goldCoinTotal = goldCoinTotal;
    }
    public int getGoldCoinConsume() {
        return goldCoinConsume;
    }
    public void setGoldCoinConsume(int goldCoinConsume) {
        this.goldCoinConsume = goldCoinConsume;
    }
}