admin
2020-05-21 49ed4f4521ce433a14810a0119bf3f2f7f6e606a
Merge remote-tracking branch 'origin/div' into div
2个文件已添加
28个文件已修改
1283 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/homemodule/SwiperBannerAdminController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java 329 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/dividents/TeamDividentsSourceOrderMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/dividents/TeamDividentsSourceOrderUserMapMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamFansInfoDao.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/dividents/TeamDividentsSourceOrderMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/dividents/TeamDividentsSourceOrderUserMapMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SwiperPictureServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamFansInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/homemodule/SwiperPictureService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/dividents/TeamDividentsSourceOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/dividents/TeamDividentsSourceOrderUserMapService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamFansInfoService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/order/TeamDividentsVO.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/order/TeamOrderVO.java 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
@@ -427,10 +427,6 @@
            e.printStackTrace();
        }
    }
    
    @RequestMapping(value = "uploadTaoBaoWeiQuanOrder")
@@ -452,6 +448,26 @@
        }
    }
    
    @RequestMapping(value = "countOrderInfo")
    public void countOrderInfo(String callback, Long uid, PrintWriter out) {
        // 自购已到账
        long selfNumEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 1);
        // 分享已到账
        long shareNumEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 2);
        // 自购未到账
        long selfNum = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 1);
        // 分享未到账
        long shareNum = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 2);
        JSONObject data = new JSONObject();
        data.put("selfNumEnd", selfNumEnd);
        data.put("shareNumEnd", shareNumEnd);
        data.put("selfNum", selfNum);
        data.put("description", shareNum);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/admin/homemodule/SwiperBannerAdminController.java
