diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java index 07231b0d..af178c13 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java @@ -1,10 +1,13 @@ package com.czg.controller.admin; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.czg.annotation.SaAdminCheckPermission; import com.czg.annotation.SaCheckMainShop; import com.czg.market.dto.MkDistributionConfigDTO; import com.czg.market.service.MkDistributionAmountFlowService; import com.czg.market.service.MkDistributionConfigService; +import com.czg.market.service.MkDistributionFlowService; import com.czg.market.service.MkDistributionUserService; import com.czg.market.vo.*; import com.czg.order.dto.MkDistributionPayDTO; @@ -34,6 +37,8 @@ public class DistributionController { private MkDistributionUserService distributionUserService; @Resource private MkDistributionAmountFlowService distributionAmountFlowService; + @Resource + private MkDistributionFlowService distributionFlowService; /** * 配置信息详情 @@ -80,6 +85,37 @@ public class DistributionController { return CzgResult.success(distributionAmountFlowService.pageInfo(StpKit.USER.getShopId(), type, key)); } + /** + * 开通记录 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param key 用户id昵称 + */ + @GetMapping("openFlow") + public CzgResult> openFlow(@RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String key) { + return CzgResult.success(distributionAmountFlowService.openPageInfo(StpKit.USER.getShopId(), + StrUtil.isNotBlank(startTime) ? DateUtil.parseLocalDateTime(startTime) : null, StrUtil.isNotBlank(endTime) ? DateUtil.parseLocalDateTime(endTime) : null, key)); + } + + + /** + * 分销明细 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param key 用户id昵称 + * @param status pending待入账 success已入账 + */ + @GetMapping("distributionFlow") + public CzgResult> distributionFlow(@RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, + @RequestParam(required = false) String key, @RequestParam(required = false) String status) { + return CzgResult.success(distributionFlowService.pageInfo(StpKit.USER.getShopId(), + StrUtil.isNotBlank(startTime) ? DateUtil.parseLocalDateTime(startTime) : null, StrUtil.isNotBlank(endTime) ? DateUtil.parseLocalDateTime(endTime) : null, key, status)); + } + + + + + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java index a2f10109..79f27767 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkDistributionFlow.java @@ -62,10 +62,6 @@ public class MkDistributionFlow implements Serializable { */ private Integer level; - /** - * 用户名称 - */ - private String nickname; private String sourceNickName; /** @@ -111,4 +107,5 @@ public class MkDistributionFlow implements Serializable { */ private Long sourceShopUserId; + private String nickName; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionAmountFlowService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionAmountFlowService.java index 9ae3d480..d6a7f39b 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionAmountFlowService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionAmountFlowService.java @@ -3,6 +3,7 @@ package com.czg.market.service; import com.mybatisflex.core.service.IService; import com.czg.market.entity.MkDistributionAmountFlow; +import java.time.LocalDateTime; import java.util.Map; /** @@ -14,4 +15,6 @@ import java.util.Map; public interface MkDistributionAmountFlowService extends IService { Map pageInfo(Long shopId, String type, String key); + + Map openPageInfo(Long shopId, LocalDateTime startTime, LocalDateTime endTime, String key); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionFlowService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionFlowService.java index 9405f4cf..3c9cbe12 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionFlowService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionFlowService.java @@ -3,6 +3,9 @@ package com.czg.market.service; import com.mybatisflex.core.service.IService; import com.czg.market.entity.MkDistributionFlow; +import java.time.LocalDateTime; +import java.util.Map; + /** * 分销记录表 服务层。 * @@ -11,4 +14,5 @@ import com.czg.market.entity.MkDistributionFlow; */ public interface MkDistributionFlowService extends IService { + Map pageInfo(Long shopId, LocalDateTime startTime, LocalDateTime endTime, String key, String status); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionAmountFlowVO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionAmountFlowVO.java index e012499b..1da9cfd2 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionAmountFlowVO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionAmountFlowVO.java @@ -15,4 +15,6 @@ import java.io.Serializable; @Accessors(chain = true) public class MkDistributionAmountFlowVO extends MkDistributionAmountFlow implements Serializable { private String orderNo; + private String nickName; + private String phone; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionFlowVO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionFlowVO.java new file mode 100644 index 00000000..4a65f838 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/vo/MkDistributionFlowVO.java @@ -0,0 +1,21 @@ +package com.czg.market.vo; + +import com.czg.market.entity.MkDistributionAmountFlow; +import com.czg.market.entity.MkDistributionFlow; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @author Administrator + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +public class MkDistributionFlowVO extends MkDistributionFlow implements Serializable { + private String orderNo; + private String phone; + private String sourcePhone; +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionFlowMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionFlowMapper.java index 1d8f7eea..c54fbb42 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionFlowMapper.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkDistributionFlowMapper.java @@ -1,8 +1,13 @@ package com.czg.service.market.mapper; +import com.czg.market.vo.MkDistributionAmountFlowVO; +import com.czg.market.vo.MkDistributionFlowVO; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.MkDistributionFlow; +import java.time.LocalDateTime; +import java.util.List; + /** * 分销记录表 映射层。 * @@ -11,4 +16,5 @@ import com.czg.market.entity.MkDistributionFlow; */ public interface MkDistributionFlowMapper extends BaseMapper { + List pageInfo(Long shopId, LocalDateTime startTime, LocalDateTime endTime, String status, String key); } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionAmountFlowServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionAmountFlowServiceImpl.java index a754e5b2..fb3e48c4 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionAmountFlowServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionAmountFlowServiceImpl.java @@ -17,6 +17,7 @@ import com.czg.market.service.MkDistributionAmountFlowService; import com.czg.service.market.mapper.MkDistributionAmountFlowMapper; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.util.Map; /** @@ -64,6 +65,47 @@ public class MkDistributionAmountFlowServiceImpl extends ServiceImpl openPageInfo(Long shopId, LocalDateTime startTime, LocalDateTime endTime, String key) { + QueryWrapper queryWrapper = new MyQueryWrapper() + .selectAll(MkDistributionAmountFlow.class) + .leftJoin(OrderInfo.class).on(OrderInfo::getId, MkDistributionAmountFlow::getSourceId) + .leftJoin(ShopUser.class).on(ShopUser::getId, OrderInfo::getUserId) + .eq(MkDistributionAmountFlow::getShopId, shopId) + .select(OrderInfo::getOrderNo) + .select(ShopUser::getPhone, ShopUser::getNickName); + if (startTime != null) { + queryWrapper.ge(MkDistributionAmountFlow::getCreateTime, startTime); + } + + if (endTime != null) { + queryWrapper.le(MkDistributionAmountFlow::getCreateTime, endTime); + } + + if (StrUtil.isNotBlank(key)) { + queryWrapper.and(and -> { + and.or(or -> { + or.like(OrderInfo::getOrderNo, key); + }); + and.or(or -> { + or.like(ShopUser::getNickName, key); + }); + and.or(or -> { + or.like(ShopUser::getPhone, key); + }); + }); + } + + Page pageInfo = pageAs(PageUtil.buildPage(), queryWrapper, MkDistributionAmountFlowVO.class); + Map map = BeanUtil.beanToMap(pageInfo); + map.put("totalAmount", getOne(new QueryWrapper().eq(MkDistributionAmountFlow::getShopId, shopId) + .in(MkDistributionAmountFlow::getType, TableValueConstant.DistributionAmountFlow.Type.MANUAL_RECHARGE.getCode(), TableValueConstant.DistributionAmountFlow.Type.SELF_RECHARGE.getCode()) + .select("sum(change_amount)"))); + map.put("totalCount", count(new QueryWrapper().eq(MkDistributionAmountFlow::getShopId, shopId) + .in(MkDistributionAmountFlow::getType, TableValueConstant.DistributionAmountFlow.Type.SUB.getCode(), TableValueConstant.DistributionAmountFlow.Type.MANUAL_SUB.getCode()))); + return map; + } + public static void main(String[] args) { QueryWrapper queryWrapper = new MyQueryWrapper() .selectAll(MkDistributionAmountFlow.class) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionFlowServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionFlowServiceImpl.java index 440f2a08..9e5ae0c0 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionFlowServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionFlowServiceImpl.java @@ -1,11 +1,31 @@ package com.czg.service.market.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.czg.account.entity.ShopUser; +import com.czg.account.service.ShopInfoService; +import com.czg.constant.TableValueConstant; +import com.czg.market.entity.MkDistributionAmountFlow; +import com.czg.market.vo.MkDistributionAmountFlowVO; +import com.czg.market.vo.MkDistributionFlowVO; +import com.czg.order.entity.OrderInfo; +import com.czg.utils.MyQueryWrapper; +import com.czg.utils.PageUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.market.entity.MkDistributionFlow; import com.czg.market.service.MkDistributionFlowService; import com.czg.service.market.mapper.MkDistributionFlowMapper; +import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + /** * 分销记录表 服务层实现。 * @@ -14,5 +34,22 @@ import org.springframework.stereotype.Service; */ @Service public class MkDistributionFlowServiceImpl extends ServiceImpl implements MkDistributionFlowService{ + @DubboReference + private ShopInfoService shopInfoService; + @Override + public Map pageInfo(Long shopId, LocalDateTime startTime, LocalDateTime endTime, String key, String status) { + PageHelper.startPage(PageUtil.buildPageHelp()); + List list = mapper.pageInfo(shopId, startTime, endTime, status, key); + Page page = PageUtil.convert(new PageInfo<>(list)); + Map map = BeanUtil.beanToMap(page); + map.put("successAmount", getOne(new QueryWrapper().eq(MkDistributionFlow::getShopId, shopId) + .eq(MkDistributionFlow::getType, TableValueConstant.DistributionFlow.Status.SUCCESS.getCode()) + .select("sum(reward_amount)"))); + map.put("pendingAmount", getOne(new QueryWrapper().eq(MkDistributionFlow::getShopId, shopId) + .eq(MkDistributionFlow::getType, TableValueConstant.DistributionFlow.Status.PENDING.getCode()) + .select("sum(reward_amount)"))); + map.put("balanceAmount", shopInfoService.getById(shopId).getAmount()); + return map; + } } diff --git a/cash-service/market-service/src/main/resources/mapper/MkDistributionFlowMapper.xml b/cash-service/market-service/src/main/resources/mapper/MkDistributionFlowMapper.xml index 9c584947..166ce0a6 100644 --- a/cash-service/market-service/src/main/resources/mapper/MkDistributionFlowMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/MkDistributionFlowMapper.xml @@ -4,4 +4,28 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +