From d4fe97d570708f11d24d7b06b4eb322173702514 Mon Sep 17 00:00:00 2001 From: liuyingfang <1357764963@qq.com> Date: Fri, 21 Jul 2023 19:30:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E9=83=A8=E5=88=86=E5=A4=A7?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MainPageController.java | 43 +++- .../controller/UserAppController.java | 16 +- .../main/java/cn/pluss/platform/util/N.java | 47 +++++ .../platform/mapper/MerchantOrderMapper.java | 21 +- .../platform/mapper/MerchantProfitMapper.java | 61 ++++++ .../pluss/platform/mapper/UserAppMapper.java | 1 + .../platform/mapper/UserPromotionMapper.java | 11 + .../resources/mapper/MerchantOrder-sqlmap.xml | 14 ++ .../mapper/MerchantProfit-sqlmap.xml | 90 +++++++- .../main/resources/mapper/UserApp-sqlmap.xml | 196 ++++++++++++++++++ .../resources/mapper/UserPromotionMapper.xml | 39 +++- .../pluss/platform/entity/MerchantProfit.java | 7 + .../pluss/platform/vo/MerchantProfitVO.java | 60 ++++++ .../java/cn/pluss/platform/vo/SpreadData.java | 2 +- .../pluss/platform/app/MainPageService.java | 3 + .../impl/AgentStaffMainPageServiceImpl.java | 7 + .../app/impl/PromoterMainPageServiceImpl.java | 95 ++++++++- .../impl/account/AccountServiceImpl.java | 2 +- .../MerchantChannelStatusService.java | 8 + .../impl/MerchantOrderServiceImpl.java | 23 ++ .../merchantProfit/MerchantProfitService.java | 6 + .../impl/MerchantProfitServiceImpl.java | 79 +++++++ .../userApp/impl/UserAppServiceImpl.java | 2 +- .../userInfo/impl/BaseUserInfoService.java | 24 ++- .../webapp/WEB-INF/jsp/merchant/share.jsp | 6 - 25 files changed, 805 insertions(+), 58 deletions(-) create mode 100644 pluss-common-bundle/src/main/java/cn/pluss/platform/util/N.java create mode 100644 pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java 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 9deb9f1..70e0c16 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 @@ -4,13 +4,17 @@ import cn.pluss.platform.api.Result; import cn.pluss.platform.api.ResultGenerator; import cn.pluss.platform.app.MainPageService; import cn.pluss.platform.entity.UserApp; +import cn.pluss.platform.merchantProfit.MerchantProfitService; import cn.pluss.platform.userApp.UserAppService; +import cn.pluss.platform.vo.MerchantProfitVO; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.List; import java.util.Map; @RestController @@ -25,6 +29,8 @@ public class MainPageController { @Autowired private MainPageService agentStaffMainPageService; + @Resource + private MerchantProfitService merchantProfitService; /** * @page 商户推广 @@ -37,12 +43,35 @@ public class MainPageController { UserApp userApp = userAppService.queryUserAppByToken(); Map resultMap; - if ("agent_staff".equals(userApp.getUserType())) { - resultMap = agentStaffMainPageService.getSpreadData(userApp.getUserId() + ""); - } else { - resultMap = promoterMainPageService.getSpreadData(userApp.getUserId() + ""); - } + resultMap = promoterMainPageService.getSpreadData(userApp.getUserId() + ""); return ResultGenerator.genSuccessResult(resultMap); } + + @GetMapping("/userApp/modifyFee") + public Result modifyFee(@RequestParam("id") Integer id, @RequestParam("fee") BigDecimal fee){ + UserApp result = userAppService.queryUserBaseInfoByToken(); + promoterMainPageService.modifyFee(result.getUserId(), id, fee); + return ResultGenerator.genSuccessResult(); + } + + /** + * 团队管理 + * @param name + * @param page + * @param size + * @param typeCode + * @return + */ + @GetMapping("/userApp/teamControl") + public Result teamControl(String name, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer size, + @RequestParam("typeCode") String typeCode){ + UserApp result = userAppService.queryUserBaseInfoByToken(); + Map merchantProfitVOS = merchantProfitService.teamList(typeCode, result.getUserId(), + page,size,name); + return ResultGenerator.genSuccessResult(merchantProfitVOS); + } + } diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/UserAppController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/UserAppController.java index 8f77c5a..ef2f186 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/UserAppController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/UserAppController.java @@ -383,14 +383,16 @@ public class UserAppController { QueryWrapper QueryWrapper = new QueryWrapper<>(); QueryWrapper.eq("user_id", result.getUserId()); UserPromotion userPromotion = userPromotionService.getOne(QueryWrapper); - if (userPromotion== null) { - MsgException.checkBlank("", "用户状态异常"); - } - result.setTypeCode(userPromotion == null?"null":userPromotion.getTypeCode()); - result.setMinFee(userPromotion == null?"null":userPromotion.getCurrentFee()); + if("promoter".equals(result.getUserType())) { + if (userPromotion == null) { + MsgException.checkBlank("", "用户状态异常"); + } + result.setTypeCode(userPromotion == null ? "null" : userPromotion.getTypeCode()); + result.setMinFee(userPromotion == null ? "null" : userPromotion.getCurrentFee()); - result.setMaxFee("0.32"); - result.setIsExtend(userPromotion.getIsExtend()); + result.setMaxFee("0.32"); + result.setIsExtend(userPromotion.getIsExtend()); + } return ResultGenerator.genSuccessResult(result); } diff --git a/pluss-common-bundle/src/main/java/cn/pluss/platform/util/N.java b/pluss-common-bundle/src/main/java/cn/pluss/platform/util/N.java new file mode 100644 index 0000000..8938a4f --- /dev/null +++ b/pluss-common-bundle/src/main/java/cn/pluss/platform/util/N.java @@ -0,0 +1,47 @@ +package cn.pluss.platform.util; + +import java.math.BigDecimal; + +import static java.math.BigDecimal.ROUND_DOWN; + +public class N { + + public static final int SCALE = 6; + + public static final boolean isZero(BigDecimal num) { + return num == null || BigDecimal.ZERO.compareTo(num) == 0; + } + + public static final boolean isNull(BigDecimal num) { + return num == null; + } + + + public static final boolean eq(BigDecimal n1, BigDecimal n2) { + return (!isNull(n1) && !isNull(n2) && n1.compareTo(n2) == 0);//n1==n2 + } + + public static final boolean gt(BigDecimal n1, BigDecimal n2) { + return (!isNull(n1) && !isNull(n2) && n1.compareTo(n2) > 0);//n1>n2 + } + + public static final boolean egt(BigDecimal n1, BigDecimal n2) { + return (!isNull(n1) && !isNull(n2) && n1.compareTo(n2) >= 0); + } + + + public static final BigDecimal mul(BigDecimal b1, BigDecimal b2) { + if (isNull(b1) || isNull(b2)) + throw new IllegalArgumentException(); + + return b1.multiply(b2).setScale(SCALE, ROUND_DOWN); + } + + + public static final BigDecimal div(BigDecimal b1, BigDecimal b2) { + if (isNull(b1) || isZero(b2)) + throw new IllegalArgumentException(); + + return b1.divide(b2, SCALE, ROUND_DOWN); + } +} diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantOrderMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantOrderMapper.java index 561f590..1a113e7 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantOrderMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/MerchantOrderMapper.java @@ -135,7 +135,7 @@ public interface MerchantOrderMapper extends BaseMapper { Double queryMerchantOrderEnterFeeByTime(Map map); Double queryMerchantOrderShareMoneyByTime(Map map); - + BigDecimal queryMerchantOrderMoneyByTime(Map map); /** * * queryMerchantOrderPageShuju:(最新统计订单方法).
@@ -235,6 +235,7 @@ public interface MerchantOrderMapper extends BaseMapper { "WHERE merchantCode = #{merchantCode} AND createDate = #{date} AND `status` IN (1, 2)") Map getConsumeFee(@Param("merchantCode") String merchantCode, @Param("date") String date); + Map querySumCount(Map params); /** @@ -427,5 +428,23 @@ public interface MerchantOrderMapper extends BaseMapper { @Select("SELECT * FROM tb_pluss_merchant_order WHERE mercOrderNo = #{mercOrderNo} limit 1") MerchantOrder getByMercOrderNo(String mercOrderNo); + @Select("SELECT count(0)\n" + + "FROM tb_pluss_merchant_order mo\n" + + "LEFT JOIN tb_pluss_user_app ua ON ua.merchantCode = mo.merchantCode\n" + + "WHERE\n" + + " ua.userId = #{userId} ") + Integer getCountUser(@Param("userId") Long userId); + + @Select("SELECT IFNULL(SUM(consumeFee - refundAmt),0) FROM tb_pluss_merchant_order WHERE merchantCode=#{merchantCode} AND `status` = 1") + BigDecimal getAmountData(@Param("merchantCode") String merchantCode); + + /** + * 昨日收款 + * @param startDate + * @param endDate + * @return + */ + @Select("SELECT IFNULL(SUM(consumeFee - refundAmt),0) FROM tb_pluss_merchant_order WHERE merchantCode=#{merchantCode} AND `status` = 1 AND transDt >= #{startDate} AND transDt <= #{endDate}") + BigDecimal getPlatformAmtYestday(@Param("merchantCode") String merchantCode,@Param("startDate") Date startDate, @Param("endDate") Date endDate); } 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 34736a9..48252f3 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 @@ -1,7 +1,9 @@ package cn.pluss.platform.mapper; import cn.pluss.platform.dto.MerchantFeeDTO; +import cn.pluss.platform.entity.MerchantChannelStatus; import cn.pluss.platform.entity.MerchantProfit; +import cn.pluss.platform.vo.MerchantProfitVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -67,5 +69,64 @@ public interface MerchantProfitMapper extends BaseMapper { Map getProfitAmtCount(MerchantProfit condition); + + /** + * 今日收益 + * @param userId + * @return + */ + @Select("SELECT\n" + + "\tsum( t.price ) \n" + + "FROM\n" + + "\ttb_pluss_merchant_profit t \n" + + "WHERE\n" + + "\tt.type = 5 \n" + + "\tAND t.userId = #{userId} \n" + + "\tAND date_format( `t`.`createDt`, '%Y-%m-%d' ) = date_format(( curdate() - INTERVAL 0 DAY ), '%Y-%m-%d' );") + BigDecimal getTodaySum(@Param("userId")String userId); + + /** + * 直属商户交易金额 + * @return + */ + @Select("SELECT\n" + + "\tsum( o.consumeFee ) \n" + + "FROM\n" + + "\ttb_pluss_merchant_order o\n" + + "\tLEFT JOIN tb_pluss_merchant_base_info b ON o.merchantCode = b.merchantCode\n" + + "\tLEFT JOIN tb_pluss_user_promotion p ON b.userId = p.user_id \n" + + "WHERE\n" + + "\to.`status` = 1 \n" + + "\tAND p.parent_user_id = #{userId}") + BigDecimal getConsumeFee(@Param("userId") String userId); + + /** + * 团队总交易金额 + * @param userId + * @return + */ + BigDecimal getConsumeFeeTeam(@Param("userId") String userId); + + /** + * 团队总交易金额(今日) + * @param userId + * @return + */ + BigDecimal getConsumeFeeTeamToday(@Param("userId") String userId); + + List getTeamList(@Param("typeCode") String typeCode, @Param("userId") Long userId, + @Param("page") Integer page, @Param("size") Integer size, @Param("userName") String userName); + + @Select("SELECT\n" + + "\tcount(*) \n" + + "FROM\n" + + "\ttb_pluss_user_promotion \n" + + "WHERE\n" + + "\tparent_user_id = #{userId}\n" + + "\tAND type_code = #{typeCode}") + Integer getCountChild( @Param("userId") Long userId,@Param("typeCode") String typeCod); + + List getChannelStatus(@Param("merchantCode") String merchantCode); + } diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserAppMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserAppMapper.java index 353754e..a3fcd5b 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserAppMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserAppMapper.java @@ -45,6 +45,7 @@ public interface UserAppMapper extends BaseMapper { MerchSummaryVO selectBillCountAndTotalFee(@Param("condition") MerchSearchDTO condition); Integer queryUserAppPageCount(Map map); + Integer queryUserPageCount(Map map); List queryUserInfoVOPage(Map map); diff --git a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserPromotionMapper.java b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserPromotionMapper.java index 07156b5..3589855 100644 --- a/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserPromotionMapper.java +++ b/pluss-dao-bundle/src/main/java/cn/pluss/platform/mapper/UserPromotionMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.math.BigDecimal; import java.util.List; @Mapper @@ -31,4 +32,14 @@ public interface UserPromotionMapper extends BaseMapper { "WHERE\n" + "\tP.user_id = #{userId}") UserPromotion selectByUserId(@Param("userId") String userId); + + UserPromotion selectByPrimaryKey(Long userId); + @Select("select max(current_fee) from tb_pluss_user_promotion where parent_user_id=#{id}") + BigDecimal selectMaxFeeByUserId(@Param("id")String id); + @Select(" select *\n" + + " from tb_pluss_user_promotion\n" + + " where user_id = #{userId}" + + " limit 1 ") + UserPromotion getOne(@Param("userId") Long userId); + int updateByPrimaryKey(UserPromotion record); } diff --git a/pluss-dao-bundle/src/main/resources/mapper/MerchantOrder-sqlmap.xml b/pluss-dao-bundle/src/main/resources/mapper/MerchantOrder-sqlmap.xml index cef66f6..cd27fac 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/MerchantOrder-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/MerchantOrder-sqlmap.xml @@ -2981,4 +2981,18 @@ #{item} + + 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 e1aff49..a362487 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/MerchantProfit-sqlmap.xml @@ -248,14 +248,19 @@ @@ -555,7 +559,7 @@ @@ -865,4 +866,71 @@ GROUP BY userId + + + + 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 814f114..1e4698a 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/UserApp-sqlmap.xml @@ -239,6 +239,202 @@ + + SELECT * FROM tb_pluss_user_promotion WHERE `user_id` IN #{item} + diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantProfit.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantProfit.java index 1bcf973..a621194 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantProfit.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantProfit.java @@ -81,6 +81,10 @@ public class MerchantProfit { @TableField(exist = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; + //订单支付时间 + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date transDt; @DateTimeFormat(pattern = "yyyy-MM-dd") @TableField(select = false, insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER) @@ -115,6 +119,9 @@ public class MerchantProfit { @TableField(exist = false) private String userType; + @TableField(exist = false) + private String type_code; + public MerchantProfit(UserApp userApp, UserApp profitUserApp, MerchantOrder order,BigDecimal profitAmt,BigDecimal profitRate,String type,String orderType) { this.userId = profitUserApp.getUserId(); //V2.0模式 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 new file mode 100644 index 0000000..74f7142 --- /dev/null +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/MerchantProfitVO.java @@ -0,0 +1,60 @@ +package cn.pluss.platform.vo; + +import cn.pluss.platform.entity.MerchantChannelStatus; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author 团队管理 + */ +@Data +public class MerchantProfitVO { + private String userName; + private String phone; + /** + * 费率 + */ + private String current_fee; + /** + * 角色 + */ + private String type_code; + /** + * userId + */ + private String userId; + /** + *总交易金额 + */ + private BigDecimal consumeFee = BigDecimal.ZERO; + /** + * 本月交易金额 + */ + private BigDecimal currentMonth = BigDecimal.ZERO; + /** + * 昨日收款 + */ + private BigDecimal yestedayConsumeFee = BigDecimal.ZERO; + /** + *昨日收款笔数 + */ + private Integer countNum = 0; + /** + * 商户号 + */ + private String merchantCode; + + /** + * 入网时间 + */ + private String createDt; + + 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/SpreadData.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/SpreadData.java index c0f4011..c9c9a95 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/SpreadData.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/vo/SpreadData.java @@ -24,7 +24,7 @@ public class SpreadData { private String userId; /** - * 直属商户交易额 + * 银收客额 */ private BigDecimal ownAmt; diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/MainPageService.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/MainPageService.java index af903a4..dcbfaf3 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/MainPageService.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/MainPageService.java @@ -1,5 +1,6 @@ package cn.pluss.platform.app; +import java.math.BigDecimal; import java.util.Map; /** @@ -21,4 +22,6 @@ public interface MainPageService { * @return 推广数据 */ Map getSpreadData(String userId); + + void modifyFee(Long userId, Integer id, BigDecimal fee); } diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/AgentStaffMainPageServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/AgentStaffMainPageServiceImpl.java index f63193f..762707b 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/AgentStaffMainPageServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/app/impl/AgentStaffMainPageServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -93,6 +94,12 @@ public class AgentStaffMainPageServiceImpl implements MainPageService { return resultMap; } + @Override + public void modifyFee(Long userId, Integer id, BigDecimal fee) { + + } + + @Override public Map getHomeData(String userId) { return null; 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 a6889fa..5cc4552 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 @@ -1,14 +1,19 @@ package cn.pluss.platform.app.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.app.MainPageService; import cn.pluss.platform.entity.MerchantOrderStatistics; import cn.pluss.platform.entity.UserApp; +import cn.pluss.platform.entity.UserPromotion; import cn.pluss.platform.exception.MsgException; +import cn.pluss.platform.mapper.MerchantProfitMapper; +import cn.pluss.platform.mapper.UserPromotionMapper; import cn.pluss.platform.merchantOrder.MerchantOrderStatisticsService; import cn.pluss.platform.merchantProfit.MerchantProfitService; import cn.pluss.platform.userApp.UserAppService; import cn.pluss.platform.util.DateUtils; +import cn.pluss.platform.util.N; import cn.pluss.platform.util.StringUtil; import cn.pluss.platform.vo.MerchantOrderStatisticsVO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -17,11 +22,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import static com.baomidou.mybatisplus.core.toolkit.StringPool.N; + /** * 推广者的主页面信息查询实现类 */ @@ -36,6 +45,10 @@ public class PromoterMainPageServiceImpl implements MainPageService { @Autowired @Lazy private MerchantOrderStatisticsService mosService; + @Resource + private MerchantProfitMapper merchantProfitMapper; + @Resource + private UserPromotionMapper userPromotionMapper; @Override public Map getSpreadData(String userId) { @@ -63,7 +76,7 @@ public class PromoterMainPageServiceImpl implements MainPageService { Map queryMap = new HashMap<>(); queryMap.put("userId", userId); queryMap.put("status", 1); - // 累计总分润 + // 累计总收益 promoteFee = merchantProfitService.queryMerchantProfitSumPrice(queryMap); if (promoteFee == null) { promoteFee = 0d; @@ -74,6 +87,8 @@ public class PromoterMainPageServiceImpl implements MainPageService { queryMap.put("retype", "1"); totalOrderCount = merchantProfitService.queryMerchantProfitPageCount(queryMap); todayProfit = merchantProfitService.queryMerchantProfitSumPrice(queryMap); + //今日收益 + BigDecimal todaySum = merchantProfitMapper.getTodaySum(userId); //今日新增商户数 QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -81,11 +96,26 @@ public class PromoterMainPageServiceImpl implements MainPageService { queryWrapper.in("merchantAuditStatus", 3, 4); queryWrapper.between("createDt", DateUtils.getDayBegin(), DateUtils.getDayEnd()); Integer newMerchantCount = userAppService.getUserAppWithChannelStatus(queryWrapper); + //直属商户交易 + BigDecimal consumeFee = merchantProfitMapper.getConsumeFee(userId); + //团队商户交易 + BigDecimal consumeFeeTeam = merchantProfitMapper.getConsumeFeeTeam(userId); + //今日收款 + BigDecimal consumeFeeTeamToday = merchantProfitMapper.getConsumeFeeTeamToday(userId); + //总商户数 + Integer countChildAll = merchantProfitMapper.getCountChild(Long.valueOf(userId), "MC"); + resultMap.put("promoteFee", promoteFee + ""); resultMap.put("totalOrderCount", totalOrderCount + ""); resultMap.put("newMerchantCount", newMerchantCount + ""); resultMap.put("todayProfit", todayProfit == null? "0.00": todayProfit + ""); + resultMap.put("todaySum", todaySum); + resultMap.put("consumeFee", consumeFee); + resultMap.put("consumeFeeTeam", consumeFeeTeam); + resultMap.put("consumeFeeTeamToday", consumeFeeTeamToday); + resultMap.put("countChildAll", countChildAll); + String currentMonth = DateUtil.format(new Date(), "yyyy-MM"); MerchantOrderStatistics directTotalCurrentMonth = mosService.getDirectTotal(queryUserApp.getUserId() + "", currentMonth); @@ -107,6 +137,69 @@ public class PromoterMainPageServiceImpl implements MainPageService { return resultMap; } + @Override + public void modifyFee(Long userId, Integer id, BigDecimal fee) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id",id); + UserPromotion promotion = userPromotionMapper.selectOne(queryWrapper); + if(ObjectUtil.isEmpty(promotion)){ + throw new MsgException("费率信息不存在"); + } + UserPromotion userPromotion = userPromotionMapper.selectByPrimaryKey(userId); + if(ObjectUtil.isEmpty(userPromotion)){ + throw new MsgException("父级机构信息异常"); + } + + Boolean flag=true; + switch (userPromotion.getTypeCode()){ + case "MG": + if(promotion.getTypeCode().equals("FO")){ + flag=false; + } + break; + case "FO": + if(promotion.getTypeCode().equals("SO")){ + flag=false; + } + break; + case "SO" : + if(promotion.getTypeCode().equals("AG")){ + flag=false; + } + break; + case "AG": + if(promotion.getTypeCode().equals("FB")){ + flag=false; + } + break; + case "FB": + if(promotion.getTypeCode().equals("SB")){ + flag=false; + } + break; + } + if(flag){ + throw new MsgException("当前用户权限不足"); + } + + if(cn.pluss.platform.util.N.gt(new BigDecimal(userPromotion.getCurrentFee()),fee)){ + throw new MsgException("修改费率不允许小于上级费率"); + } + + BigDecimal lowFee=userPromotionMapper.selectMaxFeeByUserId(id.toString()); + if(ObjectUtil.isNotEmpty(lowFee)&&cn.pluss.platform.util.N.gt(fee,lowFee)){ + throw new MsgException("修改费率不允许小于下级最大费率"); + } + + promotion.setCurrentFee(String.valueOf(fee)); + promotion.setUpdateTime(new Date()); + int i = userPromotionMapper.updateByPrimaryKey(promotion); + if (i < 1){ + throw new MsgException("修改失败"); + } + + } + @Override public Map getHomeData(String userId) { return null; diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/account/AccountServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/account/AccountServiceImpl.java index ae798bb..25c21e4 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/account/AccountServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchant/impl/account/AccountServiceImpl.java @@ -1178,7 +1178,7 @@ public class AccountServiceImpl extends ServiceImpl impl UserApp ua = uaService.getOne(new LambdaQueryWrapper().eq(UserApp::getUserId, bankCardDTO.getUserId())); - MerchantChannelStatus mcs = mcsService.getByMerchantCodeAndChannelType(ua.getMerchantCode(), bankCardDTO.getChannelType()); + MerchantChannelStatus mcs = mcsService.getByMerchantCodeAndChannelTypeNew(ua.getMerchantCode(), bankCardDTO.getChannelType()); MsgException.checkNull(mcs, "商户还未进件"); diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantChannelStatus/MerchantChannelStatusService.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantChannelStatus/MerchantChannelStatusService.java index da68339..8f5326a 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantChannelStatus/MerchantChannelStatusService.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantChannelStatus/MerchantChannelStatusService.java @@ -38,6 +38,14 @@ public interface MerchantChannelStatusService extends IService qWrapper = Wrappers.lambdaQuery(); + qWrapper.eq(MerchantChannelStatus::getVirChannelFlag, channelType); + qWrapper.eq(MerchantChannelStatus::getMerchantCode, merchantCode); + qWrapper.eq(MerchantChannelStatus::getStatus,3); + + return getOne(qWrapper); + } /** * 进件请求前参数校验 diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java index efe8b46..ef46261 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java @@ -565,6 +565,26 @@ public class MerchantOrderServiceImpl extends ServiceImpl mapToday = new HashMap<>(); + mapToday.put("startTime", DateUtils.getDayBegin()); + mapToday.put("endTime", DateUtils.getDayEnd()); + mapToday.put("merchantCode", merchantOrder.getMerchantCode()); + BigDecimal today = merchantOrderMapper.queryMerchantOrderMoneyByTime(mapToday); + //周账单 + HashMap mapWeek = new HashMap<>(); + mapWeek.put("startTime", DateUtils.getBeginDayOfWeek()); + mapWeek.put("endTime", DateUtils.getEndDayOfWeek()); + mapWeek.put("merchantCode", merchantOrder.getMerchantCode()); + BigDecimal week = merchantOrderMapper.queryMerchantOrderMoneyByTime(mapWeek); + //月账单 + HashMap mapMonth = new HashMap<>(); + mapMonth.put("startTime", DateUtils.getBeginDayOfMonth()); + mapMonth.put("endTime", DateUtils.getEndDayOfMonth()); + mapMonth.put("merchantCode", merchantOrder.getMerchantCode()); + BigDecimal month = merchantOrderMapper.queryMerchantOrderMoneyByTime(mapMonth); + Map resultMap = new HashMap<>(); resultMap.put("orderNum", consumeCount == null ? 0 : consumeCount); resultMap.put("returnOrderNum", refundCount == null ? 0 : refundCount); @@ -573,6 +593,9 @@ public class MerchantOrderServiceImpl extends ServiceImpl { * @param orderNumber */ void sendProfitMessage(UserApp userApp, BigDecimal profitMoney, String orderNumber); + + Map teamList(String typeCode, Long userId, Integer page,Integer size,String name); + + Map merchantListData(Long userId); } 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 ffe07d5..168371d 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 @@ -16,6 +16,7 @@ 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.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; @@ -52,6 +53,10 @@ 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"; + break; + case "FB": + typeCode = "SB"; + break; + case "SB": + typeCode = ""; + break; + case "MC": + break; + default: + throw new MsgException("身份错误"); + } + List teamList = merchantProfitMapper.getTeamList(typeCode, userId, page,size,name); + + + Integer countChild = merchantProfitMapper.getCountChild(userId, typeCode); + //商户列表 + if ("MC".equals(typeCode)) { + for (MerchantProfitVO values : teamList) { + 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())); + } + } + } + HashMap hashMap = new HashMap<>(); + hashMap.put("total", countChild); + hashMap.put("teamList", teamList); + return hashMap; + } + //团队管理 + for (MerchantProfitVO values : teamList) { + values.setYestedayConsumeFee(mapperOrderMapper.getPlatformAmtYestday(values.getMerchantCode(), + DateUtils.getBeginDayOfMonth(), DateUtils.getEndDayOfMonth())); + values.setConsumeFee(mapperOrderMapper.getAmountData(values.getMerchantCode())); + } + HashMap hashMap = new HashMap<>(); + hashMap.put("total", countChild); + hashMap.put("teamList", teamList); + return hashMap; + } + + @Override + public Map merchantListData(Long userId) { + + return null; + } + /** * 分润创建2.0模式 * diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/userApp/impl/UserAppServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/userApp/impl/UserAppServiceImpl.java index 68b5204..3c70513 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/userApp/impl/UserAppServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/userApp/impl/UserAppServiceImpl.java @@ -242,7 +242,7 @@ public class UserAppServiceImpl extends ServiceImpl impl long pageSize = ((Integer) map.get("pageSize")).longValue(); Page pageResult = new Page<>(page, pageSize); pageResult.setRecords(result); - Long count = baseMapper.queryUserAppPageCount(map).longValue(); + Long count = baseMapper.queryUserPageCount(map).longValue(); pageResult.setTotal(count); if (result.isEmpty()) { diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/userInfo/impl/BaseUserInfoService.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/userInfo/impl/BaseUserInfoService.java index 436182e..c6bbd79 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/userInfo/impl/BaseUserInfoService.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/userInfo/impl/BaseUserInfoService.java @@ -352,21 +352,10 @@ public abstract class BaseUserInfoService extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("user_id", checkUserInfo.getId()); - UserPromotion promotion= userPromotionMapper.selectOne(queryWrapper); - if(ObjectUtil.isEmpty(promotion)){ - MsgException.checkNull(null,"用户状态错误"); - } - - if("MG".equals(promotion.getTypeCode())||"FO".equals(promotion.getTypeCode())||"SO".equals(promotion.getTypeCode())){ - MsgException.checkNull(null,"此用户不允许登录"); - } // 原则上不能以原密码进行对比,这里只是给后台登录页面一个方便 if (password.equalsIgnoreCase(checkUserInfo.getPassword())) { UserApp queryUserApp; queryUserApp = userAppMapper.selectUserApp(new QueryWrapper<>().eq("ua.userId", checkUserInfo.getId())); - log.error("=====================queryUserApp=====================" + JSON.toJSONString(queryUserApp)); String genRandomNum = StringUtil.genRandomNum(6) + StringUtil.getBillno() + StringUtil.genRandomNum(6); UserApp uApp = new UserApp(); uApp.setToken(genRandomNum); @@ -396,6 +385,19 @@ public abstract class BaseUserInfoService extends ServiceImpl(queryUserApp)); + if ("promoter".equals(queryUserApp.getUserType())){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", checkUserInfo.getId()); + UserPromotion promotion= userPromotionMapper.selectOne(queryWrapper); + if(ObjectUtil.isEmpty(promotion)){ + MsgException.checkNull(null,"用户状态错误"); + } + + if("MG".equals(promotion.getTypeCode())||"FO".equals(promotion.getTypeCode())||"SO".equals(promotion.getTypeCode())){ + MsgException.checkNull(null,"此用户不允许登录"); + } + } + // TODO 去掉该用户只能登录一个设备 //String genRandomNum = StringUtil.genRandomNum(6) + StringUtil.getBillno() + StringUtil.genRandomNum(6); String genRandomNum = loginName; diff --git a/pluss-wap-page/src/main/webapp/WEB-INF/jsp/merchant/share.jsp b/pluss-wap-page/src/main/webapp/WEB-INF/jsp/merchant/share.jsp index b4d206d..c4199b5 100644 --- a/pluss-wap-page/src/main/webapp/WEB-INF/jsp/merchant/share.jsp +++ b/pluss-wap-page/src/main/webapp/WEB-INF/jsp/merchant/share.jsp @@ -207,13 +207,7 @@ $.alert("两次的密码必须相同!", "系统提示"); return; } - if(typeCode==''){ - $.alert("类型错误") - } - if(currentFee==''){ - $.alert("费率错误") - } $.showLoading("提交中...") $.ajax({ url: ctx + '/merchant/goRegister',