@@ -12,6 +12,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -337,70 +338,81 @@
        }
        try {
            List<BannerVO> list = swiperPictureService.queryByBannerID((pageIndex - 1) * pageSize, pageSize,
            List<SwiperPicture> listPic = swiperPictureService.queryByBannerID((pageIndex - 1) * pageSize, pageSize,
                    bannerId);
            if (list == null || list.size() == 0) {
            if (listPic == null || listPic.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
                return;
            }
            List<BannerVO> list = new ArrayList<BannerVO>();
            // 跳转链接
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
            for (BannerVO swiperPicture : list) {
                if (swiperPicture.getState() != null && swiperPicture.getState() == 0) {
                    swiperPicture.setState(1);
                } else {
                    swiperPicture.setState(0);
            for (SwiperPicture swiperPicture : listPic) {
                BannerVO bannerVO = new BannerVO();
                try {
                    PropertyUtils.copyProperties(bannerVO, swiperPicture);
                } catch (Exception e) {
                    e.printStackTrace();
                    continue;
                }
                
                
                Date startTime = swiperPicture.getStartTime();
                if (bannerVO.getState() != null && bannerVO.getState() == 0) {
                    bannerVO.setState(1);
                } else {
                    bannerVO.setState(0);
                }
                Date startTime = bannerVO.getStartTime();
                if (startTime == null) {
                    swiperPicture.setStartTime_str("");
                    bannerVO.setStartTime_str("");
                } else {
                    swiperPicture.setStartTime_str(sdf.format(startTime));
                    bannerVO.setStartTime_str(sdf.format(startTime));
                }
                Date endTime = swiperPicture.getEndTime();
                Date endTime = bannerVO.getEndTime();
                if (endTime == null) {
                    swiperPicture.setEndTime_str("");
                    bannerVO.setEndTime_str("");
                } else {
                    swiperPicture.setEndTime_str(sdf.format(endTime));
                    bannerVO.setEndTime_str(sdf.format(endTime));
                }
                String params = swiperPicture.getParams();
                String params = bannerVO.getParams();
                if (params == null) {
                    swiperPicture.setParams("");
                    bannerVO.setParams("");
                }
                String remark = swiperPicture.getRemark();
                String remark = bannerVO.getRemark();
                if (remark == null) {
                    swiperPicture.setRemark("");
                    bannerVO.setRemark("");
                }
                JumpDetailV2 jumpDetail = swiperPicture.getJumpDetail();
                JumpDetailV2 jumpDetail = bannerVO.getJumpDetail();
                if (jumpDetail == null) {
                    // 默认未选择
                    JumpDetailV2 jumpDetailV2 = new JumpDetailV2();
                    jumpDetailV2.setName("-未选择-");
                    jumpDetailV2.setType("default");
                    swiperPicture.setJumpDetail(jumpDetailV2);
                    bannerVO.setJumpDetail(jumpDetailV2);
                }
                
                // 分享补充信息
                CommonShareInfo info = commonShareInfoService.getByPidAndType(swiperPicture.getId(),
                CommonShareInfo info = commonShareInfoService.getByPidAndType(bannerVO.getId(),
                        CommonShareInfoEnum.banner.name());
                if (info == null) {
                    swiperPicture.setNeedSpin(false);
                    swiperPicture.setComment("");
                    bannerVO.setNeedSpin(false);
                    bannerVO.setComment("");
                } else {
                    swiperPicture.setNeedSpin(info.getNeedSpin());
                    bannerVO.setNeedSpin(info.getNeedSpin());
                    if (StringUtil.isNullOrEmpty(info.getComment())) {
                        swiperPicture.setComment("");
                        bannerVO.setComment("");
                    } else {
                        swiperPicture.setComment(info.getComment());
                        bannerVO.setComment(info.getComment());
                    }
                }
                list.add(bannerVO);
            }
            long count = swiperPictureService.countQueryByBannerID(bannerId);
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -25,6 +25,7 @@
import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
import com.yeshi.fanli.entity.bus.user.TeamFansInfo;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -55,6 +56,7 @@
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.invite.TeamDailyRecordService;
import com.yeshi.fanli.service.inter.user.invite.TeamFansInfoService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
@@ -151,8 +153,9 @@
    @Resource
    private TeamDailyRecordService teamDailyRecordService;
    @Resource
    private ThreeSaleDetailService threeSaleDetailService;
    /**
     * 邀请码验证
@@ -868,7 +871,7 @@
                    listId.add(focusInfo.getWorkerId());
                }
            }
            if (listId != null && listId.size() > 0) {
                if (type == 1) {
                    listTeam = threeSaleSerivce.listFirstTeam(0, Constant.PAGE_SIZE, uid, listId);
@@ -880,36 +883,36 @@
            countSecond = teamFansInfoService.count(2, uid, focus);
        }
        JSONArray array = organizeTeamNew(acceptData, listTeam, uid, type, true);
        long count = (type == 1) ? firstTeam : countSecond;
        JSONObject result = new JSONObject();
        result.put("firstTeam", firstTeam);
        result.put("secondTeam", countSecond);
        result.put("count", count);
        result.put("list", array);
        // 统计H5链接
        if (page == 1) {
            result.put("link", configService.get(ConfigKeyEnum.teamStatisticsLink.getKey()));
        }
        out.print(JsonUtil.loadTrueResult(result));
    }
    /**
     * 验证是否存在筛选条件
     *
     * @param focus
     * @return
     */
    private boolean existScreen(ThreeSaleFocusDTO focus) {
        if (focus.getStateValid() != null || focus.getTaobaoBind() != null || focus.getWeixinBind() != null
                || focus.getMinFansNum() != null || focus.getMinFansNum() != null
                || focus.getMinActiveTime() != null || focus.getMaxActiveTime() != null
                || focus.getMinIncome() != null  || focus.getMaxIncome() != null
                || focus.getMinJoinTime() != null  || focus.getMaxJoinTime() != null
                || focus.getMinFansNum() != null || focus.getMinFansNum() != null || focus.getMinActiveTime() != null
                || focus.getMaxActiveTime() != null || focus.getMinIncome() != null || focus.getMaxIncome() != null
                || focus.getMinJoinTime() != null || focus.getMaxJoinTime() != null
                || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel()))
             return true;
            return true;
        return false;
    }
@@ -998,7 +1001,6 @@
                highVIP.put("total", statistic.getHighFirstCount() + statistic.getHighSecondCount());
                superVIP.put("total", statistic.getSuperFirstCount() + statistic.getSuperSecondCount());
            }
            int darenToday = 0;
            int highVIPToday = 0;
@@ -1006,10 +1008,10 @@
            String createId = teamDailyRecordService.createId(uid, new Date());
            TeamDailyRecord record = teamDailyRecordService.getById(createId);
            if (record != null) {
                if (record.getFirstDaRen() != null)
                if (record.getFirstDaRen() != null)
                    darenToday += record.getFirstDaRen();
                if (record.getSecondDaRen() != null)
                    darenToday += record.getSecondDaRen();
                    darenToday += record.getSecondDaRen();
                if (record.getFirstHighVIP() != null)
                    highVIPToday += record.getFirstHighVIP();
                if (record.getSecondHighVIP() != null)
@@ -1019,24 +1021,23 @@
                if (record.getSecondSuperVIP() != null)
                    superVIPToday += record.getSecondSuperVIP();
            }
            // 获取当月第一天和最后一天
            // 获取当月第一天和最后一天
            Calendar cale = Calendar.getInstance();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String firstday, lastday;
            // 获取前月的第一天
            cale = Calendar.getInstance();
            cale.add(Calendar.MONTH, 0);
            cale.set(Calendar.DAY_OF_MONTH, 1);
            firstday = format.format(cale.getTime());
            // 获取前月的最后一天
            cale = Calendar.getInstance();
            cale.add(Calendar.MONTH, 1);
            cale.set(Calendar.DAY_OF_MONTH, 0);
            lastday = format.format(cale.getTime());
            int darenMonth = 0;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String firstday, lastday;
            // 获取前月的第一天
            cale = Calendar.getInstance();
            cale.add(Calendar.MONTH, 0);
            cale.set(Calendar.DAY_OF_MONTH, 1);
            firstday = format.format(cale.getTime());
            // 获取前月的最后一天
            cale = Calendar.getInstance();
            cale.add(Calendar.MONTH, 1);
            cale.set(Calendar.DAY_OF_MONTH, 0);
            lastday = format.format(cale.getTime());
            int darenMonth = 0;
            int highVIPMonth = 0;
            int superVIPMonth = 0;
            Date date = new Date();
@@ -1045,10 +1046,10 @@
            List<TeamDailyRecord> listMonth = teamDailyRecordService.sumGroupByYearMonth(uid, minTime, maxTime);
            if (listMonth != null && listMonth.size() > 0) {
                TeamDailyRecord teamRecord = listMonth.get(0);
                if (teamRecord.getFirstDaRen() != null)
                if (teamRecord.getFirstDaRen() != null)
                    darenMonth += teamRecord.getFirstDaRen();
                if (teamRecord.getSecondDaRen() != null)
                    darenMonth += teamRecord.getSecondDaRen();
                    darenMonth += teamRecord.getSecondDaRen();
                if (teamRecord.getFirstHighVIP() != null)
                    highVIPMonth += teamRecord.getFirstHighVIP();
                if (teamRecord.getSecondHighVIP() != null)
@@ -1064,10 +1065,10 @@
            // 高级会会员
            highVIP.put("today", highVIPToday);
            highVIP.put("month", highVIPMonth);
             // 统计超级会员数量
            // 统计超级会员数量
            superVIP.put("today", superVIPToday);
            superVIP.put("month", superVIPMonth);
            json.put("daren", daren);
            json.put("highVIP", highVIP);
            json.put("superVIP", superVIP);
@@ -1114,9 +1115,7 @@
                bossNickName = boss.getNickName();
            }
        }
        JSONArray tagArray = new JSONArray();
        String memoName = user.getNickName();
        Long succeedTime = threeSale.getSucceedTime();
@@ -1159,11 +1158,11 @@
            weixin = userInfoExtra.getWeiXin();
            activeTime = userInfoExtra.getActiveTime();
        }
        if (activeTime == null) {
            activeTime = new Date(user.getCreatetime());
        }
        data.put("weixin", StringUtil.isNullOrEmpty(weixin) ? "" : weixin);
        data.put("loginTime", TimeUtil.formatDate(activeTime));
@@ -1203,19 +1202,193 @@
        if (directNum > 0) {
            indirectNum = threeSaleSerivce.countSecondTeam(workerId);
        }
        // 订单统计
        long countTB = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_TAOBAO, 60);
        long countJD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_JD, 60);
        long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_PDD, 60);
        data.put("fansNum", "直接粉丝: "+directNum+"人\n" + "间接粉丝: "+indirectNum+"人");
        data.put("orderInfo", "淘宝 ("+countTB+"笔)\n" + "京东 ("+countJD+"笔)\n" + "拼多多 ("+countPDD+"笔)");
        data.put("fansNum", "直接粉丝: " + directNum + "人\n" + "间接粉丝: " + indirectNum + "人");
        data.put("orderInfo", "淘宝 (" + countTB + "笔)\n" + "京东 (" + countJD + "笔)\n" + "拼多多 (" + countPDD + "笔)");
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 获取粉丝信息
     *
     * @param acceptData
     * @param uid
     * @param workerId
     * @param out
     */
    @RequestMapping(value = "fansSearch")
    public void fansSearch(String callback, AcceptData acceptData, Long uid, String key, PrintWriter out) {
        if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (StringUtil.isNullOrEmpty(key)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请输入筛选信息"));
            return;
        }
        List<TeamFansInfo> listfocus = teamFansInfoService.queryByUserInfo(key);
        if (listfocus == null || listfocus.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "暂无相关信息"));
            return;
        }
        Long fansId = null;
        for (TeamFansInfo teamFansInfo : listfocus) {
            Long workerId = teamFansInfo.getWorkerId();
            ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, workerId);
            if (threeDetail != null) {
                fansId = workerId;
                break;
            }
        }
        if (fansId == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "暂无相关信息"));
            return;
        }
        ThreeSale threeSale = threeSaleSerivce.getByWorkerId(fansId);
        if (threeSale == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "暂无相关信息"));
            return;
        }
        UserInfo user = userInfoService.selectByPKey(fansId);
        if (user == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "暂无相关信息"));
            return;
        }
        JSONObject data = new JSONObject();
        JSONObject inviteBoss = getInviteBoss(threeSale.getBoss().getId());
        data.put("boss", inviteBoss);
        String phone = user.getPhone();
        boolean phoneCopy = true;
        if (StringUtil.isNullOrEmpty(phone)) {
            phone = "";
        } else {
            if (!userCustomSettingsService.validateDisplayPhoneByUid(fansId)) {
                phoneCopy = false;
                phone = phone.substring(0, 7) + "****";
            }
        }
        data.put("fansId", fansId);
        data.put("nickName", user.getNickName());
        data.put("portrait", user.getPortrait());
        data.put("phone", phone);
        data.put("phoneCopy", phoneCopy);
        data.put("joinTime", TimeUtil.formatDate(threeSale.getSucceedTime() == null ? threeSale.getCreateTime() : threeSale.getSucceedTime()));
        Date activeTime = null;
        String weixin = null;
        UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(fansId);
        if (userInfoExtra != null) {
            weixin = userInfoExtra.getWeiXin();
            activeTime = userInfoExtra.getActiveTime();
        }
        if (activeTime == null) {
            activeTime = new Date(user.getCreatetime());
        }
        String inviteCode = "";
        if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
            inviteCode = userInfoExtra.getInviteCode();
        if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip()))
            inviteCode = userInfoExtra.getInviteCodeVip();
        data.put("inviteCode", inviteCode);
        data.put("weixin", StringUtil.isNullOrEmpty(weixin) ? "" : weixin);
        data.put("loginTime", TimeUtil.formatDate(activeTime));
        UserExtraTaoBaoInfo userExtraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(fansId);
        if (userExtraTaoBaoInfo != null && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getRelationId())
                && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getSpecialId())) {
            data.put("taobao", true);
        } else {
            data.put("taobao", false);
        }
        // 当前等级
        UserLevelEnum level = null;
        UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(fansId);
        if (vipLevel != null && vipLevel.getLevel() != null) {
            level = UserLevelUtil.getByLevel(vipLevel.getLevel());
        }
        if (level == null) {
            level = UserLevelEnum.daRen;
        }
        data.put("level", UserLevelUtil.getShowLevel(level));
        // 粉丝统计
        long indirectNum = 0;
        long directNum = threeSaleSerivce.countFirstTeam(fansId);
        if (directNum > 0) {
            indirectNum = threeSaleSerivce.countSecondTeam(fansId);
        }
        // 订单统计
        long countTB = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_TAOBAO, 60);
        long countJD = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_JD, 60);
        long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_PDD, 60);
        data.put("fansNum", "直接粉丝: " + directNum + "人\n" + "间接粉丝: " + indirectNum + "人");
        data.put("orderInfo", "淘宝 (" + countTB + "笔)\n" + "京东 (" + countJD + "笔)\n" + "拼多多 (" + countPDD + "笔)");
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    private JSONObject getInviteBoss(Long bossId) {
        UserInfo userInfo = userInfoService.selectByPKey(bossId);
        boolean phoneCopy = true;
        String phone = userInfo.getPhone();
        if (StringUtil.isNullOrEmpty(phone)) {
            phone = "";
        } else {
            if (!userCustomSettingsService.validateDisplayPhoneByUid(bossId)) {
                phoneCopy = false;
                phone = phone.substring(0, 7) + "****";
            }
        }
        // 微信号
        String weixin = "";
        UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(bossId);
        if (extra != null) {
            weixin = StringUtil.isNullOrEmpty(extra.getWeiXin()) ? "" : extra.getWeiXin();
        }
        // 当前等级
        UserLevelEnum level = null;
        UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(bossId);
        if (vipLevel != null && vipLevel.getLevel() != null) {
            level = UserLevelUtil.getByLevel(vipLevel.getLevel());
        }
        if (level == null) {
            level = UserLevelEnum.daRen;
        }
        level = UserLevelUtil.getShowLevel(level);
        JSONObject bossObject = new JSONObject();
        bossObject.put("nickName", userInfo.getNickName());
        bossObject.put("portrait", userInfo.getPortrait());
        bossObject.put("phone", phone);
        bossObject.put("phoneCopy", phoneCopy);
        bossObject.put("weixin", weixin);
        bossObject.put("level", level.name());
        return bossObject;
    }
    /**
     * 保存粉丝信息
     * 
     * @param acceptData
     * @param uid
@@ -1257,9 +1430,8 @@
        out.print(JsonUtil.loadTrueResult("保存成功"));
    }
    /**
     *  队员数量统计
     * 队员数量统计
     * 
     * @param acceptData
     * @param id
@@ -1271,53 +1443,55 @@
            Date minDate = null;
            Date maxDate = null;
            long timeStamp = System.currentTimeMillis();
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(timeStamp);
            // 今日预估
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
            TeamDailyRecord todayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null));
            TeamDailyRecord todayRecord = createVO(
                    teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null));
            // 昨日预估
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
            minDate = DateUtil.reduceDay(1, maxDate);
            TeamDailyRecord yesterdayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, maxDate));
            TeamDailyRecord yesterdayRecord = createVO(
                    teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, maxDate));
            // 本月预估
            maxDate = new Date(timeStamp);
            calendar = Calendar.getInstance();
            minDate = new Date(TimeUtil
                    .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
            minDate = new Date(TimeUtil.convertToTimeTemp(
                    calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
            calendar.add(Calendar.MONTH, -1);
            TeamDailyRecord monthRecord = createVO(teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate));
            TeamDailyRecord monthRecord = createVO(
                    teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate));
            // 累计
            TeamDailyRecord totalityRecord = createVO(teamDailyRecordService.sumTeamNumGroupByUid(uid, null, null));
            JSONObject today = new JSONObject();
            today.put("direct", todayRecord.getFirstNum());
            today.put("indirect", todayRecord.getSecondNum());
            today.put("beyond", todayRecord.getBeyondNum());
            JSONObject yesterday = new JSONObject();
            yesterday.put("direct", yesterdayRecord.getFirstNum());
            yesterday.put("indirect", yesterdayRecord.getSecondNum());
            yesterday.put("beyond", yesterdayRecord.getBeyondNum());
            JSONObject month = new JSONObject();
            month.put("direct", monthRecord.getFirstNum());
            month.put("indirect", monthRecord.getSecondNum());
            month.put("beyond", monthRecord.getBeyondNum());
            JSONObject totality = new JSONObject();
            totality.put("direct", totalityRecord.getFirstNum());
            totality.put("indirect", totalityRecord.getSecondNum());
            totality.put("beyond", totalityRecord.getBeyondNum());
            JSONObject json = new JSONObject();
            json.put("today", today);
            json.put("yesterday", yesterday);
@@ -1329,24 +1503,22 @@
            e.printStackTrace();
        }
    }
    private TeamDailyRecord createVO(List<TeamDailyRecord> list) {
        TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0);
        TeamDailyRecord totalityRecord = new TeamDailyRecord(0, 0, 0);
        if (list != null && list.size() > 0) {
            for (TeamDailyRecord record: list) {
            for (TeamDailyRecord record : list) {
                totalityRecord.setFirstNum(totalityRecord.getFirstNum() + record.getFirstNum());
                totalityRecord.setSecondNum(totalityRecord.getSecondNum() + record.getSecondNum());
                totalityRecord.setBeyondNum(totalityRecord.getBeyondNum() + record.getBeyondNum());
            }
        }
        }
        return totalityRecord;
    }
    /**
     * 邀请排行榜
     *
     * @param callback
     * @param acceptData
     * @param uid
@@ -1359,14 +1531,14 @@
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数缺失"));
            return;
        }
        try {
            Date minDate = null;
            Date maxDate = null;
            long timeStamp = System.currentTimeMillis();
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(timeStamp);
            if (dateType == 1) {
                // 今日
                calendar.add(Calendar.DAY_OF_YEAR, -1);
@@ -1380,21 +1552,20 @@
                // 本月
                maxDate = new Date(timeStamp);
                calendar = Calendar.getInstance();
                minDate = new Date(TimeUtil
                        .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
                minDate = new Date(TimeUtil.convertToTimeTemp(
                        calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
                calendar.add(Calendar.MONTH, -1);
            }
            List<OrderRankingVO> list = teamDailyRecordService.getRankingByFirstNum(uid, minDate, maxDate);
            if (list.size() > 0) {
                for (OrderRankingVO vo: list) {
                for (OrderRankingVO vo : list) {
                    UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid());
                    vo.setNickName(user.getNickName());
                    vo.setPortrait(user.getPortrait());
                }
            }
            JSONObject json = new JSONObject();
            json.put("list", list);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
@@ -1403,5 +1574,5 @@
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -31,7 +31,9 @@
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
import com.yeshi.fanli.entity.bus.user.vip.TearcherInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.entity.push.DeviceActive;
import com.yeshi.fanli.entity.shop.BanLiShopOrder;
@@ -76,6 +78,7 @@
import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
import com.yeshi.fanli.service.inter.user.vip.TearcherService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -85,6 +88,7 @@
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.user.UserLevelUtil;
import com.yeshi.fanli.vo.user.UserVipRateVO;
import net.sf.json.JSONObject;
@@ -212,6 +216,9 @@
    
    @Resource
    private TearcherService tearcherService;
    @Resource
    private UserVIPPreInfoService userVIPPreInfoService;
    
    
    /**
@@ -742,4 +749,38 @@
        }
    }
    /**
     * 获取vip信息
     *
     * @param acceptData
     * @param uid
     * @param out
     */
    @RequestMapping(value = "getVIPSuccessInfo")
    public void getVIPSuccessInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null || uid <= 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
        if (vipInfo == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "还未升级成为会员"));
            return;
        }
        UserLevelEnum level = UserLevelUtil.getByLevel(vipInfo.getProcess());
        if (level == null) {
            level = UserLevelEnum.daRen;
        }
        UserLevelEnum showLevel = UserLevelUtil.getShowLevel(level);
        String desc = "你于"+ TimeUtil.formatDateDot(vipInfo.getCreateTime()) +"升级为" +  showLevel.getName();
        JSONObject json = new JSONObject();
        json.put("desc", desc);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
