From 9e5aca8d74649eca5a3d2c6d23de7010fd70e038 Mon Sep 17 00:00:00 2001 From: liuyingfang <1357764963@qq.com> Date: Thu, 27 Jul 2023 09:53:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E9=83=A8=E5=88=86=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MainPageController.java | 2 +- .../controller/MerchantProfitController.java | 6 +- .../platform/mapper/MerchantProfitMapper.java | 18 ++- .../mapper/MerchantProfit-sqlmap.xml | 136 +++++++++++++++++- .../main/resources/mapper/UserApp-sqlmap.xml | 1 + .../ActivityActivateController.java | 11 +- .../pluss/platform/vo/MerchantProfitVO.java | 13 +- .../cn/pluss/platform/vo/ProfitOrderVO.java | 7 +- .../app/impl/PromoterMainPageServiceImpl.java | 4 +- .../impl/MerchantProfitServiceImpl.java | 121 +++++++++++----- 10 files changed, 260 insertions(+), 59 deletions(-) diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MainPageController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MainPageController.java index 373fef8..1d8a01d 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MainPageController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MainPageController.java @@ -58,7 +58,7 @@ public class MainPageController { /** * 团队管理 * @param name - * @param page + * @param current * @param size * @param typeCode * @return diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantProfitController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantProfitController.java index f07acc1..269bff6 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantProfitController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantProfitController.java @@ -258,14 +258,14 @@ public class MerchantProfitController { @GetMapping("/profitOrderList") public Result> ProfitOrderList(@RequestParam Integer type, @RequestParam Integer page, - @RequestParam Integer size){ + @RequestParam Integer size, String startTime, String endTime){ UserApp userApp = userAppService.queryUserAppByToken(); Integer pageSize = size; Integer offset = (page-1) * size; if (type == 1) { - return ResultGenerator.genSuccessResult(merchantProfitMapper.directlyOrder(userApp.getUserId(), pageSize, offset)); + return ResultGenerator.genSuccessResult(merchantProfitMapper.directlyOrder(userApp.getUserId(), pageSize, offset, startTime, endTime)); } - return ResultGenerator.genSuccessResult(merchantProfitMapper.teamOrder(userApp.getUserId(), pageSize, offset)); + return ResultGenerator.genSuccessResult(merchantProfitMapper.teamOrder(userApp.getUserId(), pageSize, offset, startTime, endTime)); } } diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantProfitMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantProfitMapper.java index 781d829..f14256c 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantProfitMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantProfitMapper.java @@ -5,6 +5,7 @@ import cn.pluss.platform.dto.MerchantFeeDTO; import cn.pluss.platform.entity.MerchantChannelStatus; import cn.pluss.platform.entity.MerchantProfit; import cn.pluss.platform.vo.DeviceGoodsVO; +import cn.pluss.platform.vo.MerChannelStatusVO; import cn.pluss.platform.vo.MerchantProfitVO; import cn.pluss.platform.vo.ProfitOrderVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -32,6 +33,7 @@ public interface MerchantProfitMapper extends BaseMapper { List queryMerchantProfitPage(Map map); Integer queryMerchantProfitPageCount(Map map); + Integer queryMerchantProfitPageCountV2(@Param("userId") String userId); void saveMerchantProfitBatch(List merchantProfitList); @@ -118,7 +120,12 @@ public interface MerchantProfitMapper extends BaseMapper { BigDecimal getConsumeFeeTeamToday(@Param("userId") String userId); List getTeamList(@Param("typeCode") String typeCode, @Param("userId") Long userId, - @Param("userName") String userName); + @Param("userName") String userName, @Param("pageSize") Integer pageSize, + @Param("offset") Integer offset); + List getMerchantTeamList(@Param("typeCode") String typeCode, @Param("userId") Long userId, + @Param("userName") String userName, @Param("pageSize") Integer pageSize, + @Param("offset") Integer offset); + @Select("SELECT\n" + "\tcount(*) \n" + @@ -128,8 +135,9 @@ public interface MerchantProfitMapper extends BaseMapper { "\tparent_user_id = #{userId}\n" + "\tAND type_code = #{typeCode}") Integer getCountChild( @Param("userId") Long userId,@Param("typeCode") String typeCod); + Integer getCountChildV2( @Param("userId") Long userId); - List getChannelStatus(@Param("merchantCode") String merchantCode); + List getChannelStatus(@Param("merchantCode") String merchantCode); /** * 直属交易 @@ -138,10 +146,12 @@ public interface MerchantProfitMapper extends BaseMapper { * @param offset * @return */ - List directlyOrder(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset); + List directlyOrder(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset, + @Param("startTime") String startTime, @Param("endTime") String endTime); /** * 团队交易 */ - List teamOrder(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset); + List teamOrder(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset, + @Param("startTime") String startTime, @Param("endTime") String endTime); } diff --git a/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml b/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml index a42cce8..9ac065b 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml @@ -880,7 +880,8 @@ LEFT JOIN tb_pluss_merchant_base_info b ON b.userId = p.user_id LEFT JOIN tb_pluss_merchant_order v ON v.merchantCode = b.merchantCode WHERE - FIND_IN_SET( p.user_id, ID._ids ) + b.userId != #{userId} + AND FIND_IN_SET( p.user_id, ID._ids ) AND v.status = 1 - + SELECT + p.user_id AS id, + u.loginName AS phone, + ua.userName, + pr.createTime AS createDt, + p.parent_user_id, + pr.trueName AS parentTrueName, + p.type_code, + IFNULL( k.sumConsumeFee, 0 ) AS consumeFee, + IFNULL( k.yestedayConsumeFee, 0 ) AS yestedayConsumeFee, + IFNULL(n.num,0) as countNum, + k.merchantCode + FROM + ( + SELECT + @ids AS _ids, + ( SELECT @ids := GROUP_CONCAT( user_id ) FROM tb_pluss_user_promotion WHERE FIND_IN_SET( parent_user_id, @ids ) ) AS cids, + @l := @l + 1 AS LEVEL + FROM + tb_pluss_user_promotion, + ( SELECT @ids := #{userId}, @l := 0 ) b + WHERE @ids IS NOT NULL ) ID, + tb_pluss_user_promotion p + LEFT JOIN tb_pluss_user_info u ON p.user_id = u.id + LEFT JOIN tb_pluss_user_info pr ON p.parent_user_id = pr.id + left join view_order_user_num n on p.user_id=n.userId + LEFT JOIN tb_pluss_user_app ua ON n.userId = ua.userId + LEFT JOIN ( + SELECT + i.userId, + i.merchantCode, + IFNULL( sum( i.sumConsumeFee ), 0 ) AS sumConsumeFee, + IFNULL( sum( i.yestedayConsumeFee ), 0 ) AS yestedayConsumeFee + FROM + view_order_info i + GROUP BY + i.userId + ) k ON p.user_id = k.userId + WHERE + FIND_IN_SET( p.user_id, ID._ids ) + AND p.user_id != #{userId} + + AND u.trueName = #{userName} + + ORDER BY + user_id + LIMIT #{pageSize} OFFSET #{offset} + + @@ -978,8 +1036,80 @@ user_id ) and v.userId!=#{userId} + + AND v.createDt >= #{startTime} + + + AND v.createDt <= #{endTime} + ORDER BY v.id desc limit #{pageSize} offset #{offset} + + diff --git a/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml b/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml index 6e1cba4..6b1aa0e 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml @@ -1674,6 +1674,7 @@ LEFT JOIN tb_pluss_user_promotion up ON ua.userId = up.parent_user_id WHERE up.parent_user_id = #{userId} + AND up.type_code = 'MC' AND up.create_time = ]]> #{startTime} AND up.create_time #{endTime} diff --git a/pluss-manage-page/src/main/java/cn/pluss/platform/controller/activityActivate/ActivityActivateController.java b/pluss-manage-page/src/main/java/cn/pluss/platform/controller/activityActivate/ActivityActivateController.java index fd1b2f6..969ed59 100644 --- a/pluss-manage-page/src/main/java/cn/pluss/platform/controller/activityActivate/ActivityActivateController.java +++ b/pluss-manage-page/src/main/java/cn/pluss/platform/controller/activityActivate/ActivityActivateController.java @@ -48,7 +48,7 @@ public class ActivityActivateController extends BaseNoModelController { /** * 引导页 - * + * * @return */ @RequestMapping(value = "/index", method = RequestMethod.GET) @@ -64,7 +64,7 @@ public class ActivityActivateController extends BaseNoModelController { @RequestMapping(value = "/queryActivityActivateByPage", method = RequestMethod.POST) @ResponseBody public Map queryActivityActivateByPage(@RequestParam(defaultValue = "1") Integer currPage, - String name) { + String name) { Map map = new HashMap<>(16); Map result = new HashMap<>(16); Boolean bol = verifyUserRole(); @@ -182,7 +182,7 @@ public class ActivityActivateController extends BaseNoModelController { /** * 保存对象 - * + * * @throws IOException */ @RequestMapping(value = "/saveActivityActivate", method = RequestMethod.POST) @@ -238,7 +238,7 @@ public class ActivityActivateController extends BaseNoModelController { /** * 修改对象 - * + * * @throws IOException */ @RequestMapping(value = "/updateActivityActivate", method = RequestMethod.POST) @@ -256,7 +256,7 @@ public class ActivityActivateController extends BaseNoModelController { /** * 删除对象 - * + * * @throws IOException */ @RequestMapping(value = "/deleteActivityActivate", method = RequestMethod.POST) @@ -298,5 +298,4 @@ public class ActivityActivateController extends BaseNoModelController { List merchantBaseInfoList = merchantBaseInfoService.queryMerchantBaseInfoList(null); request.setAttribute("merchantBaseInfoList", merchantBaseInfoList); } - } diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java index 74f7142..77f4b8b 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java @@ -1,9 +1,12 @@ package cn.pluss.platform.vo; import cn.pluss.platform.entity.MerchantChannelStatus; +import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -25,6 +28,10 @@ public class MerchantProfitVO { * userId */ private String userId; + /** + * parent_user_id + */ + private Integer parent_user_id; /** *总交易金额 */ @@ -49,12 +56,14 @@ public class MerchantProfitVO { /** * 入网时间 */ - private String createDt; + @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date createDt; + private List channelStatus; private String statusD1 = "0"; private String statusD0 = "0"; private String authorizationStatus = "0"; private String remarkD1; private String remarkD0; - } diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/ProfitOrderVO.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/ProfitOrderVO.java index d41906b..987360c 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/ProfitOrderVO.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/ProfitOrderVO.java @@ -1,8 +1,11 @@ package cn.pluss.platform.vo; +import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.util.Date; /** * 直推间推商户收款 @@ -14,7 +17,9 @@ public class ProfitOrderVO { private String merchantName; private BigDecimal consumeFee; - private String transDt; + @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date transDt; private String orderNumber; } diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/PromoterMainPageServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/PromoterMainPageServiceImpl.java index f7d6175..6d62e99 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/PromoterMainPageServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/PromoterMainPageServiceImpl.java @@ -88,7 +88,7 @@ public class PromoterMainPageServiceImpl implements MainPageService { //今日收款笔数 queryMap.put("recordDate", DateUtils.getDayBegin()); queryMap.put("retype", "1"); - totalOrderCount = merchantProfitService.queryMerchantProfitPageCount(queryMap); + totalOrderCount = merchantProfitMapper.queryMerchantProfitPageCountV2(userId); todayProfit = merchantProfitService.queryMerchantProfitSumPrice(queryMap); //今日收益 BigDecimal todaySum = merchantProfitMapper.getTodaySum(userId); @@ -102,7 +102,7 @@ public class PromoterMainPageServiceImpl implements MainPageService { //今日收款 BigDecimal consumeFeeTeamToday = merchantProfitMapper.getConsumeFeeTeamToday(userId); //总商户数 - Integer countChildAll = merchantProfitMapper.getCountChild(Long.valueOf(userId), "MC"); + Integer countChildAll = merchantProfitMapper.getCountChildV2(Long.valueOf(userId)); resultMap.put("promoteFee", promoteFee + ""); resultMap.put("totalOrderCount", totalOrderCount + ""); diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantProfit/impl/MerchantProfitServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantProfit/impl/MerchantProfitServiceImpl.java index c4fac28..9f2fa5f 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantProfit/impl/MerchantProfitServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantProfit/impl/MerchantProfitServiceImpl.java @@ -1,14 +1,15 @@ package cn.pluss.platform.merchantProfit.impl; import cn.hutool.core.util.ObjectUtil; -import cn.pluss.platform.api.PageInfo; import cn.pluss.platform.constants.Constant; import cn.pluss.platform.entity.*; import cn.pluss.platform.enums.BstLevelCode; import cn.pluss.platform.enums.UserRoleEnum; import cn.pluss.platform.exception.MsgException; -import cn.pluss.platform.mapper.*; -import cn.pluss.platform.merchant.MerchantRateNewService; +import cn.pluss.platform.mapper.MerchantOrderMapper; +import cn.pluss.platform.mapper.MerchantProfitMapper; +import cn.pluss.platform.mapper.UserAppMapper; +import cn.pluss.platform.mapper.UserPromotionMapper; import cn.pluss.platform.merchantProfit.MerchantProfitService; import cn.pluss.platform.notice.NoticeService; import cn.pluss.platform.user.UserLevelService; @@ -16,14 +17,11 @@ import cn.pluss.platform.user.impl.GeneralPushUtil; import cn.pluss.platform.userAssess.UserAssessService; import cn.pluss.platform.userRewardFlow.UserRewardFlowService; import cn.pluss.platform.util.DateUtils; -import cn.pluss.platform.util.StringUtil; +import cn.pluss.platform.vo.MerChannelStatusVO; import cn.pluss.platform.vo.MerchantProfitVO; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -31,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; -import java.util.stream.Collectors; @Service @@ -110,7 +107,6 @@ public class MerchantProfitServiceImpl extends ServiceImpl teamList(String typeCode, Long userId,Integer page,Integer size, String name) { - page = page-1; switch (typeCode){ case "AG": typeCode = "FB"; @@ -127,53 +123,104 @@ public class MerchantProfitServiceImpl extends ServiceImpl teamList= merchantProfitMapper.getTeamList(typeCode, userId, page,size,name); + // PageInfo teamList= merchantProfitMapper.getTeamList(typeCode, userId, page,size,name); Integer countChild = merchantProfitMapper.getCountChild(userId, typeCode); + Integer pagerSize = size; + Integer offset = (page - 1) * size; //商户列表 if ("MC".equals(typeCode)) { - List teamList = merchantProfitMapper.getTeamList(typeCode, userId,name); + List teamList = merchantProfitMapper.getMerchantTeamList(typeCode, userId, name, pagerSize, offset); for (MerchantProfitVO values : teamList) { + List list = new ArrayList<>(); if (values.getMerchantCode() != null) { - String merchantCode = values.getMerchantCode(); - List channelStatus = merchantProfitMapper.getChannelStatus(merchantCode); - if (channelStatus != null) { - for (MerchantChannelStatus valuesStatus : channelStatus) { - if ("D1".equals(valuesStatus.getVirChannelFlag())) { - values.setStatusD1(valuesStatus.getStatus()); - values.setRemarkD1(valuesStatus.getStatus()); - values.setAuthorizationStatus(valuesStatus.getAuthorizationStatus()); - } - if ("D0".equals(valuesStatus.getVirChannelFlag())) { - values.setStatusD0(valuesStatus.getStatus()); - values.setRemarkD0(valuesStatus.getStatus()); - } - } - } - Integer countUser = mapperOrderMapper.getCountUser(Long.valueOf(values.getUserId())); - if (countUser > 0) { - values.setCountNum(countUser); - values.setConsumeFee(mapperOrderMapper.getAmountData(values.getMerchantCode())); - values.setYestedayConsumeFee(mapperOrderMapper.getPlatformAmtYestday(values.getMerchantCode(), - DateUtils.getBeginDayOfYesterday(), DateUtils.getEndDayOfYesterDay())); - } + MerChannelStatusVO V0 = new MerChannelStatusVO(); + V0.setStatus("1"); + V0.setVirChannelFlag("D1"); + V0.setAuthorizationStatus("0"); + V0.setRemark(""); + list.add(V0); + MerChannelStatusVO V1 = new MerChannelStatusVO(); + V1.setStatus("1"); + V1.setVirChannelFlag("D0"); + V1.setAuthorizationStatus("0"); + V1.setRemark(""); + list.add(V1); + values.setChannelStatus(list); + continue; } - } + String merchantCode = values.getMerchantCode(); + List channelStatus = merchantProfitMapper.getChannelStatus(merchantCode); + //没有 + if (ObjectUtil.isEmpty(channelStatus) || channelStatus.size() <= 0) { + MerChannelStatusVO V0 = new MerChannelStatusVO(); + V0.setStatus("1"); + V0.setVirChannelFlag("D1"); + V0.setAuthorizationStatus("0"); + V0.setRemark(""); + list.add(V0); + MerChannelStatusVO V1 = new MerChannelStatusVO(); + V1.setStatus("1"); + V1.setVirChannelFlag("D0"); + V1.setAuthorizationStatus("0"); + V1.setRemark(""); + list.add(V1); + values.setChannelStatus(list); + continue; + } + //一个 + if (channelStatus.size() == 1) { + MerChannelStatusVO channelStatus1 = channelStatus.get(0); + switch (channelStatus1.getVirChannelFlag()) { + case "D0": + list.add(channelStatus1); + MerChannelStatusVO V1 = new MerChannelStatusVO(); + V1.setStatus("1"); + V1.setVirChannelFlag("D1"); + V1.setAuthorizationStatus("0"); + V1.setRemark(""); + list.add(V1); + values.setChannelStatus(list); + break; + case "D1": + list.add(channelStatus1); + MerChannelStatusVO V0 = new MerChannelStatusVO(); + V0.setStatus("1"); + V0.setVirChannelFlag("D0"); + V0.setAuthorizationStatus("0"); + V0.setRemark(""); + list.add(V0); + values.setChannelStatus(list); + break; - teamList = teamList.stream().skip(page * size).limit(size).collect(Collectors.toList()); + } + continue; + } + //两个 + if (channelStatus.size() == 2) { + values.setChannelStatus(channelStatus); + continue; + } +// Integer countUser = mapperOrderMapper.getCountUser(Long.valueOf(values.getUserId())); +// if (countUser > 0) { +// values.setCountNum(countUser); +// values.setConsumeFee(mapperOrderMapper.getAmountData(values.getMerchantCode())); +// values.setYestedayConsumeFee(mapperOrderMapper.getPlatformAmtYestday(values.getMerchantCode(), +// DateUtils.getBeginDayOfYesterday(), DateUtils.getEndDayOfYesterDay())); +// } + } HashMap hashMap = new HashMap<>(); hashMap.put("total", countChild); hashMap.put("teamList", teamList); return hashMap; } //团队管理 - List teamList = merchantProfitMapper.getTeamList(typeCode, userId,name); + List teamList = merchantProfitMapper.getTeamList(typeCode, userId, name, pagerSize, offset); for (MerchantProfitVO values : teamList) { values.setCurrentMonth(mapperOrderMapper.getPlatformAmtYestday(values.getMerchantCode(), DateUtils.getBeginDayOfMonth(), DateUtils.getEndDayOfMonth())); values.setConsumeFee(mapperOrderMapper.getAmountData(values.getMerchantCode())); } - teamList = teamList.stream().skip(page * size).limit(size).collect(Collectors.toList()); HashMap hashMap = new HashMap<>(); hashMap.put("total", countChild); hashMap.put("teamList", teamList);