admin
2019-03-13 df03194e4b0c0737cf84127c4dd69d456e30ed24
Merge remote-tracking branch 'origin/master'

Conflicts:
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java
1个文件已删除
7个文件已修改
292 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserRankingsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/test/java/org/fanli/random/ExtractGift.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/ExtractAdminController.java
@@ -88,7 +88,6 @@
    @Resource
    private AdminUserService adminUserService;
    @Resource
    private RedisManager redisManager;
@@ -97,7 +96,6 @@
    @Resource
    private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
    private final static String TODAY = "1";
    private final static String THREE = "2";
@@ -438,8 +436,8 @@
                    if (extract != null) {
                        UserInfo userInfo = extract.getUserInfo();
                        Long id = userInfo.getId();
                        countByUid = hongBaoService.getCountByUid(id);
                        countCancel = hongBaoV2CountService.countNumberByUidAndState(id, HongBaoV2.STATE_SHIXIAO);
                        countByUid = hongBaoV2CountService.countNumberByUid(id);
                        countCancel = hongBaoV2CountService.countNumberByUidAndState(id, HongBaoV2.STATE_SHIXIAO);
                    }
                    extractAuditRecord.setCancelOrderNum((long) countCancel);
                    extractAuditRecord.setOrderNum((long) countByUid);
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java
@@ -18,11 +18,11 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserRankings;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.user.UserRankingsService;
import com.yeshi.fanli.vo.order.HongBaoV2VO;
import net.sf.json.JSONObject;
@@ -35,8 +35,6 @@
    
    @Resource
    private HongBaoV2CountService hongBaoV2CountService;
    /**
     * 返利券排行榜
     * @param callback
@@ -77,18 +75,18 @@
            String defaultDate = sdf.format(calendar.getTime());    //格式化前一天
            // 真实用户
            List<HongBao> listHongBao = hongBaoService.listShareAndInviteMoney(0, 50, defaultDate);
            List<HongBaoV2VO> listHongBao = hongBaoV2CountService.listShareAndInviteMoney(0, 50, defaultDate);
            if (listHongBao != null && listHongBao.size() > 0) {
                HongBao hongBao = listHongBao.get(0);
                BigDecimal maxMoney = hongBao.getShareAndInviteMoney();
                HongBaoV2VO hongBao = listHongBao.get(0);
                BigDecimal maxMoney = hongBao.getTotalMoney();
                
                UserRankings userRankings = userRankingsList.get(userRankingsList.size()-1);
                BigDecimal mminMoney = userRankings.getTradeReward();
                
                // 真实数据大于最低金额
                if (maxMoney.compareTo(mminMoney) > 0 ) {
                    for (HongBao hb: listHongBao) {
                        BigDecimal rewardMoney = hb.getShareAndInviteMoney();
                    for (HongBaoV2VO hb: listHongBao) {
                        BigDecimal rewardMoney = hb.getTotalMoney();
                        
                        // 奖金高到低排序,不满足结束循环
                        if (rewardMoney.compareTo(mminMoney) <= 0 ) {
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java
@@ -30,6 +30,13 @@
    Integer countNumberByUidAndState(@Param("uid")Long uid, @Param("state") Integer state);
    
    /**
     * 统计用户总的红包数量
     * @param uid
     * @return
     */
    Long countNumberByUid(@Param("uid")Long uid);
    /**
     * 统计总金额
     * @param channel 渠道
     * @param type 
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml
@@ -126,6 +126,12 @@
        ORDER BY t.`hb_create_time`
    </select>
    
    <select id="countNumberByUid" resultType="java.lang.Long">
      select count(hb_id) from yeshi_ec_hongbao_v2 where hb_uid=#{0}
    </select>
    
    <select id="countHongBaoType" resultType="java.util.HashMap">
        SELECT COUNT(t.`hb_id`)AS showValue,<include refid="Column_DateType"/>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java
@@ -25,6 +25,7 @@
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.vo.order.HongBaoV2VO;
@Service
public class HongBaoV2CountServiceImpl implements HongBaoV2CountService {
@@ -62,9 +63,8 @@
    @Resource
    private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
    public List<Map<String, Object>> dayFactory(String startTime, String endTime, List<Map<String, Object>> list) throws Exception {
    public List<Map<String, Object>> dayFactory(String startTime, String endTime, List<Map<String, Object>> list)
            throws Exception {
        List<Map<String, Object>> listObject = new ArrayList<Map<String, Object>>();
@@ -169,87 +169,86 @@
        return listObject;
    }
    @Override
    public List<Map<String, Object>> countHongBaoMoney(String channel, Integer dateType, Integer state,
            String year, String startTime, String endTime) throws Exception {
    public List<Map<String, Object>> countHongBaoMoney(String channel, Integer dateType, Integer state, String year,
            String startTime, String endTime) throws Exception {
        return hongBaoV2CountMapper.countHongBaoMoney(channel, dateType, state, year, startTime, endTime);
    }
    @Override
    public List<Map<String, Object>> countHongBaoNum(String channel, Integer dateType, Integer state,
            String year, String startTime, String endTime) throws Exception {
    public List<Map<String, Object>> countHongBaoNum(String channel, Integer dateType, Integer state, String year,
            String startTime, String endTime) throws Exception {
        return hongBaoV2CountMapper.countHongBaoNum(channel, dateType, state, year, startTime, endTime);
    }
    @Override
    public List<Map<String, Object>> countHongBaoType(Integer dateType, Integer type, String year,
            String startTime, String endTime) throws Exception {
    public List<Map<String, Object>> countHongBaoType(Integer dateType, Integer type, String year, String startTime,
            String endTime) throws Exception {
        return hongBaoV2CountMapper.countHongBaoType(dateType, type, year, startTime, endTime);
    }
    @Override
    public List<Map<String, Object>> getProportionByType(Integer dateType, Integer type, String year,
            String startTime, String endTime) throws Exception {
    public List<Map<String, Object>> getProportionByType(Integer dateType, Integer type, String year, String startTime,
            String endTime) throws Exception {
        List<Map<String, Object>> result_list = null;
        List<Map<String, Object>> listTotal = hongBaoV2CountMapper.countHongBaoTotalNum(dateType, year, startTime, endTime);
        List<Map<String, Object>> listTotal = hongBaoV2CountMapper.countHongBaoTotalNum(dateType, year, startTime,
                endTime);
        if (listTotal == null || listTotal.size() == 0) {
            return result_list;
        }
        List<Map<String, Object>> type_list = hongBaoV2CountMapper.countHongBaoType(dateType, type,
                year, startTime, endTime);
        }
        List<Map<String, Object>> type_list = hongBaoV2CountMapper.countHongBaoType(dateType, type, year, startTime,
                endTime);
        if (type_list == null || type_list.size() == 0) {
            return null;
        }
        switch (dateType){
            case 1: // 按天处理
                result_list = dayFactory(startTime, endTime, type_list);
                break;
            case 2: // 按月处理
                result_list = monthFactory(type_list);
                break;
            case 3:
                result_list =  yearFactory(type_list);
                break;
            default:
                break;
        switch (dateType) {
        case 1: // 按天处理
            result_list = dayFactory(startTime, endTime, type_list);
            break;
        case 2: // 按月处理
            result_list = monthFactory(type_list);
            break;
        case 3:
            result_list = yearFactory(type_list);
            break;
        default:
            break;
        }
        for (int i = 0; i < result_list.size(); i++) {
            float proportion = 0;
            Map<String, Object> resultMap = result_list.get(i);
            Object showDate = resultMap.get("showDate");
            for (int j = 0; j < listTotal.size(); j++) {
                Map<String, Object> innerMap = result_list.get(j);
                Object innerDate = innerMap.get("showDate");
                if (innerDate != null && innerDate.toString().equals(showDate.toString())) {
                    Object innerValue = innerMap.get("showValue");
                    long innerData = Long.parseLong(innerValue.toString());
                    Object showValue = resultMap.get("showValue");
                    long showData = Long.parseLong(showValue.toString());
                    if (showData > 0) {
                        proportion =  innerData/showData;
                        proportion = innerData / showData;
                    }
                    break; // 结束内部循环
                }
            }
            resultMap.put("showValue", proportion);
        }
        return result_list;
    }
@@ -257,7 +256,7 @@
    public BigDecimal countMoneyByUidAndState(Long uid, Integer state) {
        return hongBaoV2CountMapper.countMoneyByUidAndState(uid, state);
    }
    @Override
    public Integer countNumberByUidAndState(Long uid, Integer state) {
        return hongBaoV2CountMapper.countNumberByUidAndState(uid, state);
@@ -282,19 +281,22 @@
    public Date getLastHongBaoTime(Long uid) {
        return hongBaoV2CountMapper.getLastHongBaoTime(uid);
    }
    @Override
    public List<Map<String, Object>> count24HOderByChannel(String channel, Integer type, String years,
            String startTime, String endTime) throws Exception{
    public List<Map<String, Object>> count24HOderByChannel(String channel, Integer type, String years, String startTime,
            String endTime) throws Exception {
        return hongBaoV2CountMapper.count24HOderByChannel(channel, type, years, startTime, endTime);
    }
    @Override
    public List<HongBaoV2VO> listShareAndInviteMoney(long start, int count, String date) {
        return hongBaoV2CountMapper.listShareAndInviteMoney(start, count, date);
    }
    @Override
    public Integer countNumberByUid(Long uid) {
        long count = hongBaoV2CountMapper.countNumberByUid(uid);
        return (int) count;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserRankingsServiceImpl.java
@@ -30,6 +30,7 @@
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.user.UserRankingsService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.vo.order.HongBaoV2VO;
@Service
public class UserRankingsServiceImpl implements UserRankingsService {
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java
@@ -7,53 +7,76 @@
import com.yeshi.fanli.vo.order.HongBaoV2VO;
public interface HongBaoV2CountService {
    /**
     * 统计历史总到账金额
     * @param uid
     * @param state
     *
     * @param uid
     * @param state
     * @return
     */
    public BigDecimal countMoneyByUidAndState(Long uid, Integer state);
    /**
     * 统计历史红包数量
     * @param uid
     * @param state
     *
     * @param uid
     * @param state
     * @return
     */
    public Integer countNumberByUidAndState(Long uid, Integer state);
    /**
     * 统计总金额
     * @param channel 渠道
     * @param dateType 日期格式  日-1 月-2 年-3
     * @param state  状态
     * @param years  年份
     * @param startTime  开始时间
     * @param endTime      结束时间
     * 统计用户红包数量
     * @param uid
     * @return
     */
    public List<Map<String, Object>> countHongBaoMoney(String channel, Integer dateType, Integer state, String year,
    public Integer countNumberByUid(Long uid);
    /**
     * 统计总金额
     *
     * @param channel
     *            渠道
     * @param dateType
     *            日期格式 日-1 月-2 年-3
     * @param state
     *            状态
     * @param years
     *            年份
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return
     */
    public List<Map<String, Object>> countHongBaoMoney(String channel, Integer dateType, Integer state, String year,
            String startTime, String endTime) throws Exception;
    /**
     * 统计总金额
     * @param channel 渠道
     * @param dateType 日期格式  日-1 月-2 年-3
     * @param state  状态
     * @param years  年份
     * @param startTime  开始时间
     * @param endTime      结束时间
     *
     * @param channel
     *            渠道
     * @param dateType
     *            日期格式 日-1 月-2 年-3
     * @param state
     *            状态
     * @param years
     *            年份
     * @param startTime
     *            开始时间
     * @param endTime
     *            结束时间
     * @return
     */
    public List<Map<String, Object>> countHongBaoNum(String channel, Integer dateType, Integer state, String year,
    public List<Map<String, Object>> countHongBaoNum(String channel, Integer dateType, Integer state, String year,
            String startTime, String endTime) throws Exception;
    /**
     * 分类型订单数与比例
     *
     * @param dateType
     * @param type
     * @param year
@@ -67,23 +90,24 @@
    /**
     * 统计提成订单数量
     *
     * @param uid
     * @return
     */
    public int getTotalTiChengCount(Long uid);
    /**
     * 统计未失效订单数量
     *
     * @param uid
     * @param dateType
     * @return
     */
    public long countValidNumberByUid(Long uid, Integer dateType);
    /**
     * 统计未到账金额
     *
     * @param uid
     * @param dateType
     * @return
@@ -92,6 +116,7 @@
    /**
     * 最后一次下单时间
     *
     * @param uid
     * @return
     */
@@ -102,6 +127,7 @@
    /**
     * 统计所有类型订单数量
     *
     * @param dateType
     * @param type
     * @param year
@@ -115,11 +141,12 @@
    /**
     * 查询邀请=分享奖金
     *
     * @param start
     * @param count
     * @param date
     * @return
     */
    public List<HongBaoV2VO> listShareAndInviteMoney(long start, int count, String date);
}
fanli/src/test/java/org/fanli/random/ExtractGift.java
File was deleted