@@ -41,6 +41,7 @@
import com.yeshi.fanli.service.inter.money.extract.ExtractService;
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
import com.yeshi.fanli.service.inter.user.PreviewInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -54,6 +55,7 @@
import com.yeshi.fanli.vo.money.MoneyStatisticVO;
import com.yeshi.fanli.vo.money.TeamPredictVO;
import com.yeshi.fanli.vo.order.OrderRankingVO;
import com.yeshi.fanli.vo.order.TeamDividentsVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -97,6 +99,9 @@
    
    @Resource
    private PreviewInfoService previewInfoService;
    @Resource
    private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService;
    
    private Gson getGson() {
@@ -558,9 +563,9 @@
     * @param out
     */
    @RequestMapping(value = "getTeamDividendStatistic")
    public void getTeamDividendStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
    public void getTeamDividendStatistic(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null || uid == 0) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
@@ -593,7 +598,7 @@
        object.put("subsidy", subsidy.setScale(2).toString());
        object.put("today", gson.toJson(todayVO));
        object.put("month", gson.toJson(monthVO));
        out.print(JsonUtil.loadTrueResult(object));
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
    }
    private TeamPredictVO crateTeamPredictVO(List<OrderMoneyDailyCount> list) {
@@ -628,15 +633,15 @@
     * @param out
     */
    @RequestMapping(value = "getTeamDividendHistory")
    public void getTeamDividendHistory(AcceptData acceptData, Long uid, String date, Integer datetype,
    public void getTeamDividendHistory(String callback, AcceptData acceptData, Long uid, String date, Integer datetype,
            PrintWriter out) {
        if (uid == null || uid == 0) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
            out.print(JsonUtil.loadFalseResult(1, "参数不完整"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不完整"));
            return;
        }
@@ -728,9 +733,92 @@
            JSONObject object = new JSONObject();
            object.put("count", list.size());
            object.put("list", gson.toJson(list));
            out.print(JsonUtil.loadTrueResult(object));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
        } catch (ParseException e) {
            e.printStackTrace();
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
        }
    }
    /**
     *  分红详情
     *
     * @param acceptData
     * @param uid
     * @param datetype   1-天 - 2月
     * @param out
     */
    @RequestMapping(value = "getTeamDividendDetail")
    public void getTeamDividendDetail(String callback, AcceptData acceptData, Integer page, Long uid,
            String date, Integer datetype, String key, PrintWriter out) {
        if (uid == null || uid == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (StringUtil.isNullOrEmpty(date) || datetype == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数不完整"));
            return;
        }
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        try {
            Date minDay = new Date();
            Date maxDay = new Date();
            if (datetype == 1) {
                minDay = TimeUtil.parseYYYYMMDD(date);
                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59");
            } else if (datetype == 2) {
                minDay = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date));
                maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59");
            }
            List<TeamDividentsVO> list = teamDividentsSourceOrderUserMapService.listByDateAndTargetUid((page-1) * pageSize, pageSize, uid, minDay, maxDay);
            if (list == null) {
                list = new ArrayList<>();
            }
            long count = teamDividentsSourceOrderUserMapService.countByDateAndTargetUid(uid, minDay, maxDay);
            GsonBuilder builder = new GsonBuilder();
            builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
                @Override
                public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
                    if (value == null) {
                        return new JsonPrimitive("0.000");
                    } else {
                        // 保留2位小数
                        value = value.setScale(3);
                        return new JsonPrimitive(value.toString());
                    }
                }
            });
            Gson gson = builder.create();
            JSONObject object = new JSONObject();
            if (page == 1) {
                TeamDividentsVO teamDividentsVO = teamDividentsSourceOrderUserMapService.sumByDateAndTargetUid(uid, minDay, maxDay);
                if (teamDividentsVO == null) {
                    teamDividentsVO = new TeamDividentsVO();
                    teamDividentsVO.setSubsidy(BigDecimal.ZERO);
                    teamDividentsVO.setDividents(BigDecimal.ZERO);
                }
                object.put("subsidy", teamDividentsVO.getSubsidy().setScale(3).toString());
                object.put("dividents", teamDividentsVO.getDividents().setScale(3).toString());
            }
            object.put("count", count);
            object.put("list", gson.toJson(list));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(object));
        } catch (Exception e) {
            e.printStackTrace();
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
        }
    }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -1,13 +1,17 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.annotation.Resource;
