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; } }