分佣: 提现记录

This commit is contained in:
owen 2023-09-22 18:35:43 +08:00
parent c146c98b72
commit 637ae8ce1d
7 changed files with 68 additions and 11 deletions

View File

@ -22,6 +22,7 @@ public enum BrokerageWithdrawStatusEnum implements IntArrayValuable {
WITHDRAW_FAIL(21, "提现失败"),
;
public static final String DICT_TYPE = "BROKERAGE_WITHDRAW_STATUS";
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BrokerageWithdrawStatusEnum::getStatus).toArray();
/**

View File

@ -3,8 +3,13 @@ package cn.iocoder.yudao.module.trade.controller.app.brokerage;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.BrokerageWithdrawPageReqVO;
import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawRespVO;
import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageWithdrawConvert;
import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO;
import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum;
import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageWithdrawService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -14,11 +19,10 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
import static java.util.Arrays.asList;
@Tag(name = "用户 APP - 分销提现")
@RestController
@ -29,16 +33,19 @@ public class AppBrokerageWithdrawController {
@Resource
private BrokerageWithdrawService brokerageWithdrawService;
// TODO 芋艿临时 mock =>
@Resource
private DictDataApi dictDataApi;
@GetMapping("/page")
@Operation(summary = "获得分销提现分页")
@PreAuthenticated
public CommonResult<PageResult<AppBrokerageWithdrawRespVO>> getBrokerageWithdrawPage() {
AppBrokerageWithdrawRespVO vo1 = new AppBrokerageWithdrawRespVO()
.setId(1L).setStatus(10).setPrice(10).setStatusName("审批通过").setCreateTime(LocalDateTime.now());
AppBrokerageWithdrawRespVO vo2 = new AppBrokerageWithdrawRespVO()
.setId(2L).setStatus(0).setPrice(20).setStatusName("审批中").setCreateTime(LocalDateTime.now());
return success(new PageResult<>(asList(vo1, vo2), 10L));
public CommonResult<PageResult<AppBrokerageWithdrawRespVO>> getBrokerageWithdrawPage(BrokerageWithdrawPageReqVO pageReqVO) {
// 分页查询
pageReqVO.setUserId(getLoginUserId());
PageResult<BrokerageWithdrawDO> pageResult = brokerageWithdrawService.getBrokerageWithdrawPage(pageReqVO);
// 拼接信息
Map<String, String> statusNameMap = dictDataApi.getDictDataLabelMap(BrokerageWithdrawStatusEnum.DICT_TYPE);
return success(BrokerageWithdrawConvert.INSTANCE.convertPage02(pageResult, statusNameMap));
}
@PostMapping("/create")

View File

@ -1,9 +1,11 @@
package cn.iocoder.yudao.module.trade.convert.brokerage;
import cn.hutool.core.map.MapUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.BrokerageWithdrawRespVO;
import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawRespVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@ -38,4 +40,13 @@ public interface BrokerageWithdrawConvert {
return result;
}
PageResult<AppBrokerageWithdrawRespVO> convertPage02(PageResult<BrokerageWithdrawDO> pageResult);
default PageResult<AppBrokerageWithdrawRespVO> convertPage02(PageResult<BrokerageWithdrawDO> pageResult, Map<String, String> statusNameMap) {
PageResult<AppBrokerageWithdrawRespVO> result = convertPage02(pageResult);
for (AppBrokerageWithdrawRespVO vo : result.getList()) {
vo.setStatusName(MapUtil.getStr(statusNameMap, String.valueOf(vo.getStatus()), ""));
}
return result;
}
}

View File

@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.system.api.dict;
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 字典数据 API 接口
@ -30,6 +32,23 @@ public interface DictDataApi {
*/
DictDataRespDTO getDictData(String type, String value);
/**
* 获得指定类型的字典数据从缓存中
*
* @param type 字典类型
* @return 字典数据
*/
List<DictDataRespDTO> getDictDataList(String type);
/**
* 获得指定类型的字典数据 标签字典从缓存中
* keyvalue, value: label
*
* @param type 字典类型
* @return 字典数据
*/
Map<String, String> getDictDataLabelMap(String type);
/**
* 解析获得指定的字典数据从缓存中
*

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.api.dict;
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;
import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
@ -8,6 +9,10 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
/**
* 字典数据 API 实现类
@ -31,6 +36,18 @@ public class DictDataApiImpl implements DictDataApi {
return DictDataConvert.INSTANCE.convert02(dictData);
}
@Override
public List<DictDataRespDTO> getDictDataList(String type) {
List<DictDataDO> list = dictDataService.getDictDataList(new DictDataExportReqVO().setDictType(type));
return DictDataConvert.INSTANCE.convertList04(list);
}
@Override
public Map<String, String> getDictDataLabelMap(String type) {
List<DictDataDO> list = dictDataService.getDictDataList(new DictDataExportReqVO().setDictType(type));
return convertMap(list, DictDataDO::getValue, DictDataDO::getLabel);
}
@Override
public DictDataRespDTO parseDictData(String dictType, String label) {
DictDataDO dictData = dictDataService.parseDictData(dictType, label);

View File

@ -32,6 +32,6 @@ public class AppDictDataController {
@Operation(summary = "根据字典类型查询字典数据信息")
public CommonResult<List<AppDictDataRespVO>> getDicts(@PathVariable String dictType) {
List<DictDataDO> list = dictDataService.getDictDataList(new DictDataExportReqVO().setDictType(dictType));
return success(DictDataConvert.INSTANCE.convertList2(list));
return success(DictDataConvert.INSTANCE.convertList03(list));
}
}

View File

@ -29,5 +29,7 @@ public interface DictDataConvert {
DictDataRespDTO convert02(DictDataDO bean);
List<AppDictDataRespVO> convertList2(List<DictDataDO> list);
List<AppDictDataRespVO> convertList03(List<DictDataDO> list);
List<DictDataRespDTO> convertList04(List<DictDataDO> list);
}