@@ -19,18 +23,27 @@
import org.yeshi.utils.NumberUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.order.UserTeamLevel;
import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.CommonOrderGoods;
import com.yeshi.fanli.entity.order.ESOrder;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord;
import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrder;
import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
@@ -46,12 +59,16 @@
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.user.PreviewInfoService;
import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
@@ -59,6 +76,7 @@
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
@@ -67,6 +85,7 @@
import com.yeshi.fanli.vo.order.HongBaoCountVO;
import com.yeshi.fanli.vo.order.OrderCountVO;
import com.yeshi.fanli.vo.order.OrderRebateVO;
import com.yeshi.fanli.vo.order.TeamOrderVO;
import com.yeshi.fanli.vo.user.MineInfoVO;
import com.yeshi.fanli.vo.user.UserInfoExtraVO;
import com.yeshi.fanli.vo.user.UserSettingsVO;
@@ -119,6 +138,7 @@
    @Resource
    private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
    
    @Resource
    private JumpDetailV2Service jumpDetailV2Service;
    
@@ -136,6 +156,19 @@
    
    @Resource
    private  PreviewInfoService previewInfoService;
    @Resource
    private TeamDividentsSourceOrderService teamDividentsSourceOrderService;
    @Resource
    private TeamDividentsSourceOrderUserMapService teamDividentsSourceOrderUserMapService;
    @Resource
    private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
    @Resource
    private ThreeSaleDetailService threeSaleDetailService;
    
    /**
@@ -759,4 +792,171 @@
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    
    /**
     * 用户订单统计
     *
     * @param acceptData
     * @param uid
     *            用户id
     *    type 类型:0全部、1淘宝 2京东、拼多多
     * @param out
     */
    @RequestMapping(value = "teamOrderSearch")
    public void teamOrderSearch(String callback, AcceptData acceptData, Long uid, String key, PrintWriter out) {
        if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        List<TeamOrderVO> resultList = new ArrayList<>();
        if (StringUtil.isNullOrEmpty(key)) {
            JSONObject data = new JSONObject();
            data.put("list", resultList);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
            return;
        }
        try {
            // 查询此单是否存在分红
            List<TeamOrderVO> tempList = new ArrayList<>();
            List<TeamDividentsSourceOrder> listSourceOrder = teamDividentsSourceOrderService.listByOrderNo(key);
            if (listSourceOrder != null && listSourceOrder.size() > 0) {
                for (TeamDividentsSourceOrder sourceOrder: listSourceOrder) {
                    List<TeamDividentsSourceOrderUserMap> listDividents =
                            teamDividentsSourceOrderUserMapService.listBySourceOrderIdAndTargetUid(sourceOrder.getId(), uid);
                    if (listDividents != null && listDividents.size() > 0) {
                        Integer state = null;
                        Date sendTime = null;
                        BigDecimal money = BigDecimal.ZERO;
                        for (TeamDividentsSourceOrderUserMap teamDividents: listDividents) {
                            money = money.add(teamDividents.getMoney());
                            state = teamDividents.getState();
                            sendTime = teamDividents.getSendTime();
                        }
                        TeamOrderVO teamOrderVO = new TeamOrderVO();
                        teamOrderVO.setSourceType(sourceOrder.getSourceType());
                        teamOrderVO.setOrderNo(sourceOrder.getOrderNo());
                        teamOrderVO.setDivMoney(money);
                        teamOrderVO.setDivState(state);
                        if (sendTime != null)
                            teamOrderVO.setAccountTime(TimeUtil.formatDate(sendTime));
                        tempList.add(teamOrderVO);
                    }
                }
            }
            if (tempList.size() > 0) {
                List<CommonOrder> listOrder = commonOrderService.listByOrderNo(key);
                if(listOrder != null && listOrder.size() > 0) {
                    Map<String, TeamOrderVO> map = new HashMap<String, TeamOrderVO>();
                    for (CommonOrder order: listOrder) {
                        Integer sourceType = order.getSourceType();
                        String orderNo = order.getOrderNo();
                        String mapKey = orderNo + "##" + sourceType;
                        TeamOrderVO teamVO = map.get(mapKey);
                        if (teamVO != null) {
                            teamVO.setPayment(teamVO.getPayment().add(order.getPayment()));
                        } else {
                            Long orderUid = order.getUserInfo().getId();
                            teamVO = new TeamOrderVO();
                            teamVO.setUid(orderUid);
                            teamVO.setOrderNo(orderNo);
                            teamVO.setSourceType(sourceType);
                            teamVO.setSourceName(order.getChildSourceType());
                            teamVO.setPayment(order.getPayment());
                            teamVO.setDownTime(TimeUtil.formatDate(order.getThirdCreateTime()));
                            // 下单时等级
                            UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(order.getUrank());
                            if (userLevel == null)
                                userLevel = UserLevelEnum.daRen;
                            teamVO.setUserRank(UserLevelUtil.getShowLevel(userLevel).name());
                            // 粉丝基本信息
                            UserInfo userInfo = userInfoService.getUserByIdWithMybatis(orderUid);
                            if (userInfo == null) {
                                continue;
                            }
                            teamVO.setUid(orderUid);
                            teamVO.setNickName(userInfo.getNickName());
                            teamVO.setPortrait(userInfo.getPortrait());
                            // 粉丝代数
                            ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, orderUid);
                            if (threeDetail == null) {
                                continue;
                            }
                            teamVO.setTeamGrade(threeDetail.getLevel());
                        }
                        // 结算时间
                        Date settleTime = order.getSettleTime();
                        if (settleTime != null)
                            teamVO.setSettleTime(TimeUtil.formatDate(settleTime));
                        // 分红信息
                        for (TeamOrderVO teamOrderVO: tempList) {
                            if (teamOrderVO.getSourceType() == sourceType) {
                                teamVO.setDivMoney(teamOrderVO.getDivMoney());
                                teamVO.setDivState(teamOrderVO.getDivState());
                                teamVO.setAccountTime(teamOrderVO.getAccountTime());
                                break;
                            }
                        }
                        // 维权信息
                        Integer orderState = order.getState();
                        if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime()) && CommonOrder.STATE_WQ == orderState) {
                            if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
                                UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(uid, order.getTradeId(), sourceType);
                                if (record != null) {
                                    teamVO.setServiceTime(TimeUtil.formatDate(record.getCreateTime()));
                                }
                            }
                        }
                        String orderTime = "下单" + teamVO.getDownTime() ;
                        if (!StringUtil.isNullOrEmpty(teamVO.getSettleTime())) {
                            orderTime += "\n收货" + teamVO.getSettleTime();
                        }
                        if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime())) {
                            orderTime += "\n售后" + teamVO.getServiceTime();
                        }
                        teamVO.setOrderTime(orderTime);
                        map.put(mapKey, teamVO);
                    }
                    // 遍历放入数组
                    Iterator<Entry<String, TeamOrderVO>> entries = map.entrySet().iterator();
                    while(entries.hasNext()){
                        Entry<String, TeamOrderVO> entry = entries.next();
                        resultList.add(entry.getValue());
                    }
                }
            }
            GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
            gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
                @Override
                public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
                    if (value == null) {
                        return new JsonPrimitive("");
                    } else {
                        // 保留2位小数
                        return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + "");
                    }
                }
            });
            Gson gson = gsonBuilder.create();
            JSONObject data = new JSONObject();
            data.put("list", gson.toJson(resultList));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户不存在"));
            return;
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2CountMapper.java
@@ -140,8 +140,17 @@
     * @param payment
     * @return
     */
    Long countMyDirectOrderByCashArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment);
    Long countMyDirectOrderByCashArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
             @Param("type")Integer type);
    
    /**
     *  注:1笔且付款总金额不小于 payment 元(退款为失效
     * @param uid
     * @param payment
     * @return
     */
    Long countMyDirectOrderByCashNotArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
             @Param("type")Integer type);
    
    
    /**
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
@@ -423,4 +423,10 @@
     */
    String getNewestOrderNoByTaoBao();
    
    /**
     * 根据订单号进行sous
     * @param orderNo
     * @return
     */
    List<CommonOrder> listByOrderNo(@Param("orderNo") String orderNo);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/dividents/TeamDividentsSourceOrderMapper.java
@@ -77,5 +77,13 @@
    List<TeamDividentsSourceOrder> listByOrderNoOrSourceUid(@Param("orderNo") String orderNo, @Param("uid") Long uid,
            @Param("start") long start, @Param("count") int count);
    /**
     * 根据订单号进行查询
     * @param orderNo
     * @param uid
     * @return
     */
    List<TeamDividentsSourceOrder> listByOrderNo(@Param("orderNo") String orderNo);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/dividents/TeamDividentsSourceOrderUserMapMapper.java
@@ -7,6 +7,7 @@
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
import com.yeshi.fanli.vo.order.TeamDividentsVO;
public interface TeamDividentsSourceOrderUserMapMapper extends BaseMapper<TeamDividentsSourceOrderUserMap> {
@@ -78,4 +79,24 @@
    int invalidOrderBySourceUid(@Param("sourceUid") Long sourceUid, @Param("beiZhu") String beiZhu,
            @Param("stateList") List<Integer> stateList);
    /**
     * 查询每个订单补贴-分红
     * @param start
     * @param count
     * @param targetUid
     * @param minTime
     * @param maxTime
     * @return
     */
    List<TeamDividentsVO> listByDateAndTargetUid(@Param("start") long start, @Param("count") int count,
            @Param("targetUid") Long targetUid, @Param("minTime") Date minTime, @Param("maxTime") Date maxTime);
    Long countByDateAndTargetUid(@Param("targetUid") Long targetUid, @Param("minTime") Date minTime, @Param("maxTime") Date maxTime);
    TeamDividentsVO sumByDateAndTargetUid(@Param("targetUid") Long targetUid, @Param("minTime") Date minTime, @Param("maxTime") Date maxTime);
}
fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamFansInfoDao.java
@@ -90,7 +90,7 @@
    public List<TeamFansInfo> query(int start, int count, int type, Long uid, ThreeSaleFocusDTO focusDTO) {
        Query query = createQuery(type, uid, focusDTO);
        query.skip(start).limit(count);
        query.with(new Sort(Sort.Direction.DESC, "weight"));
        query.with(new Sort(Sort.Direction.DESC, "joinTime"));
        return findList(query);
    }
@@ -213,4 +213,34 @@
        return query;
    }
    /**
     * 根据用户信息匹配
     * @param key
     * @return
     */
    public List<TeamFansInfo> queryByUserInfo(String key) {
        if (StringUtil.isNullOrEmpty(key))
            return null;
        Long workerId = null;
        try {
            workerId = Long.parseLong(key);
        } catch (Exception e) {
        }
        Criteria criteria = null;
        if (workerId == null) {
            criteria = new Criteria().orOperator(Criteria.where("phone").is(key),
                    new Criteria().orOperator(Criteria.where("inviteCode").is(key)));
        } else {
            criteria = new Criteria().orOperator(Criteria.where("phone").is(key),
                    new Criteria().orOperator(Criteria.where("inviteCode").is(key)),
                    new Criteria().orOperator(Criteria.where("workerId").is(workerId)));
        }
        Query query = new Query(criteria);
        return findList(query);
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2CountMapper.xml
@@ -298,7 +298,23 @@
        SELECT COUNT(0)  FROM (SELECT co.`co_order_no` FROM yeshi_ec_hongbao_v2 v2
        LEFT JOIN yeshi_ec_hongbao_order h ON v2.`hb_id` = h.`ho_hongbao_id`
        LEFT JOIN yeshi_ec_common_order co ON h.`ho_order_id` = co.`co_id`
        WHERE v2.`hb_state` = 3 AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)
        WHERE v2.`hb_state` = 3
             <if test="type == 1">AND v2.`hb_type` = 1</if>
             <if test="type == 2">AND v2.`hb_type` = 20</if>
             <if test="type == null">AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)</if>
            AND v2.`hb_uid` = #{uid} AND   co.`co_payment` >=  #{payment}
        GROUP BY co.`co_order_no`,co.`co_source_type`)A
    </select>
    <select id="countMyDirectOrderByCashNotArrival" resultType="Long">
        SELECT COUNT(0)  FROM (SELECT co.`co_order_no` FROM yeshi_ec_hongbao_v2 v2
        LEFT JOIN yeshi_ec_hongbao_order h ON v2.`hb_id` = h.`ho_hongbao_id`
        LEFT JOIN yeshi_ec_common_order co ON h.`ho_order_id` = co.`co_id`
        WHERE (v2.`hb_state` = 1 or v2.`hb_state` = 2)
             <if test="type == 1">AND v2.`hb_type` = 1</if>
             <if test="type == 2">AND v2.`hb_type` = 20</if>
             <if test="type == null">AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)</if>
            AND v2.`hb_uid` = #{uid} AND   co.`co_payment` >=  #{payment} 
        GROUP BY co.`co_order_no`,co.`co_source_type`)A
    </select>
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
@@ -1213,4 +1213,9 @@
        LIMIT 1
    </select>
    
    <select id="listByOrderNo" resultMap="BaseResultMap">
        SELECT * FROM `yeshi_ec_common_order` d
        WHERE d.`co_order_no` = #{orderNo}
        GROUP BY d.`co_order_no`,d.`co_source_type`
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/order/dividents/TeamDividentsSourceOrderMapper.xml
@@ -160,6 +160,9 @@
        tdo_order_no=#{orderNo} or tdo_uid=#{uid} limit #{start},#{count}
    </select>
    <select id="listByOrderNo" resultMap="BaseResultMap">
        select <include refid="Base_Column_List" /> from yeshi_ec_team_dividents_source_order
        where tdo_order_no=#{orderNo}
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/mapping/order/dividents/TeamDividentsSourceOrderUserMapMapper.xml
@@ -26,6 +26,14 @@
        </association>
    </resultMap>
    <resultMap id="TeamDividentsVOMap" type="com.yeshi.fanli.vo.order.TeamDividentsVO">
        <result column="tdo_order_no" property="orderNo" jdbcType="VARCHAR" />
        <result column="tdo_source_type" property="sourceType"    jdbcType="INTEGER" />
        <result column="dividents" property="dividents" jdbcType="DECIMAL" />
        <result column="subsidy" property="subsidy" jdbcType="DECIMAL" />
    </resultMap>
    <sql id="Base_Column_List">sou_id,sou_source_order_id,sou_source_uid,sou_target_uid,sou_state,sou_type,sou_rate,sou_money,sou_pre_send_time,sou_create_time,sou_update_time,sou_beizhu,sou_send_time
    </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
@@ -186,4 +194,32 @@
        `yeshi_ec_team_dividents_source_order_user` o WHERE o.`sou_state`=2
        AND o.`sou_pre_send_time`=#{preSendTime}
    </select>
    <select id="listByDateAndTargetUid" resultMap="TeamDividentsVOMap">
        SELECT  t.`tdo_order_no`,t.`tdo_source_type`, SUM(IF(d.`sou_type` = 1, d.`sou_money`,0)) AS subsidy,
             SUM(IF(d.`sou_type` = 2, d.`sou_money`,0)) AS dividents  FROM  yeshi_ec_team_dividents_source_order_user d
        LEFT JOIN yeshi_ec_team_dividents_source_order t ON d.`sou_source_order_id` = t.`tdo_id`
        WHERE d.`sou_target_uid` = #{targetUid} AND t.`tdo_create_time` >= #{minTime}
          AND t.`tdo_create_time` <![CDATA[<=]]>#{maxTime}
        GROUP BY t.`tdo_order_no`,t.`tdo_source_type`
        ORDER BY t.`tdo_create_time` DESC
        LIMIT #{start},#{count}
    </select>
    <select id="countByDateAndTargetUid" resultType="Long">
        SELECT COUNT(A.sou_id) FROM (SELECT d.`sou_id` FROM  yeshi_ec_team_dividents_source_order_user d
        LEFT JOIN yeshi_ec_team_dividents_source_order t ON d.`sou_source_order_id` = t.`tdo_id`
        WHERE d.`sou_target_uid` = #{targetUid} AND t.`tdo_create_time` >= #{minTime}
          AND t.`tdo_create_time` <![CDATA[<=]]>#{maxTime}
        GROUP BY t.`tdo_order_no`,t.`tdo_source_type`)A
    </select>
    <select id="sumByDateAndTargetUid" resultMap="TeamDividentsVOMap">
        SELECT SUM(IF(d.`sou_type` = 1, d.`sou_money`,0)) AS subsidy, SUM(IF(d.`sou_type` = 2, d.`sou_money`,0)) AS dividents  FROM  yeshi_ec_team_dividents_source_order_user d
        LEFT JOIN yeshi_ec_team_dividents_source_order t ON d.`sou_source_order_id` = t.`tdo_id`
        WHERE d.`sou_target_uid` = #{targetUid} AND t.`tdo_create_time` >= #{minTime}
          AND t.`tdo_create_time` <![CDATA[<=]]>#{maxTime}
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/count/HongBaoV2CountServiceImpl.java
@@ -140,7 +140,7 @@
    
    @Override
    public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment) {
        Long count = hongBaoV2CountMapper.countMyDirectOrderByCashArrival(uid, payment);
        Long count = hongBaoV2CountMapper.countMyDirectOrderByCashArrival(uid, payment, null);
        if (count == null) {
            count = 0L;
        }
@@ -149,6 +149,24 @@
    
    
    @Override
    public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment, Integer type) {
        Long count = hongBaoV2CountMapper.countMyDirectOrderByCashArrival(uid, payment, type);
        if (count == null) {
            count = 0L;
        }
        return count;
    }
    @Override
    public long countMyDirectOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type) {
        Long count = hongBaoV2CountMapper.countMyDirectOrderByCashNotArrival(uid, payment, type);
        if (count == null) {
            count = 0L;
        }
        return count;
    }
    @Override
    public BigDecimal getRewardMoneyToCount(Long uid, Integer dateType, Integer hbType, List<Integer> listSource) {
        BigDecimal money = hongBaoV2CountMapper.getRewardMoneyByDate(uid, dateType, hbType, null, null, null, null, null, listSource);
        if (money == null)
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SwiperPictureServiceImpl.java
@@ -84,9 +84,8 @@
    }
    @Override
    public List<BannerVO> queryByBannerID(long start, int count, Long bannerId) throws SwiperPictureException {
        List<SwiperPicture> list = swiperPictureMapper.queryByBannerID(start, count, bannerId);
        return transformVO(list);
    public List<SwiperPicture> queryByBannerID(long start, int count, Long bannerId) throws SwiperPictureException {
        return swiperPictureMapper.queryByBannerID(start, count, bannerId);
    }
    @Override
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
@@ -622,7 +622,7 @@
        BigDecimal after = hongBaoMoney.subtract(extractMoney.add(weiqaunMoney).add(balance).add(compensateMoney));
        if (after.compareTo(new BigDecimal("0")) != 0)
            throw new ExtractException(2, "结算资金异常");
            throw new ExtractException(2, "结算资金异常:" + after);
    }
    @Override
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -2201,4 +2201,10 @@
        return commonOrderMapper.getNewestOrderNoByTaoBao();
    }
    
    @Override
    public List<CommonOrder> listByOrderNo(String orderNo) {
        return commonOrderMapper.listByOrderNo(orderNo);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderServiceImpl.java
@@ -128,4 +128,9 @@
        return null;
    }
    @Override
    public List<TeamDividentsSourceOrder> listByOrderNo(String orderNo) {
        return teamDividentsSourceOrderMapper.listByOrderNo(orderNo);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java
@@ -15,6 +15,7 @@
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.vo.order.TeamDividentsVO;
@Service
public class TeamDividentsSourceOrderUserMapServiceImpl implements TeamDividentsSourceOrderUserMapService {
@@ -162,4 +163,28 @@
            }
    }
    @Override
    public List<TeamDividentsSourceOrderUserMap> listBySourceOrderIdAndTargetUid(Long sourceOrderId, Long targetUid) {
        return teamDividentsSourceOrderUserMapMapper.list(sourceOrderId, null, targetUid, null, null, null, 0, 10000);
    }
    @Override
    public List<TeamDividentsVO> listByDateAndTargetUid(long start, int count, Long targetUid,Date minTime,Date maxTime) {
        return teamDividentsSourceOrderUserMapMapper.listByDateAndTargetUid(start, count, targetUid, minTime, maxTime);
    }
    @Override
    public long countByDateAndTargetUid(Long targetUid,Date minTime,Date maxTime) {
        Long count = teamDividentsSourceOrderUserMapMapper.countByDateAndTargetUid(targetUid, minTime, maxTime);
        if (count == null)
            count = 0L;
        return count;
    }
    @Override
    public TeamDividentsVO sumByDateAndTargetUid(Long targetUid,Date minTime,Date maxTime) {
        return teamDividentsSourceOrderUserMapMapper.sumByDateAndTargetUid(targetUid, minTime, maxTime);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamFansInfoServiceImpl.java
@@ -390,4 +390,9 @@
    public TeamFansInfo getbyWorkerId(Long workerId) {
        return teamFansInfoDao.getbyWorkerId(workerId);
    }
    @Override
    public List<TeamFansInfo> queryByUserInfo(String key) {
        return teamFansInfoDao.queryByUserInfo(key);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/count/HongBaoV2CountService.java
@@ -198,6 +198,17 @@
     */
    public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment);
    /**
     * 统计订单数量
     * @param uid
     * @param time 下单开始时间
     * @param payment 付款金额
     * @param type 订单类型  1自购 2分享
     * @return
     */
    public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment, Integer type);
    public BigDecimal geBonusByuid(Long uid, Integer dateType, Integer hbType, Integer moneyState);
@@ -224,6 +235,15 @@
     * @param uid
     * @return
     */
    public BigDecimal sumMoneyByANotSettleAndUid(Long uid);
    public BigDecimal sumMoneyByANotSettleAndUid(Long uid);
    /**
     * 统计未到账的数量
     * @param uid
     * @param payment
     * @param type
     * @return
     */
    public long countMyDirectOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/homemodule/SwiperPictureService.java
@@ -28,7 +28,7 @@
     * @return
     * @throws SwiperPictureException
     */
    public List<BannerVO> queryByBannerID(long start, int count, Long bannerId) throws SwiperPictureException;
    public List<SwiperPicture> queryByBannerID(long start, int count, Long bannerId) throws SwiperPictureException;
    public long countQueryByBannerID(Long bannerId) throws SwiperPictureException;
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java
@@ -440,4 +440,11 @@
     */
    public String getNewestOrderNoByTaoBao();
    /**
     * 根据订单号查询
     * @param orderNo
     * @return
     */
    public List<CommonOrder> listByOrderNo(String orderNo);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/dividents/TeamDividentsSourceOrderService.java
@@ -113,4 +113,11 @@
     */
    public void updateMoney(String orderNo, int sourceType, BigDecimal money);
    /**
     * 根据订单号查询
     * @param orderNo
     * @return
     */
    public List<TeamDividentsSourceOrder> listByOrderNo(String orderNo);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/dividents/TeamDividentsSourceOrderUserMapService.java
@@ -6,6 +6,7 @@
import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.vo.order.TeamDividentsVO;
/**
 * 分红源订单与参与分红用户的对应关系
@@ -152,4 +153,27 @@
     */
    public void updateMoney(Long sourceOrderId, BigDecimal income);
    /**
     * 查询分红信息
     * @param sourceOrderId
     * @param targetUid
     * @return
     */
    public List<TeamDividentsSourceOrderUserMap> listBySourceOrderIdAndTargetUid(Long sourceOrderId, Long targetUid);
    /**
     * 统计每个订单补贴-分红
     * @param start
     * @param count
     * @param targetUid
     * @param minTime
     * @param maxTime
     * @return
     */
    public List<TeamDividentsVO> listByDateAndTargetUid(long start, int count, Long targetUid, Date minTime, Date maxTime);
    public long countByDateAndTargetUid(Long targetUid, Date minTime, Date maxTime);
    public TeamDividentsVO sumByDateAndTargetUid(Long targetUid, Date minTime, Date maxTime);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamFansInfoService.java
@@ -137,4 +137,11 @@
     */
    public void addFansInfo(Long workerId, Long bossId, Date successTime);
    /**
     * 根据用户信息匹配
     * @param key
     * @return
     */
    public List<TeamFansInfo> queryByUserInfo(String key);
}
fanli/src/main/java/com/yeshi/fanli/vo/order/TeamDividentsVO.java
New file
@@ -0,0 +1,62 @@
package com.yeshi.fanli.vo.order;
import java.io.Serializable;
import java.math.BigDecimal;
import com.google.gson.annotations.Expose;
/**
 * 团队订单信息
 * @author Administrator
 *
 */
/**
 * @author Administrator
 *
 */
public class TeamDividentsVO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Expose
    private Integer sourceType; // 订单平台类型
    @Expose
    private String orderNo; // 订单号
    @Expose
    private BigDecimal subsidy; // 补贴
    @Expose
    private BigDecimal dividents; // 分红
    public Integer getSourceType() {
        return sourceType;
    }
    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public BigDecimal getSubsidy() {
        return subsidy;
    }
    public void setSubsidy(BigDecimal subsidy) {
        this.subsidy = subsidy;
    }
    public BigDecimal getDividents() {
        return dividents;
    }
    public void setDividents(BigDecimal dividents) {
        this.dividents = dividents;
    }
}
fanli/src/main/java/com/yeshi/fanli/vo/order/TeamOrderVO.java
New file
@@ -0,0 +1,180 @@
package com.yeshi.fanli.vo.order;
import java.io.Serializable;
import java.math.BigDecimal;
import com.google.gson.annotations.Expose;
/**
 * 团队订单信息
 * @author Administrator
 *
 */
public class TeamOrderVO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Expose
    private Long uid; // 用户id
    @Expose
    private String nickName; // 昵称
    @Expose
    private String portrait; // 头像
    @Expose
    private Integer teamGrade; // 粉丝代数
    @Expose
    private String userRank; // 下单时用户等级
    @Expose
    private Integer sourceType; // 订单平台类型
    @Expose
    private String sourceName; // 订单平台名称
    @Expose
    private String orderNo; // 订单号
    @Expose
    private BigDecimal payment; // 总付款
    @Expose
    private String downTime; // 下单时间
    @Expose
    private String settleTime; // 收货时间
    @Expose
    private String serviceTime; // 售后时间
    @Expose
    private String orderTime; // 订单时间时间
    @Expose
    private BigDecimal divMoney; // 分红金额
    @Expose
    private Integer divState; // 分红状态
    @Expose
    private String accountTime; // 到账时间
    public Long getUid() {
        return uid;
    }
    public void setUid(Long uid) {
        this.uid = uid;
    }
    public String getNickName() {
        return nickName;
    }
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    public String getPortrait() {
        return portrait;
    }
    public void setPortrait(String portrait) {
        this.portrait = portrait;
    }
    public String getUserRank() {
        return userRank;
    }
    public void setUserRank(String userRank) {
        this.userRank = userRank;
    }
    public Integer getSourceType() {
        return sourceType;
    }
    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public BigDecimal getPayment() {
        return payment;
    }
    public void setPayment(BigDecimal payment) {
        this.payment = payment;
    }
    public String getDownTime() {
        return downTime;
    }
    public void setDownTime(String downTime) {
        this.downTime = downTime;
    }
    public String getSettleTime() {
        return settleTime;
    }
    public void setSettleTime(String settleTime) {
        this.settleTime = settleTime;
    }
    public String getServiceTime() {
        return serviceTime;
    }
    public void setServiceTime(String serviceTime) {
        this.serviceTime = serviceTime;
    }
    public BigDecimal getDivMoney() {
        return divMoney;
    }
    public void setDivMoney(BigDecimal divMoney) {
        this.divMoney = divMoney;
    }
    public Integer getDivState() {
        return divState;
    }
    public void setDivState(Integer divState) {
        this.divState = divState;
    }
    public String getAccountTime() {
        return accountTime;
    }
    public void setAccountTime(String accountTime) {
        this.accountTime = accountTime;
    }
    public Integer getTeamGrade() {
        return teamGrade;
    }
    public void setTeamGrade(Integer teamGrade) {
        this.teamGrade = teamGrade;
    }
    public String getSourceName() {
        return sourceName;
    }
    public void setSourceName(String sourceName) {
        this.sourceName = sourceName;
    }
    public String getOrderTime() {
        return orderTime;
    }
    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }
}