From 3d151e97ef63044548dfec9585187dea0fef26a8 Mon Sep 17 00:00:00 2001 From: izao <1494412117@qq.com> Date: Fri, 27 Dec 2024 16:47:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=94=80=E6=A8=A1=E5=9D=97=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BrokerageBaseConfigApi.java | 33 +++ .../dto/RpcBrokerageBaseConfigDto.java | 30 +++ .../api/brokeragelevel/BrokerageLevelApi.java | 32 +++ .../dto/RpcBrokerageLevelDto.java | 33 +++ .../brokeragelevelhistory/BroLevelHisApi.java | 33 +++ .../dto/RpcBroLevelHisRespDto.java | 37 +++ .../api/brokerageuser/BrokerageUserApi.java | 34 +++ .../dto/RpcBrokerageUserRespDto.java | 38 +++ .../yudao/module/hsfx/enums/ApiConstants.java | 20 ++ .../module/hsfx/enums/ErrorCodeConstants.java | 46 ++++ .../yudao-module-hsfx-biz/pom.xml | 7 + .../BrokerageBaseConfigImpl.java | 27 ++ .../brokeragelevel/BrokerageLevelImpl.java | 26 ++ .../BrokerageLevelHisImpl.java | 31 +++ .../api/brokerageuser/BrokerageUserImpl.java | 33 +++ .../BrokerageBaseconfigController.java | 95 +++++++ .../vo/BrokerageBaseconfigPageReqVO.java | 34 +++ .../vo/BrokerageBaseconfigRespVO.java | 38 +++ .../vo/BrokerageBaseconfigSaveReqVO.java | 26 ++ .../BrokerageLevelController.java | 94 +++++++ .../vo/BrokerageLevelPageReqVO.java | 37 +++ .../vo/BrokerageLevelRespVO.java | 46 ++++ .../vo/BrokerageLevelSaveReqVO.java | 29 +++ .../BrokerageLevelhistoryController.java | 96 +++++++ .../vo/BrokerageLevelhistoryPageReqVO.java | 34 +++ .../vo/BrokerageLevelhistoryRespVO.java | 47 ++++ .../vo/BrokerageLevelhistorySaveReqVO.java | 25 ++ .../BrokerageUserController.java | 96 +++++++ .../vo/BrokerageUserPageReqVO.java | 34 +++ .../vo/BrokerageUserPageResVO.java | 18 ++ .../brokerageuser/vo/BrokerageUserRespVO.java | 42 ++++ .../vo/BrokerageUserSaveReqVO.java | 25 ++ .../admin/brokerageuser/vo/MemberResDo.java | 9 + .../AppBroBaseconfigController.java | 118 +++++++++ .../vo/AppBroBaseconfigPageReqVO.java | 36 +++ .../vo/AppBroBaseconfigRespVO.java | 39 +++ .../vo/AppBroBaseconfigSaveReqVO.java | 25 ++ .../brokeragelevel/AppBroLevelController.java | 123 +++++++++ .../vo/AppBroLevelPageReqVO.java | 39 +++ .../brokeragelevel/vo/AppBroLevelRespVO.java | 43 ++++ .../vo/AppBroLevelSaveReqVO.java | 28 +++ .../AppBroLevelhisController.java | 129 ++++++++++ .../vo/AppBroLevelhisPageReqVO.java | 36 +++ .../vo/AppBroLevelhisRespVO.java | 45 ++++ .../vo/AppBroLevelhisSaveReqVO.java | 25 ++ .../brokerageuser/AppBroUserController.java | 129 ++++++++++ .../brokerageuser/vo/AppBroUserPageReqVO.java | 36 +++ .../brokerageuser/vo/AppBroUserPageResVO.java | 18 ++ .../brokerageuser/vo/AppBroUserRespVO.java | 42 ++++ .../brokerageuser/vo/AppBroUserSaveReqVO.java | 25 ++ .../BrokerageBaseconfigDO.java | 49 ++++ .../brokeragelevel/BrokerageLevelDO.java | 53 ++++ .../BrokerageLevelhistoryDO.java | 47 ++++ .../brokerageuser/BrokerageUserDO.java | 55 ++++ .../BrokerageBaseconfigMapper.java | 30 +++ .../brokeragelevel/BrokerageLevelMapper.java | 31 +++ .../BrokerageLevelhistoryMapper.java | 30 +++ .../brokerageuser/BrokerageUserMapper.java | 35 +++ .../rpc/config/RpcConfiguration.java | 24 ++ .../BrokerageBaseconfigService.java | 56 +++++ .../BrokerageBaseconfigServiceImpl.java | 171 +++++++++++++ .../brokeragelevel/BrokerageLevelService.java | 56 +++++ .../BrokerageLevelServiceImpl.java | 172 +++++++++++++ .../BrokerageLevelhistoryService.java | 57 +++++ .../BrokerageLevelhistoryServiceImpl.java | 168 +++++++++++++ .../brokerageuser/BrokerageUserService.java | 56 +++++ .../BrokerageUserServiceImpl.java | 235 ++++++++++++++++++ .../BrokerageBaseconfigMapper.xml | 12 + .../brokeragelevel/BrokerageLevelMapper.xml | 12 + .../BrokerageLevelhistoryMapper.xml | 12 + .../brokerageuser/BrokerageUserMapper.xml | 13 + 71 files changed, 3595 insertions(+) create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigApi.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/dto/RpcBrokerageBaseConfigDto.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelApi.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/dto/RpcBrokerageLevelDto.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BroLevelHisApi.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/dto/RpcBroLevelHisRespDto.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserApi.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/dto/RpcBrokerageUserRespDto.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ApiConstants.java create mode 100644 yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ErrorCodeConstants.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BrokerageLevelHisImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/BrokerageBaseconfigController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/BrokerageLevelController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/BrokerageLevelhistoryController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistorySaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/BrokerageUserController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageResVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/MemberResDo.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/AppBroBaseconfigController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/AppBroLevelController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/AppBroLevelhisController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/AppBroUserController.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageResVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserRespVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserSaveReqVO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragebaseconfig/BrokerageBaseconfigDO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevel/BrokerageLevelDO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevelhistory/BrokerageLevelhistoryDO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokerageuser/BrokerageUserDO.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragebaseconfig/BrokerageBaseconfigMapper.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevel/BrokerageLevelMapper.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevelhistory/BrokerageLevelhistoryMapper.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokerageuser/BrokerageUserMapper.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/framework/rpc/config/RpcConfiguration.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigService.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigServiceImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelService.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelServiceImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryService.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryServiceImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserService.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserServiceImpl.java create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragebaseconfig/BrokerageBaseconfigMapper.xml create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevel/BrokerageLevelMapper.xml create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevelhistory/BrokerageLevelhistoryMapper.xml create mode 100644 yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokerageuser/BrokerageUserMapper.xml diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigApi.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigApi.java new file mode 100644 index 000000000..cc49a416f --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigApi.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragebaseconfig; + +import cn.iocoder.yudao.module.hsfx.api.brokeragebaseconfig.dto.RpcBrokerageBaseConfigDto; +import cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory.dto.RpcBroLevelHisRespDto; +import cn.iocoder.yudao.module.hsfx.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author izao + * @Description 分销基础配置远程调用接口 + * @date 2024/12/26 10:57 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC服务-分销基础配置远程调用接口") +public interface BrokerageBaseConfigApi { + String PREFIX = ApiConstants.PREFIX + "/brokerage-baseconfig";//controller层访问前缀 + + /** + * @Description 根据id获取分销基础配置详情 + * @author izao + * @date 2024/12/26 11:58 + * @param id + * @return RpcBroLevelHisRespDto + */ + @GetMapping(PREFIX + "/get") + @Operation(summary = "根据id获取分销基础配置详情") + @Parameter(name = "id", description = "分销基础配置id", example = "1", required = true) + RpcBrokerageBaseConfigDto getBroBaseConfigById(Long id); +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/dto/RpcBrokerageBaseConfigDto.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/dto/RpcBrokerageBaseConfigDto.java new file mode 100644 index 000000000..a0f9af850 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/dto/RpcBrokerageBaseConfigDto.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragebaseconfig.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "RPC服务 - 分销基础配置 返回DTO") +@Data +public class RpcBrokerageBaseConfigDto { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1354") + private Long id; + + @Schema(description = "基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + private String perforConfigJson; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelApi.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelApi.java new file mode 100644 index 000000000..e99636a12 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelApi.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevel; + +import cn.iocoder.yudao.module.hsfx.api.brokeragelevel.dto.RpcBrokerageLevelDto; +import cn.iocoder.yudao.module.hsfx.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author izao + * @Description 分销商等级远程调用接口 + * @date 2024/12/26 11:05 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC服务-分销商等级") +public interface BrokerageLevelApi { + String PREFIX = ApiConstants.PREFIX + "/brokerage-level";//controller层访问前缀 + + /** + * @param id + * @return RpcBrokerageLevelDto + * @Description 获取分销商等级详情 + * @author izao + * @date 2024/12/26 11:44 + */ + @GetMapping(PREFIX + "/get") + @Operation(summary = "获取分销用户详情") + @Parameter(name = "id", description = "分销用户id", example = "1", required = true) + RpcBrokerageLevelDto getBroLevelHisById(Long id); +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/dto/RpcBrokerageLevelDto.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/dto/RpcBrokerageLevelDto.java new file mode 100644 index 000000000..7e0ea9320 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/dto/RpcBrokerageLevelDto.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevel.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "RPC服务 - 分销商等级返回DTO") +@Data +public class RpcBrokerageLevelDto { + + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23559") + private Long id; + + @Schema(description = "等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BroLevelHisApi.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BroLevelHisApi.java new file mode 100644 index 000000000..09df8ab8f --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BroLevelHisApi.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory; + +import cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory.dto.RpcBroLevelHisRespDto; +import cn.iocoder.yudao.module.hsfx.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @Description 分销等级变更历史记录远程调用接口 + * @author izao + * @date 2024/12/26 10:57 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC服务-分销等级变更历史记录") +public interface BroLevelHisApi { + + String PREFIX = ApiConstants.PREFIX + "/brokerage-levelhistory";//controller层访问前缀 + + /** + * @Description 获取等级变更历史记录详情 + * @author izao + * @date 2024/12/26 11:52 + * @param id + * @return RpcBroLevelHisRespDto + */ + @GetMapping(PREFIX + "/get") + @Operation(summary = "获取等级变更历史记录详情") + @Parameter(name = "id", description = "等级变更历史记录id", example = "1", required = true) + RpcBroLevelHisRespDto getBroLevelHisById(Long id); +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/dto/RpcBroLevelHisRespDto.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/dto/RpcBroLevelHisRespDto.java new file mode 100644 index 000000000..10cca636b --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/dto/RpcBroLevelHisRespDto.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "RPC服务 - 分销商等级变更历史记录返回DTO") +@Data +public class RpcBroLevelHisRespDto { + + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20579") + private Long id; + + @Schema(description = "分销用户id", example = "29277") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + private String changeReason; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + private String brokerageMemberNickName;//分销用户会员昵称 + + private String initLevelName;//初始等级名称 + + private String toLevelName;//变动目标等级 + +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserApi.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserApi.java new file mode 100644 index 000000000..73cb9b593 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserApi.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.hsfx.api.brokerageuser; + +import cn.iocoder.yudao.module.hsfx.api.brokerageuser.dto.RpcBrokerageUserRespDto; +import cn.iocoder.yudao.module.hsfx.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @Description 分销用户远程调用接口 + * @Author izao + * @Date 2024/12/26 10:31 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC服务-分销用户") +public interface BrokerageUserApi { + String PREFIX = ApiConstants.PREFIX + "/brokerage-user";//controller层访问前缀 + + + /** + * @Description 远程调用 获取分销用户详情 + * @author izao + * @date 2024/12/26 10:51 + * @param id + * @return BrokerageUserRespDto + */ + @GetMapping(PREFIX + "/get") + @Operation(summary = "获取分销用户详情") + @Parameter(name = "id", description = "分销用户id", example = "1", required = true) + RpcBrokerageUserRespDto getBrokerageUserById(@RequestParam("id") Long id); +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/dto/RpcBrokerageUserRespDto.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/dto/RpcBrokerageUserRespDto.java new file mode 100644 index 000000000..2cb4080cf --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/dto/RpcBrokerageUserRespDto.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.hsfx.api.brokerageuser.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "RPC服务 - 分销用户返回DTO") +@Data +public class RpcBrokerageUserRespDto { + @Schema(description = "分销商id", example = "8493") + private Long id;//分销商id + + @Schema(description = "会员id", example = "2354") + private Long memberUserId;//会员id + + @Schema(description = "会员昵称", example = "芊芊") + private String nickName;//会员昵称 + + @Schema(description = "会员名称", example = "李四") + private String name;//会员名称 + + @Schema(description = "会员手机号", example = "15801123344") + private String phone;//会员手机号 + + @Schema(description = "分销商等级id", example = "2") + private Long levelId;//分销商等级id + + @Schema(description = "等级名称", example = "测试等级") + private String levelName;//等级名称 + + @Schema(description = "上级分销商id", example = "123") + private Long parentId; + + @Schema(description = "上级会员id", example = "123") + private Long parentMemberUserId; + + @Schema(description = "上级分销商昵称", example = "张三") + private String parentMemberNickName; +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ApiConstants.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ApiConstants.java new file mode 100644 index 000000000..887ee5fd4 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ApiConstants.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.hsfx.enums; + +import cn.iocoder.yudao.framework.common.enums.RpcConstants; + +public class ApiConstants { + // hsfx-server/hsfx/xxx + /** + * 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + public static final String NAME = "hsfx-server"; + + /** + * controller访问前缀 + */ + public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/hsfx"; + + public static final String VERSION = "1.0.0"; +} diff --git a/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ErrorCodeConstants.java b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ErrorCodeConstants.java new file mode 100644 index 000000000..0eb719777 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-api/src/main/java/cn/iocoder/yudao/module/hsfx/enums/ErrorCodeConstants.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.hsfx.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + + +/** + * 海上分销 错误码枚举类 + *

+ * 海上分销 系统,使用 1-100-000-000 段 + */ +public interface ErrorCodeConstants { + // ========== 分销用户不存在 TODO 补充编号 ========== + + //分销商 1-100-001-xxx + //分销等级 1-100-002-xxx + //分销基础配置 1-100-003-xxx + //等级变更历史 1-100-004-xxx + + ErrorCode MEMBER_USER_NOT_EXISTS = new ErrorCode(1 - 100 - 001 - 001, "分销会员信息不存在!"); + ErrorCode PARENT_BROKERAGE_USER_NOT_EXISTS = new ErrorCode(1 - 001 - 100 - 002, "上级分销用户不存在!"); + ErrorCode BROKERAGE_USER_NOT_EXISTS = new ErrorCode(1 - 100 - 001 - 003, "分销用户不存在!"); + ErrorCode BROKERAGE_USER_ALREADY_EXISTS = new ErrorCode(1 - 100 - 001 - 004, "分销用户已存在!"); + ErrorCode BROKERAGE_USER_MEMBER_MISMATCH = new ErrorCode(1 - 100 - 001 - 005, "分销用户与会员不对应!"); + + ErrorCode BROKERAGE_LEVEL_NOT_EXISTS = new ErrorCode(1 - 100 - 002 - 001, "分销等级不存在!"); + ErrorCode BROKERAGE_LEVEL_ALREADY_EXISTS = new ErrorCode(1 - 100 - 002 - 002, "分销等级名称已经存在!"); + ErrorCode BROKERAGE_LEVEL_LEVELNAME_NOTEXISTS = new ErrorCode(1 - 100 - 002 - 003, "分销等级基础信息配置不能为空!"); + ErrorCode BROKERAGE_LEVEL_BASECONFIG_NOTEXISTS = new ErrorCode(1 - 100 - 002 - 004, "分销等级基础信息配置不能为空!"); + ErrorCode BROKERAGE_LEVEL_UPGRADECONFIG_NOTEXISTS = new ErrorCode(1 - 100 - 002 - 005, "分销等级升级配置不能为空!"); + ErrorCode BROKERAGE_LEVEL_DOWNGRADECONFIG_NOTEXISTS = new ErrorCode(1 - 100 - 002 - 006, "分销等级基础信息配置不能为空!"); + + + ErrorCode BROKERAGE_BASECONFIG_NOT_EXISTS = new ErrorCode(1 - 100 - 003 - 001, "分销基础配置不存在!"); + ErrorCode BROKERAGE_BASECONFIG_SINGLE_PROPERTY = new ErrorCode(1 - 100 - 003 - 002, "分销基础配置只能同时更新一个!"); + ErrorCode BROKERAGE_BASECONFIG_BASECONFIGJSON_NOTEXISTS = new ErrorCode(1 - 100 - 003 - 003, "分销基础配置字段不能为空!"); + ErrorCode BROKERAGE_BASECONFIG_SETTLECONFIGJSON_NOTEXISTS = new ErrorCode(1 - 100 - 003 - 004, "分销结算设置配置字段不能为空!"); + ErrorCode BROKERAGE_BASECONFIG_TEXTCONFIGJSON_NOTEXISTS = new ErrorCode(1 - 100 - 003 - 005, "分销文字设置配置字段不能为空!"); + ErrorCode BROKERAGE_BASECONFIG_PREFORCONFIGJSON_NOTEXISTS = new ErrorCode(1 - 100 - 003 - 006, "分销业绩中心设置配置字段不能为空!"); + + + ErrorCode BROKERAGE_LEVELHISTORY_NOT_EXISTS = new ErrorCode(1 - 100 - 004 - 001, "分销等级变更历史信息不存在!"); + + ErrorCode JSON_FORMATCHECK_FAIL=new ErrorCode(1-100-005-001,"JSON类型属性格式校验异常"); + + +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/pom.xml b/yudao-module-mall/yudao-module-hsfx-biz/pom.xml index 8c0eb3092..c024bab8a 100644 --- a/yudao-module-mall/yudao-module-hsfx-biz/pom.xml +++ b/yudao-module-mall/yudao-module-hsfx-biz/pom.xml @@ -36,6 +36,13 @@ ${revision} + + cn.iocoder.cloud + yudao-module-hsfx-api + ${revision} + + + cn.iocoder.cloud diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigImpl.java new file mode 100644 index 000000000..d9c33ee50 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragebaseconfig/BrokerageBaseConfigImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragebaseconfig; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.hsfx.api.brokeragebaseconfig.dto.RpcBrokerageBaseConfigDto; +import cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory.dto.RpcBroLevelHisRespDto; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragebaseconfig.BrokerageBaseconfigService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class BrokerageBaseConfigImpl implements BrokerageBaseConfigApi { + + @Autowired + private BrokerageBaseconfigService brokerageBaseconfigService; + + @Override + public RpcBrokerageBaseConfigDto getBroBaseConfigById(Long id) { + BrokerageBaseconfigDO brokerageBaseconfig = brokerageBaseconfigService.getBrokerageBaseconfig(id); + RpcBrokerageBaseConfigDto rpcBrokerageBaseConfigDto = new RpcBrokerageBaseConfigDto(); + BeanUtils.copyProperties(brokerageBaseconfig, rpcBrokerageBaseConfigDto); + return rpcBrokerageBaseConfigDto; + } +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelImpl.java new file mode 100644 index 000000000..6c4815494 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevel/BrokerageLevelImpl.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevel; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.hsfx.api.brokeragelevel.dto.RpcBrokerageLevelDto; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevel.BrokerageLevelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class BrokerageLevelImpl implements BrokerageLevelApi { + + + @Autowired + private BrokerageLevelService brokerageLevelService; + + @Override + public RpcBrokerageLevelDto getBroLevelHisById(Long id) { + BrokerageLevelDO brokerageLevel = brokerageLevelService.getBrokerageLevel(id); + RpcBrokerageLevelDto rpcBrokerageLevelDto = new RpcBrokerageLevelDto(); + BeanUtils.copyProperties(brokerageLevel, rpcBrokerageLevelDto); + return rpcBrokerageLevelDto; + } +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BrokerageLevelHisImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BrokerageLevelHisImpl.java new file mode 100644 index 000000000..a28e3db75 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokeragelevelhistory/BrokerageLevelHisImpl.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.hsfx.api.brokeragelevelhistory.dto.RpcBroLevelHisRespDto; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.BrokerageLevelhistoryRespVO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevelhistory.BrokerageLevelhistoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author izao + * @Description 用户等级变更历史记录远程调用接口实现类 + * @date 2024/12/26 11:21 + */ + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class BrokerageLevelHisImpl implements BroLevelHisApi { + + @Autowired + private BrokerageLevelhistoryService levelhistoryService; + + @Override + public RpcBroLevelHisRespDto getBroLevelHisById(Long id) { + BrokerageLevelhistoryRespVO levelhistoryRespVO = levelhistoryService.getBrokerageLevelhistory(id); + RpcBroLevelHisRespDto rpcBroLevelHisRespDto = new RpcBroLevelHisRespDto(); + BeanUtils.copyProperties(levelhistoryRespVO, rpcBroLevelHisRespDto); + return rpcBroLevelHisRespDto; + } +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserImpl.java new file mode 100644 index 000000000..12d7e7caa --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/api/brokerageuser/BrokerageUserImpl.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.hsfx.api.brokerageuser; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.hsfx.api.brokerageuser.dto.RpcBrokerageUserRespDto; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.BrokerageUserPageResVO; +import cn.iocoder.yudao.module.hsfx.service.brokerageuser.BrokerageUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + + +/** + * @Description 分销用户远程调用接口实现类 + * @author izao + * @date 2024/12/26 10:54 + */ +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class BrokerageUserImpl implements BrokerageUserApi{ + + @Autowired + private BrokerageUserService brokerageUserService; + + @Override + public RpcBrokerageUserRespDto getBrokerageUserById(Long id) { + RpcBrokerageUserRespDto rpcBrokerageUserRespDto = new RpcBrokerageUserRespDto(); + BrokerageUserPageResVO brokerageUser = brokerageUserService.getBrokerageUser(id); + BeanUtils.copyProperties(brokerageUser, rpcBrokerageUserRespDto); + return rpcBrokerageUserRespDto; + } +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/BrokerageBaseconfigController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/BrokerageBaseconfigController.java new file mode 100644 index 000000000..4d3ade230 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/BrokerageBaseconfigController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig; + +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragebaseconfig.BrokerageBaseconfigService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +@Tag(name = "管理后台 - 分销配置") +@RestController +@RequestMapping("/hsfx/brokerage-baseconfig") +@Validated +public class BrokerageBaseconfigController { + + @Resource + private BrokerageBaseconfigService brokerageBaseconfigService; + + @PostMapping("/create") + @Operation(summary = "创建分销配置") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:create')") + public CommonResult createBrokerageBaseconfig(@Valid @RequestBody BrokerageBaseconfigSaveReqVO createReqVO) { + return success(brokerageBaseconfigService.createBrokerageBaseconfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销配置") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:update')") + public CommonResult updateBrokerageBaseconfig(@Valid @RequestBody BrokerageBaseconfigSaveReqVO updateReqVO) { + brokerageBaseconfigService.updateBrokerageBaseconfig(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:delete')") + public CommonResult deleteBrokerageBaseconfig(@RequestParam("id") Long id) { + brokerageBaseconfigService.deleteBrokerageBaseconfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:query')") + public CommonResult getBrokerageBaseconfig(@RequestParam("id") Long id) { + BrokerageBaseconfigDO brokerageBaseconfig = brokerageBaseconfigService.getBrokerageBaseconfig(id); + return success(BeanUtils.toBean(brokerageBaseconfig, BrokerageBaseconfigRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得分销配置分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:query')") + public CommonResult> getBrokerageBaseconfigPage(@Valid BrokerageBaseconfigPageReqVO pageReqVO) { + PageResult pageResult = brokerageBaseconfigService.getBrokerageBaseconfigPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BrokerageBaseconfigRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销配置 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageBaseconfigExcel(@Valid BrokerageBaseconfigPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = brokerageBaseconfigService.getBrokerageBaseconfigPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "分销配置.xls", "数据", BrokerageBaseconfigRespVO.class, + BeanUtils.toBean(list, BrokerageBaseconfigRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigPageReqVO.java new file mode 100644 index 000000000..a095bf9a7 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BrokerageBaseconfigPageReqVO extends PageParam { + + @Schema(description = "基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + private String perforConfigJson; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigRespVO.java new file mode 100644 index 000000000..acd4aa8a7 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigRespVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 分销配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BrokerageBaseconfigRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1354") + @ExcelProperty("id") + private Long id; + + @Schema(description = "基础配置json") + @ExcelProperty("基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + @ExcelProperty("结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + @ExcelProperty("文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + @ExcelProperty("业绩中心配置json") + private String perforConfigJson; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigSaveReqVO.java new file mode 100644 index 000000000..9ef176052 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragebaseconfig/vo/BrokerageBaseconfigSaveReqVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; + +@Schema(description = "管理后台 - 分销配置新增/修改 Request VO") +@Data +public class BrokerageBaseconfigSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1354") + private Long id; + + @Schema(description = "基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + private String perforConfigJson; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/BrokerageLevelController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/BrokerageLevelController.java new file mode 100644 index 000000000..716fc92d8 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/BrokerageLevelController.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel; + +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevel.BrokerageLevelService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +@Tag(name = "管理后台 - 分销商等级") +@RestController +@RequestMapping("/hsfx/brokerage-level") +@Validated +public class BrokerageLevelController { + + @Resource + private BrokerageLevelService brokerageLevelService; + + @PostMapping("/create") + @Operation(summary = "创建分销商等级") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:create')") + public CommonResult createBrokerageLevel(@Valid @RequestBody BrokerageLevelSaveReqVO createReqVO) { + return success(brokerageLevelService.createBrokerageLevel(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销商等级") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:update')") + public CommonResult updateBrokerageLevel(@Valid @RequestBody BrokerageLevelSaveReqVO updateReqVO) { + brokerageLevelService.updateBrokerageLevel(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销商等级") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:delete')") + public CommonResult deleteBrokerageLevel(@RequestParam("id") Long id) { + brokerageLevelService.deleteBrokerageLevel(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销商等级") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:query')") + public CommonResult getBrokerageLevel(@RequestParam("id") Long id) { + BrokerageLevelDO brokerageLevel = brokerageLevelService.getBrokerageLevel(id); + return success(BeanUtils.toBean(brokerageLevel, BrokerageLevelRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得分销商等级分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:query')") + public CommonResult> getBrokerageLevelPage(@Valid BrokerageLevelPageReqVO pageReqVO) { + PageResult pageResult = brokerageLevelService.getBrokerageLevelPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BrokerageLevelRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销商等级 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageLevelExcel(@Valid BrokerageLevelPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = brokerageLevelService.getBrokerageLevelPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "分销商等级.xls", "数据", BrokerageLevelRespVO.class, + BeanUtils.toBean(list, BrokerageLevelRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelPageReqVO.java new file mode 100644 index 000000000..a19a3568b --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销商等级分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BrokerageLevelPageReqVO extends PageParam { + + @Schema(description = "等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelRespVO.java new file mode 100644 index 000000000..02988b66a --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelRespVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 分销商等级 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BrokerageLevelRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23559") + @ExcelProperty("id") + private Long id; + + @Schema(description = "等级 默认等级、一级、二级、三级等") + @ExcelProperty("等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + @ExcelProperty("等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + @ExcelProperty("基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + @ExcelProperty("升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + @ExcelProperty("降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelSaveReqVO.java new file mode 100644 index 000000000..029a89827 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevel/vo/BrokerageLevelSaveReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; + +@Schema(description = "管理后台 - 分销商等级新增/修改 Request VO") +@Data +public class BrokerageLevelSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23559") + private Long id; + + @Schema(description = "等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/BrokerageLevelhistoryController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/BrokerageLevelhistoryController.java new file mode 100644 index 000000000..b5e31b832 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/BrokerageLevelhistoryController.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory; + +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevelhistory.BrokerageLevelhistoryService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +@Tag(name = "管理后台 - 等级变更历史记录") +@RestController +@RequestMapping("/hsfx/brokerage-levelhistory") +@Validated +public class BrokerageLevelhistoryController { + + @Resource + private BrokerageLevelhistoryService brokerageLevelhistoryService; + + @PostMapping("/create") + @Operation(summary = "创建等级变更历史记录") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:create')") + public CommonResult createBrokerageLevelhistory(@Valid @RequestBody BrokerageLevelhistorySaveReqVO createReqVO) { + return success(brokerageLevelhistoryService.createBrokerageLevelhistory(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新等级变更历史记录") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:update')") + public CommonResult updateBrokerageLevelhistory(@Valid @RequestBody BrokerageLevelhistorySaveReqVO updateReqVO) { + brokerageLevelhistoryService.updateBrokerageLevelhistory(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除等级变更历史记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:delete')") + public CommonResult deleteBrokerageLevelhistory(@RequestParam("id") Long id) { + brokerageLevelhistoryService.deleteBrokerageLevelhistory(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得等级变更历史记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:query')") + public CommonResult getBrokerageLevelhistory(@RequestParam("id") Long id) { + return success(brokerageLevelhistoryService.getBrokerageLevelhistory(id)); + } + + @GetMapping("/page") + @Operation(summary = "获得等级变更历史记录分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:query')") + public CommonResult> getBrokerageLevelhistoryPage(@Valid BrokerageLevelhistoryPageReqVO pageReqVO) { + PageResult pageResult = brokerageLevelhistoryService.getBrokerageLevelhistoryPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BrokerageLevelhistoryRespVO.class)); + } + +// @GetMapping("/export-excel") +// @Operation(summary = "导出等级变更历史记录 Excel") +// @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:export')") +// @ApiAccessLog(operateType = EXPORT) +// public void exportBrokerageLevelhistoryExcel(@Valid BrokerageLevelhistoryPageReqVO pageReqVO, +// HttpServletResponse response) throws IOException { +// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); +// List list = brokerageLevelhistoryService.getBrokerageLevelhistoryPage(pageReqVO).getList(); +// // 导出 Excel +// ExcelUtils.write(response, "等级变更历史记录.xls", "数据", BrokerageLevelhistoryRespVO.class, +// BeanUtils.toBean(list, BrokerageLevelhistoryRespVO.class)); +// } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryPageReqVO.java new file mode 100644 index 000000000..ffe1c4bbb --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 等级变更历史记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BrokerageLevelhistoryPageReqVO extends PageParam { + + @Schema(description = "分销用户id", example = "29277") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + private String changeReason; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryRespVO.java new file mode 100644 index 000000000..831a60342 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistoryRespVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 等级变更历史记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BrokerageLevelhistoryRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20579") + @ExcelProperty("id") + private Long id; + + @Schema(description = "分销用户id", example = "29277") + @ExcelProperty("分销用户id") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + @ExcelProperty("初始等级id") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + @ExcelProperty("目标(现在)等级id") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + @ExcelProperty("变动原因") + private String changeReason; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + private String brokerageMemberNickName;//分销用户会员昵称 + + private String initLevelName;//初始等级名称 + + private String toLevelName;//变动目标等级 + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistorySaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistorySaveReqVO.java new file mode 100644 index 000000000..2c07c40ff --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokeragelevelhistory/vo/BrokerageLevelhistorySaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 等级变更历史记录新增/修改 Request VO") +@Data +public class BrokerageLevelhistorySaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20579") + private Long id; + + @Schema(description = "分销用户id", example = "29277") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + private String changeReason; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/BrokerageUserController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/BrokerageUserController.java new file mode 100644 index 000000000..efe558ab1 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/BrokerageUserController.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser; + +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser.BrokerageUserDO; +import cn.iocoder.yudao.module.hsfx.service.brokerageuser.BrokerageUserService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +@Tag(name = "管理后台 - 分销用户") +@RestController +@RequestMapping("/hsfx/brokerage-user") +@Validated +public class BrokerageUserController { + + @Resource + private BrokerageUserService brokerageUserService; + + @PostMapping("/create") + @Operation(summary = "创建分销用户") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:create')") + public CommonResult createBrokerageUser(@Valid @RequestBody BrokerageUserSaveReqVO createReqVO) { + return success(brokerageUserService.createBrokerageUser(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销用户") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:update')") + public CommonResult updateBrokerageUser(@Valid @RequestBody BrokerageUserSaveReqVO updateReqVO) { + brokerageUserService.updateBrokerageUser(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销用户") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:delete')") + public CommonResult deleteBrokerageUser(@RequestParam("id") Long id) { + brokerageUserService.deleteBrokerageUser(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:query')") + public CommonResult getBrokerageUser(@RequestParam("id") Long id) { + BrokerageUserPageResVO brokerageUser = brokerageUserService.getBrokerageUser(id); + return CommonResult.success(brokerageUser); + } + + @GetMapping("/page") + @Operation(summary = "获得分销用户分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:query')") + public CommonResult> getBrokerageUserPage(@Valid BrokerageUserPageReqVO pageReqVO) { + PageResult pageResult = brokerageUserService.getBrokerageUserPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, BrokerageUserPageResVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销用户 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageUserExcel(@Valid BrokerageUserPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = brokerageUserService.getBrokerageUserPage(pageReqVO).getList(); + + // 导出 Excel + ExcelUtils.write(response, "分销用户.xls", "数据", BrokerageUserRespVO.class, + BeanUtils.toBean(list, BrokerageUserRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageReqVO.java new file mode 100644 index 000000000..fc6ef804d --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销用户分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BrokerageUserPageReqVO extends PageParam { + + @Schema(description = "用户id", example = "8493") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + private Integer isEnable; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageResVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageResVO.java new file mode 100644 index 000000000..71ee202b3 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserPageResVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo; + +import lombok.Data; + +@Data +public class BrokerageUserPageResVO { + + private Long id;//分销商id + private Long memberUserId;//会员id + private String nickName;//会员昵称 + private String name;//会员名称 + private String phone;//会员手机号 + private Long levelId;//分销商等级id + private String levelName;//等级名称 + private Long parentId; + private Long parentMemberUserId; + private String parentMemberNickName; +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserRespVO.java new file mode 100644 index 000000000..ea5726fce --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 分销用户 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BrokerageUserRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32060") + @ExcelProperty("id") + private Long id; + + @Schema(description = "用户id", example = "8493") + @ExcelProperty("用户id") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + @ExcelProperty("分销商等级id") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + @ExcelProperty("上级用户id") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + @ExcelProperty(value = "数据字典 是否启用", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Integer isEnable; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserSaveReqVO.java new file mode 100644 index 000000000..09fda59fa --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/BrokerageUserSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 分销用户新增/修改 Request VO") +@Data +public class BrokerageUserSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32060") + private Long id; + + @Schema(description = "用户id", example = "8493") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + private Integer isEnable; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/MemberResDo.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/MemberResDo.java new file mode 100644 index 000000000..b1dc4e563 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/admin/brokerageuser/vo/MemberResDo.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo; + +import lombok.Data; + +@Data +public class MemberResDo { + private Long memberId; + private String memberName; +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/AppBroBaseconfigController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/AppBroBaseconfigController.java new file mode 100644 index 000000000..6a20ee838 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/AppBroBaseconfigController.java @@ -0,0 +1,118 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.BrokerageBaseconfigPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.BrokerageBaseconfigRespVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.BrokerageBaseconfigSaveReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo.AppBroBaseconfigPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo.AppBroBaseconfigRespVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo.AppBroBaseconfigSaveReqVO; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragebaseconfig.BrokerageBaseconfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "APP后台 - 分销配置") +@RestController +@RequestMapping("/hsfx/brokerage-baseconfig") +@Validated +public class AppBroBaseconfigController { + + @Resource + private BrokerageBaseconfigService brokerageBaseconfigService; + + @PostMapping("/create") + @Operation(summary = "创建分销配置") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:create')") + public CommonResult createBrokerageBaseconfig(@Valid @RequestBody AppBroBaseconfigSaveReqVO createReqVO) { + BrokerageBaseconfigSaveReqVO adminBrokerageBaseconfigSaveReqVO = new BrokerageBaseconfigSaveReqVO(); + BeanUtils.copyProperties(createReqVO, adminBrokerageBaseconfigSaveReqVO); + return success(brokerageBaseconfigService.createBrokerageBaseconfig(adminBrokerageBaseconfigSaveReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销配置") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:update')") + public CommonResult updateBrokerageBaseconfig(@Valid @RequestBody AppBroBaseconfigSaveReqVO updateReqVO) { + BrokerageBaseconfigSaveReqVO brokerageBaseconfigSaveReqVO = new BrokerageBaseconfigSaveReqVO(); + BeanUtils.copyProperties(updateReqVO, brokerageBaseconfigSaveReqVO); + brokerageBaseconfigService.updateBrokerageBaseconfig(brokerageBaseconfigSaveReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:delete')") + public CommonResult deleteBrokerageBaseconfig(@RequestParam("id") Long id) { + brokerageBaseconfigService.deleteBrokerageBaseconfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:query')") + public CommonResult getBrokerageBaseconfig(@RequestParam("id") Long id) { + BrokerageBaseconfigDO adminBrokerageBaseconfig = brokerageBaseconfigService.getBrokerageBaseconfig(id); + if (adminBrokerageBaseconfig == null) { + return success(null); + } + return success(BeanUtils.toBean(adminBrokerageBaseconfig, AppBroBaseconfigRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得分销配置分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:query')") + public CommonResult> getBrokerageBaseconfigPage(@Valid AppBroBaseconfigPageReqVO pageReqVO) { + BrokerageBaseconfigPageReqVO adminBrokerageBaseconfigPageReqVO = new BrokerageBaseconfigPageReqVO(); + BeanUtils.copyProperties(pageReqVO, adminBrokerageBaseconfigPageReqVO); + PageResult pageResult = brokerageBaseconfigService.getBrokerageBaseconfigPage(adminBrokerageBaseconfigPageReqVO); + List appBroBaseconfigRespVOList = new ArrayList<>(); + PageResult appPageResult = new PageResult<>(); + appPageResult.setTotal(pageResult.getTotal()); + pageResult.getList().forEach(adminBaseConfigDo -> { + AppBroBaseconfigRespVO appBroBaseconfigRespVO = new AppBroBaseconfigRespVO(); + BeanUtils.copyProperties(adminBaseConfigDo, appBroBaseconfigRespVO); + appBroBaseconfigRespVOList.add(appBroBaseconfigRespVO); + }); + appPageResult.setList(appBroBaseconfigRespVOList); + return success(appPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销配置 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-baseconfig:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageBaseconfigExcel(@Valid AppBroBaseconfigPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + BrokerageBaseconfigPageReqVO adminBaseconfigPageReqVO = new BrokerageBaseconfigPageReqVO(); + BeanUtils.copyProperties(pageReqVO, adminBaseconfigPageReqVO); + List list = brokerageBaseconfigService.getBrokerageBaseconfigPage(adminBaseconfigPageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "分销配置.xls", "数据", AppBroBaseconfigRespVO.class, + BeanUtils.toBean(list, AppBroBaseconfigRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigPageReqVO.java new file mode 100644 index 000000000..a9b428e3e --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppBroBaseconfigPageReqVO extends PageParam { + + @Schema(description = "基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + private String perforConfigJson; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigRespVO.java new file mode 100644 index 000000000..7eb3586c6 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 分销配置 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppBroBaseconfigRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1354") + @ExcelProperty("id") + private Long id; + + @Schema(description = "基础配置json") + @ExcelProperty("基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + @ExcelProperty("结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + @ExcelProperty("文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + @ExcelProperty("业绩中心配置json") + private String perforConfigJson; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigSaveReqVO.java new file mode 100644 index 000000000..f557de972 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragebaseconfig/vo/AppBroBaseconfigSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragebaseconfig.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 分销配置新增/修改 Request VO") +@Data +public class AppBroBaseconfigSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1354") + private Long id; + + @Schema(description = "基础配置json") + private String baseConfigJson; + + @Schema(description = "结算设置配置json") + private String settleConfigJson; + + @Schema(description = "文字设置配置json") + private String textConfigJson; + + @Schema(description = "业绩中心配置json") + private String perforConfigJson; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/AppBroLevelController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/AppBroLevelController.java new file mode 100644 index 000000000..9bf04eb65 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/AppBroLevelController.java @@ -0,0 +1,123 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.BrokerageLevelPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.BrokerageLevelRespVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.BrokerageLevelSaveReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo.AppBroLevelPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo.AppBroLevelRespVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo.AppBroLevelSaveReqVO; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevel.BrokerageLevelService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.context.annotation.Bean; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + + +@Tag(name = "APP后台 - 分销商等级") +@RestController +@RequestMapping("/hsfx/brokerage-level") +@Validated +public class AppBroLevelController { + + @Resource + private BrokerageLevelService brokerageLevelService; + + @PostMapping("/create") + @Operation(summary = "创建分销商等级") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:create')") + public CommonResult createBrokerageLevel(@Valid @RequestBody AppBroLevelSaveReqVO createReqVO) { + BrokerageLevelSaveReqVO brokerageLevelSaveReqVO = new BrokerageLevelSaveReqVO(); + BeanUtils.copyProperties(createReqVO, brokerageLevelSaveReqVO); + return success(brokerageLevelService.createBrokerageLevel(brokerageLevelSaveReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销商等级") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:update')") + public CommonResult updateBrokerageLevel(@Valid @RequestBody AppBroLevelSaveReqVO updateReqVO) { + BrokerageLevelSaveReqVO brokerageLevelUpdateReqVO = new BrokerageLevelSaveReqVO(); + BeanUtils.copyProperties(updateReqVO, brokerageLevelUpdateReqVO); + brokerageLevelService.updateBrokerageLevel(brokerageLevelUpdateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销商等级") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:delete')") + public CommonResult deleteBrokerageLevel(@RequestParam("id") Long id) { + brokerageLevelService.deleteBrokerageLevel(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销商等级") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:query')") + public CommonResult getBrokerageLevel(@RequestParam("id") Long id) { + BrokerageLevelDO brokerageLevel = brokerageLevelService.getBrokerageLevel(id); + if(brokerageLevel==null){ + return success(null); + } + return success(BeanUtils.toBean(brokerageLevel, AppBroLevelRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得分销商等级分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:query')") + public CommonResult> getBrokerageLevelPage(@Valid AppBroLevelPageReqVO pageReqVO) { + BrokerageLevelPageReqVO levelPageReqVO = new BrokerageLevelPageReqVO(); + BeanUtils.copyProperties(pageReqVO, levelPageReqVO); + PageResult adminPageResult = brokerageLevelService.getBrokerageLevelPage(levelPageReqVO); + PageResult respVOPageResult = new PageResult<>(); + respVOPageResult.setTotal(adminPageResult.getTotal()); + List appBroLevelRespVOS = new ArrayList<>(); + adminPageResult.getList().forEach(brokerageLevelDO -> { + AppBroLevelRespVO appBroLevelRespVO = new AppBroLevelRespVO(); + BeanUtils.copyProperties(brokerageLevelDO, appBroLevelRespVO); + appBroLevelRespVOS.add(appBroLevelRespVO); + }); + respVOPageResult.setList(appBroLevelRespVOS); + return success(respVOPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销商等级 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-level:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageLevelExcel(@Valid AppBroLevelPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + BrokerageLevelPageReqVO adminLevelPageReqVO = new BrokerageLevelPageReqVO(); + List list = brokerageLevelService.getBrokerageLevelPage(adminLevelPageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "分销商等级.xls", "数据", AppBroLevelRespVO.class, + BeanUtils.toBean(list, AppBroLevelRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelPageReqVO.java new file mode 100644 index 000000000..fafbc78a2 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelPageReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销商等级分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppBroLevelPageReqVO extends PageParam { + + @Schema(description = "等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelRespVO.java new file mode 100644 index 000000000..59a9e1681 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 分销商等级 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppBroLevelRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23559") + @ExcelProperty("id") + private Long id; + + @Schema(description = "等级 默认等级、一级、二级、三级等") + @ExcelProperty("等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + @ExcelProperty("等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + @ExcelProperty("基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + @ExcelProperty("升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + @ExcelProperty("降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelSaveReqVO.java new file mode 100644 index 000000000..2dc3aa11a --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevel/vo/AppBroLevelSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 分销商等级新增/修改 Request VO") +@Data +public class AppBroLevelSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23559") + private Long id; + + @Schema(description = "等级 默认等级、一级、二级、三级等") + private String level; + + @Schema(description = "等级名称") + private String levelName; + + @Schema(description = "基础配置json;一级、二级、三级佣金比例、培育奖等") + private String baseConfig; + + @Schema(description = "升级策略配置json 升级到此等级需要的条件") + private String upgradeConfig; + + @Schema(description = "降级策略配置json 不满足此条件则降级") + private String downgradeConfig; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/AppBroLevelhisController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/AppBroLevelhisController.java new file mode 100644 index 000000000..cf8cf8bb8 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/AppBroLevelhisController.java @@ -0,0 +1,129 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.BrokerageLevelhistoryPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.BrokerageLevelhistoryRespVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.BrokerageLevelhistorySaveReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo.AppBroLevelhisPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo.AppBroLevelhisRespVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo.AppBroLevelhisSaveReqVO; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.module.hsfx.service.brokeragelevelhistory.BrokerageLevelhistoryService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.context.annotation.Bean; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + + +@Tag(name = "APP后台 - 等级变更历史记录") +@RestController +@RequestMapping("/hsfx/brokerage-levelhistory") +@Validated +public class AppBroLevelhisController { + + @Resource + private BrokerageLevelhistoryService brokerageLevelhistoryService; + + @PostMapping("/create") + @Operation(summary = "创建等级变更历史记录") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:create')") + public CommonResult createBrokerageLevelhistory(@Valid @RequestBody AppBroLevelhisSaveReqVO createReqVO) { + BrokerageLevelhistorySaveReqVO adminReqVO = new BrokerageLevelhistorySaveReqVO(); + BeanUtils.copyProperties(createReqVO, adminReqVO); + return success(brokerageLevelhistoryService.createBrokerageLevelhistory(adminReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新等级变更历史记录") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:update')") + public CommonResult updateBrokerageLevelhistory(@Valid @RequestBody AppBroLevelhisSaveReqVO updateReqVO) { + BrokerageLevelhistorySaveReqVO adminSaveVo = new BrokerageLevelhistorySaveReqVO(); + BeanUtils.copyProperties(updateReqVO, adminSaveVo); + brokerageLevelhistoryService.updateBrokerageLevelhistory(adminSaveVo); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除等级变更历史记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:delete')") + public CommonResult deleteBrokerageLevelhistory(@RequestParam("id") Long id) { + brokerageLevelhistoryService.deleteBrokerageLevelhistory(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得等级变更历史记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:query')") + public CommonResult getBrokerageLevelhistory(@RequestParam("id") Long id) { + BrokerageLevelhistoryRespVO adminLevelRespVo = brokerageLevelhistoryService.getBrokerageLevelhistory(id); + if (adminLevelRespVo == null) { + return success(null); + } + AppBroLevelhisRespVO appBroLevelhisRespVO = new AppBroLevelhisRespVO(); + BeanUtils.copyProperties(adminLevelRespVo, appBroLevelhisRespVO); + return success(appBroLevelhisRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得等级变更历史记录分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:query')") + public CommonResult> getBrokerageLevelhistoryPage(@Valid AppBroLevelhisPageReqVO pageReqVO) { + BrokerageLevelhistoryPageReqVO adminHisPageReqVo = new BrokerageLevelhistoryPageReqVO(); + BeanUtils.copyProperties(pageReqVO, adminHisPageReqVo); + PageResult adminBroLevelhisPage = brokerageLevelhistoryService.getBrokerageLevelhistoryPage(adminHisPageReqVo); + PageResult appBroLevelhisRespVOPageResult = new PageResult<>(); + appBroLevelhisRespVOPageResult.setTotal(adminBroLevelhisPage.getTotal()); + List adminBroLevelhisPageList = adminBroLevelhisPage.getList(); + ArrayList appBroLevelhisRespVOS = new ArrayList<>(); + adminBroLevelhisPageList.forEach(brokerageLevelhistoryRespVO -> { + AppBroLevelhisRespVO appBroLevelhisRespVO = new AppBroLevelhisRespVO(); + BeanUtils.copyProperties(brokerageLevelhistoryRespVO, appBroLevelhisRespVO); + appBroLevelhisRespVOS.add(appBroLevelhisRespVO); + }); + appBroLevelhisRespVOPageResult.setList(appBroLevelhisRespVOS); + return success(appBroLevelhisRespVOPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出等级变更历史记录 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-levelhistory:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageLevelhistoryExcel(@Valid AppBroLevelhisPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + BrokerageLevelhistoryPageReqVO adminRespVO = new BrokerageLevelhistoryPageReqVO(); + PageResult adminLevelHisRespVoPage = brokerageLevelhistoryService.getBrokerageLevelhistoryPage(adminRespVO); + List list = new ArrayList<>(); + adminLevelHisRespVoPage.getList().forEach(BrokerageLevelhistoryRespVO -> { + AppBroLevelhisRespVO appBroLevelhisRespVO = new AppBroLevelhisRespVO(); + BeanUtils.copyProperties(BrokerageLevelhistoryRespVO, appBroLevelhisRespVO); + list.add(appBroLevelhisRespVO); + }); + // 导出 Excel + ExcelUtils.write(response, "等级变更历史记录.xls", "数据", AppBroLevelhisRespVO.class, + BeanUtils.toBean(list, AppBroLevelhisRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisPageReqVO.java new file mode 100644 index 000000000..d9175b9e1 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 等级变更历史记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppBroLevelhisPageReqVO extends PageParam { + + @Schema(description = "分销用户id", example = "29277") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + private String changeReason; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisRespVO.java new file mode 100644 index 000000000..723f0d71d --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 等级变更历史记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppBroLevelhisRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20579") + @ExcelProperty("id") + private Long id; + + @Schema(description = "分销用户id", example = "29277") + @ExcelProperty("分销用户id") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + @ExcelProperty("初始等级id") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + @ExcelProperty("目标(现在)等级id") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + @ExcelProperty("变动原因") + private String changeReason; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + private String brokerageMemberNickName;//分销用户会员昵称 + + private String initLevelName;//初始等级名称 + + private String toLevelName;//变动目标等级 + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisSaveReqVO.java new file mode 100644 index 000000000..0db36a751 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokeragelevelhistory/vo/AppBroLevelhisSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokeragelevelhistory.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 等级变更历史记录新增/修改 Request VO") +@Data +public class AppBroLevelhisSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20579") + private Long id; + + @Schema(description = "分销用户id", example = "29277") + private Long brokerageUserId; + + @Schema(description = "初始等级id", example = "28982") + private Long initLevelId; + + @Schema(description = "目标(现在)等级id", example = "5160") + private Long toLevelId; + + @Schema(description = "变动原因", example = "不满足条件自动降级") + private String changeReason; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/AppBroUserController.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/AppBroUserController.java new file mode 100644 index 000000000..bd6f2d36b --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/AppBroUserController.java @@ -0,0 +1,129 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.BrokerageUserPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.BrokerageUserPageResVO; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.BrokerageUserSaveReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo.AppBroUserPageReqVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo.AppBroUserPageResVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo.AppBroUserRespVO; +import cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo.AppBroUserSaveReqVO; +import cn.iocoder.yudao.module.hsfx.service.brokerageuser.BrokerageUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.context.annotation.Bean; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "APP后台 - 分销用户") +@RestController +@RequestMapping("/hsfx/brokerage-user") +@Validated +public class AppBroUserController { + + @Resource + private BrokerageUserService brokerageUserService; + + @PostMapping("/create") + @Operation(summary = "创建分销用户") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:create')") + public CommonResult createBrokerageUser(@Valid @RequestBody AppBroUserSaveReqVO createReqVO) { + BrokerageUserSaveReqVO broUserSaveReqVO = new BrokerageUserSaveReqVO(); + BeanUtils.copyProperties(createReqVO, broUserSaveReqVO); + return success(brokerageUserService.createBrokerageUser(broUserSaveReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新分销用户") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:update')") + public CommonResult updateBrokerageUser(@Valid @RequestBody AppBroUserSaveReqVO updateReqVO) { + BrokerageUserSaveReqVO broUserSaveReqVO = new BrokerageUserSaveReqVO(); + BeanUtils.copyProperties(updateReqVO, broUserSaveReqVO); + brokerageUserService.updateBrokerageUser(broUserSaveReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除分销用户") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:delete')") + public CommonResult deleteBrokerageUser(@RequestParam("id") Long id) { + brokerageUserService.deleteBrokerageUser(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得分销用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:query')") + public CommonResult getBrokerageUser(@RequestParam("id") Long id) { + BrokerageUserPageResVO brokerageUser = brokerageUserService.getBrokerageUser(id); + if(brokerageUser==null){ + return CommonResult.success(null); + } + AppBroUserPageResVO appBroUser = new AppBroUserPageResVO(); + BeanUtils.copyProperties(brokerageUser, appBroUser); + return CommonResult.success(appBroUser); + } + + @GetMapping("/page") + @Operation(summary = "获得分销用户分页") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:query')") + public CommonResult> getBrokerageUserPage(@Valid AppBroUserPageReqVO pageReqVO) { + BrokerageUserPageReqVO broUserPageReqVO = new BrokerageUserPageReqVO(); + BeanUtils.copyProperties(pageReqVO, broUserPageReqVO); + PageResult brokerageUserPage = brokerageUserService.getBrokerageUserPage(broUserPageReqVO); + PageResult appPageResult = new PageResult<>(); + appPageResult.setTotal(brokerageUserPage.getTotal()); + List brokerageUserPageList = brokerageUserPage.getList(); + ArrayList appBroUserPageResVOList = new ArrayList<>(); + for (int i = 0; i < brokerageUserPageList.size(); i++) { + AppBroUserPageResVO appPageResVO = new AppBroUserPageResVO(); + BeanUtils.copyProperties(brokerageUserPageList.get(i), appPageResVO); + appBroUserPageResVOList.add(appPageResVO); + } + appPageResult.setList(appBroUserPageResVOList); + return success(appPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出分销用户 Excel") + @PreAuthorize("@ss.hasPermission('hsfx:brokerage-user:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBrokerageUserExcel(@Valid AppBroUserPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + BrokerageUserPageReqVO broUserPageReqVO = new BrokerageUserPageReqVO(); + BeanUtils.copyProperties(pageReqVO, broUserPageReqVO); + List pageResVOList = brokerageUserService.getBrokerageUserPage(broUserPageReqVO).getList(); + + List appPageResVOList = new ArrayList<>(); + for (int i = 0; i < pageResVOList.size(); i++) { + AppBroUserPageResVO pageResVO = new AppBroUserPageResVO(); + BeanUtils.copyProperties(pageResVOList.get(i), pageResVO); + appPageResVOList.add(pageResVO); + } + + // 导出 Excel + ExcelUtils.write(response, "分销用户.xls", "数据", AppBroUserRespVO.class, + BeanUtils.toBean(appPageResVOList, AppBroUserRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageReqVO.java new file mode 100644 index 000000000..c03c3f0b4 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 分销用户分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AppBroUserPageReqVO extends PageParam { + + @Schema(description = "用户id", example = "8493") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + private Integer isEnable; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageResVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageResVO.java new file mode 100644 index 000000000..0cc90155a --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserPageResVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo; + +import lombok.Data; + +@Data +public class AppBroUserPageResVO { + + private Long id;//分销商id + private Long memberUserId;//会员id + private String nickName;//会员昵称 + private String name;//会员名称 + private String phone;//会员手机号 + private Long levelId;//分销商等级id + private String levelName;//等级名称 + private Long parentId; + private Long parentMemberUserId; + private String parentMemberNickName; +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserRespVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserRespVO.java new file mode 100644 index 000000000..7cd6afcf6 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserRespVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 分销用户 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppBroUserRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32060") + @ExcelProperty("id") + private Long id; + + @Schema(description = "用户id", example = "8493") + @ExcelProperty("用户id") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + @ExcelProperty("分销商等级id") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + @ExcelProperty("上级用户id") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + @ExcelProperty(value = "数据字典 是否启用", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Integer isEnable; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserSaveReqVO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserSaveReqVO.java new file mode 100644 index 000000000..b21ea73c5 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/controller/app/brokerageuser/vo/AppBroUserSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.hsfx.controller.app.brokerageuser.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 分销用户新增/修改 Request VO") +@Data +public class AppBroUserSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32060") + private Long id; + + @Schema(description = "用户id", example = "8493") + private Long memberUserId; + + @Schema(description = "分销商等级id", example = "24915") + private Long levelId; + + @Schema(description = "上级用户id", example = "9225") + private Long parentId; + + @Schema(description = "数据字典 是否启用") + private Integer isEnable; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragebaseconfig/BrokerageBaseconfigDO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragebaseconfig/BrokerageBaseconfigDO.java new file mode 100644 index 000000000..c886a03aa --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragebaseconfig/BrokerageBaseconfigDO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +import javax.validation.Constraint; + +/** + * 分销配置 DO + * + * @author admin + */ +@TableName("trade_brokerage_baseconfig") +@KeySequence("trade_brokerage_baseconfig_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BrokerageBaseconfigDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 基础配置json + */ + private String baseConfigJson; + /** + * 结算设置配置json + */ + private String settleConfigJson; + /** + * 文字设置配置json + */ + private String textConfigJson; + /** + * 业绩中心配置json + */ + private String perforConfigJson; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevel/BrokerageLevelDO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevel/BrokerageLevelDO.java new file mode 100644 index 000000000..2558766d5 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevel/BrokerageLevelDO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 分销商等级 DO + * + * @author admin + */ +@TableName("trade_brokerage_level") +@KeySequence("trade_brokerage_level_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BrokerageLevelDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 等级 默认等级、一级、二级、三级等 + */ + private String level; + /** + * 等级名称 + */ + private String levelName; + /** + * 基础配置json;一级、二级、三级佣金比例、培育奖等 + */ + private String baseConfig; + /** + * 升级策略配置json 升级到此等级需要的条件 + */ + private String upgradeConfig; + /** + * 降级策略配置json 不满足此条件则降级 + */ + private String downgradeConfig; + + + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevelhistory/BrokerageLevelhistoryDO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevelhistory/BrokerageLevelhistoryDO.java new file mode 100644 index 000000000..ab7b39c87 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokeragelevelhistory/BrokerageLevelhistoryDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 等级变更历史记录 DO + * + * @author admin + */ +@TableName("trade_brokerage_levelhistory") +@KeySequence("trade_brokerage_levelhistory_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BrokerageLevelhistoryDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 分销用户id + */ + private Long brokerageUserId; + /** + * 初始等级id + */ + private Long initLevelId; + /** + * 目标(现在)等级id + */ + private Long toLevelId; + /** + * 变动原因 + */ + private String changeReason; + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokerageuser/BrokerageUserDO.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokerageuser/BrokerageUserDO.java new file mode 100644 index 000000000..4e7624460 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/dataobject/brokerageuser/BrokerageUserDO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser; + +import lombok.*; + +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 分销用户 DO + * + * @author admin + */ +@TableName("trade_brokerage_user") +@KeySequence("trade_brokerage_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BrokerageUserDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 用户id + */ + private Long memberUserId; + /** + * 分销商等级id + */ + private Long levelId; + /** + * 上级用户id + */ + private Long parentId; + /** + * 数据字典 是否启用 + *

+ * 枚举 {@link TODO infra_boolean_string 对应的类} + */ + private Integer isEnable; + + @TableField(exist = false) + private String levelName; + + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragebaseconfig/BrokerageBaseconfigMapper.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragebaseconfig/BrokerageBaseconfigMapper.java new file mode 100644 index 000000000..726bb283c --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragebaseconfig/BrokerageBaseconfigMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragebaseconfig; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.*; + +/** + * 分销配置 Mapper + * + * @author admin + */ +@Mapper +public interface BrokerageBaseconfigMapper extends BaseMapperX { + + default PageResult selectPage(BrokerageBaseconfigPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BrokerageBaseconfigDO::getBaseConfigJson, reqVO.getBaseConfigJson()) + .eqIfPresent(BrokerageBaseconfigDO::getSettleConfigJson, reqVO.getSettleConfigJson()) + .eqIfPresent(BrokerageBaseconfigDO::getTextConfigJson, reqVO.getTextConfigJson()) + .eqIfPresent(BrokerageBaseconfigDO::getPerforConfigJson, reqVO.getPerforConfigJson()) + .betweenIfPresent(BrokerageBaseconfigDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BrokerageBaseconfigDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevel/BrokerageLevelMapper.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevel/BrokerageLevelMapper.java new file mode 100644 index 000000000..2d44bfbde --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevel/BrokerageLevelMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevel; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.*; + +/** + * 分销商等级 Mapper + * + * @author admin + */ +@Mapper +public interface BrokerageLevelMapper extends BaseMapperX { + + default PageResult selectPage(BrokerageLevelPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BrokerageLevelDO::getLevel, reqVO.getLevel()) + .likeIfPresent(BrokerageLevelDO::getLevelName, reqVO.getLevelName()) + .eqIfPresent(BrokerageLevelDO::getBaseConfig, reqVO.getBaseConfig()) + .eqIfPresent(BrokerageLevelDO::getUpgradeConfig, reqVO.getUpgradeConfig()) + .eqIfPresent(BrokerageLevelDO::getDowngradeConfig, reqVO.getDowngradeConfig()) + .betweenIfPresent(BrokerageLevelDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BrokerageLevelDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevelhistory/BrokerageLevelhistoryMapper.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevelhistory/BrokerageLevelhistoryMapper.java new file mode 100644 index 000000000..033ab17cc --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokeragelevelhistory/BrokerageLevelhistoryMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevelhistory; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.*; + +/** + * 等级变更历史记录 Mapper + * + * @author admin + */ +@Mapper +public interface BrokerageLevelhistoryMapper extends BaseMapperX { + + default PageResult selectPage(BrokerageLevelhistoryPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BrokerageLevelhistoryDO::getBrokerageUserId, reqVO.getBrokerageUserId()) + .eqIfPresent(BrokerageLevelhistoryDO::getInitLevelId, reqVO.getInitLevelId()) + .eqIfPresent(BrokerageLevelhistoryDO::getToLevelId, reqVO.getToLevelId()) + .likeIfPresent(BrokerageLevelhistoryDO::getChangeReason, reqVO.getChangeReason()) + .betweenIfPresent(BrokerageLevelhistoryDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BrokerageLevelhistoryDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokerageuser/BrokerageUserMapper.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokerageuser/BrokerageUserMapper.java new file mode 100644 index 000000000..d996e64f8 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/dal/mysql/brokerageuser/BrokerageUserMapper.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.hsfx.dal.mysql.brokerageuser; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser.BrokerageUserDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.query.MPJQueryWrapper; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.*; + +/** + * 分销用户 Mapper + * + * @author admin + */ +@Mapper +public interface BrokerageUserMapper extends BaseMapperX { + + default PageResult selectPage(BrokerageUserPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BrokerageUserDO::getMemberUserId, reqVO.getMemberUserId()) + .eqIfPresent(BrokerageUserDO::getLevelId, reqVO.getLevelId()) + .eqIfPresent(BrokerageUserDO::getParentId, reqVO.getParentId()) + .eqIfPresent(BrokerageUserDO::getIsEnable, reqVO.getIsEnable()) + .betweenIfPresent(BrokerageUserDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BrokerageUserDO::getId)); + } + + + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/framework/rpc/config/RpcConfiguration.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/framework/rpc/config/RpcConfiguration.java new file mode 100644 index 000000000..4b132d59e --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/framework/rpc/config/RpcConfiguration.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.hsfx.framework.rpc.config; + +import cn.iocoder.yudao.module.member.api.address.MemberAddressApi; +import cn.iocoder.yudao.module.member.api.config.MemberConfigApi; +import cn.iocoder.yudao.module.member.api.level.MemberLevelApi; +import cn.iocoder.yudao.module.member.api.point.MemberPointApi; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.product.api.category.ProductCategoryApi; +import cn.iocoder.yudao.module.product.api.comment.ProductCommentApi; +import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; +import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; +import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; +import cn.iocoder.yudao.module.system.api.social.SocialClientApi; +import cn.iocoder.yudao.module.system.api.social.SocialUserApi; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableFeignClients(clients = { + AdminUserApi.class,MemberUserApi.class +}) +public class RpcConfiguration { +} diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigService.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigService.java new file mode 100644 index 000000000..a683722c5 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragebaseconfig; + +import java.util.*; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import javax.validation.Valid; + +/** + * 分销配置 Service 接口 + * + * @author admin + */ +public interface BrokerageBaseconfigService { + + /** + * 创建分销配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBrokerageBaseconfig(@Valid BrokerageBaseconfigSaveReqVO createReqVO); + + /** + * 更新分销配置 + * + * @param updateReqVO 更新信息 + */ + void updateBrokerageBaseconfig(@Valid BrokerageBaseconfigSaveReqVO updateReqVO); + + /** + * 删除分销配置 + * + * @param id 编号 + */ + void deleteBrokerageBaseconfig(Long id); + + /** + * 获得分销配置 + * + * @param id 编号 + * @return 分销配置 + */ + BrokerageBaseconfigDO getBrokerageBaseconfig(Long id); + + /** + * 获得分销配置分页 + * + * @param pageReqVO 分页查询 + * @return 分销配置分页 + */ + PageResult getBrokerageBaseconfigPage(BrokerageBaseconfigPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigServiceImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigServiceImpl.java new file mode 100644 index 000000000..8175f9517 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragebaseconfig/BrokerageBaseconfigServiceImpl.java @@ -0,0 +1,171 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragebaseconfig; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragebaseconfig.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragebaseconfig.BrokerageBaseconfigDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragebaseconfig.BrokerageBaseconfigMapper; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.hsfx.enums.ErrorCodeConstants.*; + +/** + * 分销配置 Service 实现类 + * + * @author admin + */ +@Service +@Validated +public class BrokerageBaseconfigServiceImpl implements BrokerageBaseconfigService { + + @Resource + private BrokerageBaseconfigMapper brokerageBaseconfigMapper; + + @Override + @Transactional + public Long createBrokerageBaseconfig(BrokerageBaseconfigSaveReqVO createReqVO) { + //校验格式是否正常 + validateJson(createReqVO); + // 插入 + BrokerageBaseconfigDO brokerageBaseconfig = BeanUtils.toBean(createReqVO, BrokerageBaseconfigDO.class); + brokerageBaseconfig.setDeleted(false); + brokerageBaseconfigMapper.insert(brokerageBaseconfig); + // 返回 + return brokerageBaseconfig.getId(); + } + + @Override + @Transactional + public void updateBrokerageBaseconfig(BrokerageBaseconfigSaveReqVO updateReqVO) { + // 校验存在 + validateBrokerageBaseconfigExists(updateReqVO.getId()); + //设置每次只能更新一个字段的值 + //校验其中基础设置、结算设置、文字设置、业绩中心设置每次只能更新一个字段值 + // 更新 +// validateBaseconfigPropertyOne(updateReqVO); + +// BrokerageBaseconfigDO updateObj = BeanUtils.toBean(updateReqVO, BrokerageBaseconfigDO.class); +// LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); +// if (updateReqVO.getBaseConfigJson() != null && updateReqVO.getBaseConfigJson() != "") { +// lambdaUpdateWrapper.set(BrokerageBaseconfigDO::getBaseConfigJson, updateReqVO.getBaseConfigJson()); +// } +// if (updateReqVO.getPerforConfigJson() != null && updateReqVO.getPerforConfigJson() != "") { +// lambdaUpdateWrapper.set(BrokerageBaseconfigDO::getPerforConfigJson, updateReqVO.getPerforConfigJson()); +// } +// if (updateReqVO.getTextConfigJson() != null && updateReqVO.getTextConfigJson() != "") { +// lambdaUpdateWrapper.set(BrokerageBaseconfigDO::getTextConfigJson, updateReqVO.getTextConfigJson()); +// } +// if (updateReqVO.getSettleConfigJson() != null && updateReqVO.getSettleConfigJson() != "") { +// lambdaUpdateWrapper.set(BrokerageBaseconfigDO::getSettleConfigJson, updateReqVO.getSettleConfigJson()); +// } +// lambdaUpdateWrapper.eq(BrokerageBaseconfigDO::getId, updateReqVO.getId()); +// brokerageBaseconfigMapper.update(updateObj, lambdaUpdateWrapper); + + //校验格式是否正常 + validateJson(updateReqVO); + //校验属性是否为空 + validateBrokerageBaseconfigProperties(updateReqVO); + BrokerageBaseconfigDO brokerageBaseconfigDO = new BrokerageBaseconfigDO(); + BeanUtils.copyProperties(updateReqVO, brokerageBaseconfigDO); + brokerageBaseconfigMapper.updateById(brokerageBaseconfigDO); + } + + @Override + @Transactional + public void deleteBrokerageBaseconfig(Long id) { + // 校验存在 + validateBrokerageBaseconfigExists(id); + // 删除 + brokerageBaseconfigMapper.deleteById(id); + } + + @Override + public BrokerageBaseconfigDO getBrokerageBaseconfig(Long id) { + return brokerageBaseconfigMapper.selectById(id); + } + + @Override + public PageResult getBrokerageBaseconfigPage(BrokerageBaseconfigPageReqVO pageReqVO) { + return brokerageBaseconfigMapper.selectPage(pageReqVO); + } + + + private void validateBrokerageBaseconfigExists(Long id) { + if (brokerageBaseconfigMapper.selectById(id) == null) { + throw exception(BROKERAGE_BASECONFIG_NOT_EXISTS); + } + } + + //校验属性是是否存在 JSON格式的属性值,有一个为null都无法存入 + private void validateBrokerageBaseconfigProperties(BrokerageBaseconfigSaveReqVO baseconfigSaveReqVO) { + if (StringUtils.isEmpty(baseconfigSaveReqVO.getBaseConfigJson())) { + throw exception(BROKERAGE_BASECONFIG_BASECONFIGJSON_NOTEXISTS); + } + if (StringUtils.isEmpty(baseconfigSaveReqVO.getSettleConfigJson())) { + throw exception(BROKERAGE_BASECONFIG_SETTLECONFIGJSON_NOTEXISTS); + } + if (StringUtils.isEmpty(baseconfigSaveReqVO.getTextConfigJson())) { + throw exception(BROKERAGE_BASECONFIG_TEXTCONFIGJSON_NOTEXISTS); + } + if (StringUtils.isEmpty(baseconfigSaveReqVO.getPerforConfigJson())) { + throw exception(BROKERAGE_BASECONFIG_PREFORCONFIGJSON_NOTEXISTS); + } + } + + //验证单属性更新 后续看是否需要 + private void validateBaseconfigPropertyOne(BrokerageBaseconfigSaveReqVO baseconfigSaveReqVO) { + int flag = 0; + if (baseconfigSaveReqVO.getBaseConfigJson() != null && baseconfigSaveReqVO.getBaseConfigJson() != "") { + flag++; + } + if (baseconfigSaveReqVO.getPerforConfigJson() != null && baseconfigSaveReqVO.getPerforConfigJson() != "") { + flag++; + } + if (baseconfigSaveReqVO.getTextConfigJson() != null && baseconfigSaveReqVO.getTextConfigJson() != "") { + flag++; + } + if (baseconfigSaveReqVO.getSettleConfigJson() != null && baseconfigSaveReqVO.getSettleConfigJson() != "") { + flag++; + } + if (flag > 1) { + throw exception(BROKERAGE_BASECONFIG_SINGLE_PROPERTY); + } + } + + + private void validateJson(BrokerageBaseconfigSaveReqVO baseconfigSaveReqVO) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + if (baseconfigSaveReqVO.getBaseConfigJson() != null) { + objectMapper.readValue(baseconfigSaveReqVO.getBaseConfigJson(), Object.class); + } + if (baseconfigSaveReqVO.getTextConfigJson() != null) { + objectMapper.readValue(baseconfigSaveReqVO.getTextConfigJson(), Object.class); + } + if (baseconfigSaveReqVO.getSettleConfigJson() != null) { + objectMapper.readValue(baseconfigSaveReqVO.getSettleConfigJson(), Object.class); + } + if (baseconfigSaveReqVO.getPerforConfigJson() != null) { + objectMapper.readValue(baseconfigSaveReqVO.getPerforConfigJson(), Object.class); + } + } catch (JsonProcessingException e) { + throw exception(JSON_FORMATCHECK_FAIL); + } + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelService.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelService.java new file mode 100644 index 000000000..9e1540daf --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragelevel; + +import java.util.*; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import javax.validation.Valid; + +/** + * 分销商等级 Service 接口 + * + * @author admin + */ +public interface BrokerageLevelService { + + /** + * 创建分销商等级 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBrokerageLevel(@Valid BrokerageLevelSaveReqVO createReqVO); + + /** + * 更新分销商等级 + * + * @param updateReqVO 更新信息 + */ + void updateBrokerageLevel(@Valid BrokerageLevelSaveReqVO updateReqVO); + + /** + * 删除分销商等级 + * + * @param id 编号 + */ + void deleteBrokerageLevel(Long id); + + /** + * 获得分销商等级 + * + * @param id 编号 + * @return 分销商等级 + */ + BrokerageLevelDO getBrokerageLevel(Long id); + + /** + * 获得分销商等级分页 + * + * @param pageReqVO 分页查询 + * @return 分销商等级分页 + */ + PageResult getBrokerageLevelPage(BrokerageLevelPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelServiceImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelServiceImpl.java new file mode 100644 index 000000000..7668b1512 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevel/BrokerageLevelServiceImpl.java @@ -0,0 +1,172 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragelevel; + +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevelhistory.BrokerageLevelhistoryMapper; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevel.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevel.BrokerageLevelMapper; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.hsfx.enums.ErrorCodeConstants.*; + +/** + * 分销商等级 Service 实现类 + * + * @author admin + */ +@Service +@Validated +public class BrokerageLevelServiceImpl implements BrokerageLevelService { + + @Resource + private BrokerageLevelMapper brokerageLevelMapper; + + + @Override + @Transactional + public Long createBrokerageLevel(BrokerageLevelSaveReqVO createReqVO) { + //校验必须属性是否为空或空字符串 +// validateBrokerageLevelNullProperties(createReqVO); + //校验分销等级是否存在 + validateBrokerageLevelExistsByName(createReqVO.getLevelName()); + + //校验对应的json属性是否完整 + validateJson(createReqVO); + // 插入 + BrokerageLevelDO brokerageLevel = BeanUtils.toBean(createReqVO, BrokerageLevelDO.class); + brokerageLevel.setDeleted(false); + brokerageLevelMapper.insert(brokerageLevel); + // 返回 + return brokerageLevel.getId(); + } + + @Override + @Transactional + public void updateBrokerageLevel(BrokerageLevelSaveReqVO updateReqVO) { + //校验必须属性是否为空或空字符串 +// validateBrokerageLevelNullProperties(updateReqVO); + // 校验更新数据是否存在 + validateBrokerageLevelExistsById(updateReqVO.getId()); + validateJson(updateReqVO); + //校验分销等级是否存在 +// validateBrokerageLevelExistsByName(updateReqVO.getLevelName()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(BrokerageLevelDO::getLevelName, updateReqVO.getLevelName()); + lambdaQueryWrapper.eq(BrokerageLevelDO::getDeleted, 0); + BrokerageLevelDO levelDOOne = brokerageLevelMapper.selectOne(lambdaQueryWrapper); + if (levelDOOne != null && (levelDOOne.getId() != updateReqVO.getId())) {//名称相同但是id不同 + throw exception(BROKERAGE_LEVEL_ALREADY_EXISTS); + } + + // 更新 + BrokerageLevelDO updateObj = BeanUtils.toBean(updateReqVO, BrokerageLevelDO.class); + brokerageLevelMapper.updateById(updateObj); + } + + @Override + @Transactional + public void deleteBrokerageLevel(Long id) { + // 校验存在 + validateBrokerageLevelExistsById(id); + // 删除 + brokerageLevelMapper.deleteById(id); + } + + + @Override + public BrokerageLevelDO getBrokerageLevel(Long id) { + + BrokerageLevelDO levelDO = brokerageLevelMapper.selectById(id); + //json解析获取值 +// String baseConfig = levelDO.getBaseConfig(); +// JSONObject baseConfigJson = (JSONObject) JSON.parse(baseConfig); +// String module = (String) baseConfigJson.get("module"); +// System.out.println(module); +// System.out.println(baseConfigJson); + return levelDO; + } + + @Override + public PageResult getBrokerageLevelPage(BrokerageLevelPageReqVO pageReqVO) { + return brokerageLevelMapper.selectPage(pageReqVO); + } + + private void validateBrokerageLevelExistsById(Long id) { + if (brokerageLevelMapper.selectById(id) == null) { + throw exception(BROKERAGE_LEVEL_NOT_EXISTS); + } + } + + + private void validateBrokerageLevelExistsByName(String levelName) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(BrokerageLevelDO::getLevelName, levelName); + lambdaQueryWrapper.eq(BrokerageLevelDO::getDeleted, 0); + if (brokerageLevelMapper.selectOne(lambdaQueryWrapper) != null) { + throw exception(BROKERAGE_LEVEL_ALREADY_EXISTS); + } + + } + + //校验属性字段为空 + private void validateBrokerageLevelNullProperties(BrokerageLevelSaveReqVO levelSaveReqVO) { + if (levelSaveReqVO.getLevel() == null) { + throw exception(BROKERAGE_LEVEL_NOT_EXISTS); + } + if (levelSaveReqVO.getLevelName() == null) { + throw exception(BROKERAGE_LEVEL_LEVELNAME_NOTEXISTS); + } + + if (levelSaveReqVO.getBaseConfig() == null) { + throw exception(BROKERAGE_LEVEL_BASECONFIG_NOTEXISTS); + } + + if (levelSaveReqVO.getUpgradeConfig() == null) { + throw exception(BROKERAGE_LEVEL_UPGRADECONFIG_NOTEXISTS); + } + + if (levelSaveReqVO.getDowngradeConfig() == null) { + throw exception(BROKERAGE_LEVEL_DOWNGRADECONFIG_NOTEXISTS); + } + + + } + + private void validateJson(BrokerageLevelSaveReqVO levelSaveReqVO) { + ObjectMapper objectMapper = new ObjectMapper(); + try { + if (levelSaveReqVO.getBaseConfig() != null) { + objectMapper.readValue(levelSaveReqVO.getBaseConfig(), Object.class); + } + if (levelSaveReqVO.getUpgradeConfig() != null) { + objectMapper.readValue(levelSaveReqVO.getUpgradeConfig(), Object.class); + } + if (levelSaveReqVO.getDowngradeConfig() != null) { + objectMapper.readValue(levelSaveReqVO.getDowngradeConfig(), Object.class); + } + } catch (JsonProcessingException e) { + throw exception(JSON_FORMATCHECK_FAIL); + } + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryService.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryService.java new file mode 100644 index 000000000..fc74a7da2 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryService.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragelevelhistory; + +import java.util.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import javax.validation.Valid; + +/** + * 等级变更历史记录 Service 接口 + * + * @author admin + */ +public interface BrokerageLevelhistoryService { + + /** + * 创建等级变更历史记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBrokerageLevelhistory(@Valid BrokerageLevelhistorySaveReqVO createReqVO); + + /** + * 更新等级变更历史记录 + * + * @param updateReqVO 更新信息 + */ + void updateBrokerageLevelhistory(@Valid BrokerageLevelhistorySaveReqVO updateReqVO); + + /** + * 删除等级变更历史记录 + * + * @param id 编号 + */ + void deleteBrokerageLevelhistory(Long id); + + /** + * 获得等级变更历史记录 + * + * @param id 编号 + * @return 等级变更历史记录 + */ + BrokerageLevelhistoryRespVO getBrokerageLevelhistory(Long id); + + /** + * 获得等级变更历史记录分页 + * + * @param pageReqVO 分页查询 + * @return 等级变更历史记录分页 + */ + PageResult getBrokerageLevelhistoryPage(BrokerageLevelhistoryPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryServiceImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryServiceImpl.java new file mode 100644 index 000000000..9de38a6c0 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokeragelevelhistory/BrokerageLevelhistoryServiceImpl.java @@ -0,0 +1,168 @@ +package cn.iocoder.yudao.module.hsfx.service.brokeragelevelhistory; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser.BrokerageUserDO; +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevel.BrokerageLevelMapper; +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokerageuser.BrokerageUserMapper; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokeragelevelhistory.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevelhistory.BrokerageLevelhistoryMapper; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.hsfx.enums.ErrorCodeConstants.BROKERAGE_LEVELHISTORY_NOT_EXISTS; + +/** + * 等级变更历史记录 Service 实现类 + * + * @author admin + */ +@Service +@Validated +public class BrokerageLevelhistoryServiceImpl implements BrokerageLevelhistoryService { + + @Resource + private BrokerageLevelhistoryMapper brokerageLevelhistoryMapper; + + @Resource + private BrokerageUserMapper brokerageUserMapper; + + @Autowired + private MemberUserApi memberUserApi; + + @Autowired + private BrokerageLevelMapper levelMapper; + + @Override + @Transactional + public Long createBrokerageLevelhistory(BrokerageLevelhistorySaveReqVO createReqVO) { + // 插入 + BrokerageLevelhistoryDO brokerageLevelhistory = BeanUtils.toBean(createReqVO, BrokerageLevelhistoryDO.class); + brokerageLevelhistoryMapper.insert(brokerageLevelhistory); + // 返回 + return brokerageLevelhistory.getId(); + } + + @Override + @Transactional + public void updateBrokerageLevelhistory(BrokerageLevelhistorySaveReqVO updateReqVO) { + // 校验存在 + validateBrokerageLevelhistoryExists(updateReqVO.getId()); + // 更新 + BrokerageLevelhistoryDO updateObj = BeanUtils.toBean(updateReqVO, BrokerageLevelhistoryDO.class); + brokerageLevelhistoryMapper.updateById(updateObj); + } + + @Override + @Transactional + public void deleteBrokerageLevelhistory(Long id) { + // 校验存在 + validateBrokerageLevelhistoryExists(id); + // 删除 + brokerageLevelhistoryMapper.deleteById(id); + } + + private void validateBrokerageLevelhistoryExists(Long id) { + if (brokerageLevelhistoryMapper.selectById(id) == null) { + throw exception(BROKERAGE_LEVELHISTORY_NOT_EXISTS); + } + } + + @Override + public BrokerageLevelhistoryRespVO getBrokerageLevelhistory(Long id) { + if (brokerageLevelhistoryMapper.selectById(id) == null) { + return null; + } + BrokerageLevelhistoryDO levelhistoryDO = brokerageLevelhistoryMapper.selectById(id); + Long brokerageUserId = levelhistoryDO.getBrokerageUserId(); + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(brokerageUserId); + CommonResult memberUserResult = memberUserApi.getUser(brokerageUserDO.getMemberUserId()); + BrokerageLevelhistoryRespVO respVO = new BrokerageLevelhistoryRespVO(); + BeanUtils.copyProperties(levelhistoryDO, respVO); + if (memberUserResult.getData() != null) { + respVO.setBrokerageMemberNickName(memberUserResult.getData().getNickname()); + } + respVO.setBrokerageUserId(brokerageUserId); + + //获取初始等级信息 + Long initLevelId = levelhistoryDO.getInitLevelId(); + BrokerageLevelDO initLevelVo = levelMapper.selectById(initLevelId); + respVO.setInitLevelId(initLevelId); + if (initLevelVo != null) { + respVO.setInitLevelName(initLevelVo.getLevelName()); + } + + //获取目标等级信息 + Long toLevelId = levelhistoryDO.getToLevelId(); + BrokerageLevelDO toLevelDO = levelMapper.selectById(toLevelId); + respVO.setToLevelId(toLevelId); + if (toLevelDO != null) { + respVO.setToLevelName(toLevelDO.getLevelName()); + } + + return respVO; + } + + @Override + public PageResult getBrokerageLevelhistoryPage(BrokerageLevelhistoryPageReqVO pageReqVO) { + PageResult result = new PageResult<>(); + PageResult historyDOPageResult = brokerageLevelhistoryMapper.selectPage(pageReqVO); + result.setTotal(historyDOPageResult.getTotal());//总量 + //遍历获取其他信息 + List levelhistoryDOList = historyDOPageResult.getList(); + List respVOList = new ArrayList(); + for (int i = 0; i < levelhistoryDOList.size(); i++) { + //获取会员信息 + //先获取分销商id 再去查询会员id + BrokerageLevelhistoryDO brokerageLevelhistoryDO = levelhistoryDOList.get(i); + Long brokerageUserId = brokerageLevelhistoryDO.getBrokerageUserId(); + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(brokerageUserId); + if (brokerageUserDO == null) { + continue; + } + CommonResult memberUserResult = memberUserApi.getUser(brokerageUserDO.getMemberUserId()); + BrokerageLevelhistoryRespVO respVO = new BrokerageLevelhistoryRespVO(); + BeanUtils.copyProperties(brokerageLevelhistoryDO, respVO); + if (memberUserResult.getData() != null) { + respVO.setBrokerageMemberNickName(memberUserResult.getData().getNickname()); + } + respVO.setBrokerageUserId(brokerageUserId); + + //获取初始等级信息 + Long initLevelId = brokerageLevelhistoryDO.getInitLevelId(); + BrokerageLevelDO initLevelVo = levelMapper.selectById(initLevelId); + respVO.setInitLevelId(initLevelId); + if (initLevelVo != null) { + respVO.setInitLevelName(initLevelVo.getLevelName()); + } + + //获取目标等级信息 + Long toLevelId = brokerageLevelhistoryDO.getToLevelId(); + BrokerageLevelDO toLevelDO = levelMapper.selectById(toLevelId); + respVO.setToLevelId(toLevelId); + if (toLevelDO != null) { + respVO.setToLevelName(toLevelDO.getLevelName()); + } + respVOList.add(respVO); + } + +// return historyDOPageResult; + result.setList(respVOList); + return result; + } + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserService.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserService.java new file mode 100644 index 000000000..474ca2b83 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserService.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.hsfx.service.brokerageuser; + +import java.util.*; +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser.BrokerageUserDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +import javax.validation.Valid; + +/** + * 分销用户 Service 接口 + * + * @author admin + */ +public interface BrokerageUserService { + + /** + * 创建分销用户 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBrokerageUser(@Valid BrokerageUserSaveReqVO createReqVO); + + /** + * 更新分销用户 + * + * @param updateReqVO 更新信息 + */ + void updateBrokerageUser(@Valid BrokerageUserSaveReqVO updateReqVO); + + /** + * 删除分销用户 + * + * @param id 编号 + */ + void deleteBrokerageUser(Long id); + + /** + * 获得分销用户 + * + * @param id 编号 + * @return 分销用户 + */ + BrokerageUserPageResVO getBrokerageUser(Long id); + + /** + * 获得分销用户分页 + * + * @param pageReqVO 分页查询 + * @return 分销用户分页 + */ + PageResult getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserServiceImpl.java b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserServiceImpl.java new file mode 100644 index 000000000..78e3f0454 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/java/cn/iocoder/yudao/module/hsfx/service/brokerageuser/BrokerageUserServiceImpl.java @@ -0,0 +1,235 @@ +package cn.iocoder.yudao.module.hsfx.service.brokerageuser; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevel.BrokerageLevelDO; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokeragelevelhistory.BrokerageLevelhistoryDO; +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevel.BrokerageLevelMapper; +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokeragelevelhistory.BrokerageLevelhistoryMapper; +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import lombok.val; +import org.apache.commons.lang3.ObjectUtils; +import org.checkerframework.checker.units.qual.C; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +import cn.iocoder.yudao.module.hsfx.controller.admin.brokerageuser.vo.*; +import cn.iocoder.yudao.module.hsfx.dal.dataobject.brokerageuser.BrokerageUserDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.hsfx.dal.mysql.brokerageuser.BrokerageUserMapper; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.hsfx.enums.ErrorCodeConstants.*; + +/** + * 分销用户 Service 实现类 + * + * @author admin + */ +@Service +@Validated +public class BrokerageUserServiceImpl implements BrokerageUserService { + + @Resource + private BrokerageUserMapper brokerageUserMapper; + + @Autowired + private BrokerageLevelMapper levelMapper; + + @Autowired + private MemberUserApi memberUserApi; + + @Resource + private BrokerageLevelhistoryMapper historyMapper; + + @Override + @Transactional + public Long createBrokerageUser(BrokerageUserSaveReqVO createReqVO) { + //校验会员是否存在 + validateMemberUserExists(createReqVO.getMemberUserId()); + //校验分销等级是否存在 + validateLevelExists(createReqVO.getLevelId()); + //校验上级分销商是否存在 +// BrokerageUserDO parentBrokerageUser = getBrokerageUser(createReqVO.getParentId()); + BrokerageUserDO parentBrokerageUser = brokerageUserMapper.selectById(createReqVO.getParentId()); + if (parentBrokerageUser == null) { + throw exception(PARENT_BROKERAGE_USER_NOT_EXISTS); + } + //校验是否已经存在 + validateBrokerUserExists(createReqVO.getMemberUserId()); + // 插入 + BrokerageUserDO brokerageUser = BeanUtils.toBean(createReqVO, BrokerageUserDO.class); + brokerageUser.setIsEnable(0); + brokerageUser.setDeleted(false); + brokerageUserMapper.insert(brokerageUser); + // 返回 + return brokerageUser.getId(); + } + + @Override + @Transactional + public void updateBrokerageUser(BrokerageUserSaveReqVO updateReqVO) { + // 校验存在 +// validateBrokerageUserExists(updateReqVO.getId()); + BrokerageUserDO oriUser = brokerageUserMapper.selectById(updateReqVO.getId()); + if (oriUser == null) { + throw exception(BROKERAGE_USER_NOT_EXISTS); + } + //校验数据库会员id与输入会员id是否一致 + if (!oriUser.getMemberUserId().equals(updateReqVO.getMemberUserId())) { + throw exception(BROKERAGE_USER_MEMBER_MISMATCH); + } + //校验会员是否存在 + validateMemberUserExists(updateReqVO.getMemberUserId()); + //校验等级是否存在 + validateLevelExists(updateReqVO.getLevelId()); + //校验上级会员是否存在 + validateBrokerageUserExists(updateReqVO.getId()); + + + //等级变更记录保存 当两个等级值不一致的时候执行 + if (oriUser.getLevelId() != updateReqVO.getLevelId()) { + BrokerageLevelhistoryDO brokerageLevelhistoryDO = new BrokerageLevelhistoryDO(); + brokerageLevelhistoryDO.setBrokerageUserId(updateReqVO.getId());//分销商id + brokerageLevelhistoryDO.setInitLevelId(oriUser.getLevelId());//初始等级 + brokerageLevelhistoryDO.setToLevelId(updateReqVO.getLevelId());//目标等级id + brokerageLevelhistoryDO.setDeleted(false); + historyMapper.insert(brokerageLevelhistoryDO); + } + // 更新 + BrokerageUserDO updateObj = BeanUtils.toBean(updateReqVO, BrokerageUserDO.class); + brokerageUserMapper.updateById(updateObj); + } + + @Override + @Transactional + public void deleteBrokerageUser(Long id) { + // 校验存在 + validateBrokerageUserExists(id); + // 删除 + brokerageUserMapper.deleteById(id); + } + + + @Override + public BrokerageUserPageResVO getBrokerageUser(Long id) { + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(id); + //校验存在 + if (brokerageUserDO == null) { + return null; + } + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(BrokerageUserDO.class) + .leftJoin(BrokerageLevelDO.class, BrokerageLevelDO::getId, BrokerageUserDO::getLevelId) + .select(BrokerageLevelDO::getLevelName) + .select(BrokerageLevelDO::getId) + .eq(BrokerageUserDO::getId, id); + BrokerageUserPageResVO brokerageUserPageResVO = brokerageUserMapper.selectJoinOne(BrokerageUserPageResVO.class, wrapper); + BrokerageUserDO parentUserDo = brokerageUserMapper.selectById(brokerageUserPageResVO.getParentId());//上级分销商信息 + brokerageUserPageResVO.setParentId(parentUserDo.getId()); + CommonResult parentMemberUserResult = memberUserApi.getUser(parentUserDo.getMemberUserId()); + if (parentMemberUserResult.getData() != null) { + brokerageUserPageResVO.setParentMemberNickName(parentMemberUserResult.getData().getNickname()); + brokerageUserPageResVO.setParentMemberUserId(parentMemberUserResult.getData().getId()); + } + CommonResult memberUserResult = memberUserApi.getUser(brokerageUserPageResVO.getMemberUserId()); + if (memberUserResult.getData() != null) { + brokerageUserPageResVO.setNickName(memberUserResult.getData().getNickname()); + brokerageUserPageResVO.setPhone(memberUserResult.getData().getMobile()); + } + return brokerageUserPageResVO; + } + + @Override + public PageResult getBrokerageUserPage(BrokerageUserPageReqVO pageReqVO) { + + Page page = new Page(1, 10); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(BrokerageUserDO.class) +// .select(BrokerageLevelDO::getLevelName) +// .select(BrokerageLevelDO::getId) + .select(BrokerageLevelDO::getLevelName) + .select(BrokerageLevelDO::getId) + .leftJoin(BrokerageLevelDO.class, BrokerageLevelDO::getId, BrokerageUserDO::getLevelId); + PageResult brokerageLevelDOPageResult = brokerageUserMapper.selectJoinPage(new PageParam(), BrokerageUserPageResVO.class, wrapper); + List list = brokerageLevelDOPageResult.getList(); + + for (int i = 0; i < list.size(); i++) { + BrokerageUserPageResVO brokerageUserPageResVO = list.get(i); + Long parentId = brokerageUserPageResVO.getParentId(); + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectById(parentId); + brokerageUserPageResVO.setParentMemberUserId(brokerageUserDO.getMemberUserId()); + list.set(i, brokerageUserPageResVO); + } + for (int i = 0; i < list.size(); i++) { + BrokerageUserPageResVO brokerageUserPageResVO = list.get(i); + CommonResult memberUserResult = memberUserApi.getUser(brokerageUserPageResVO.getMemberUserId()); + if (memberUserResult.getData() != null) { + brokerageUserPageResVO.setNickName(memberUserResult.getData().getNickname()); + brokerageUserPageResVO.setPhone(memberUserResult.getData().getMobile()); + } + CommonResult memberParentUserResult = memberUserApi.getUser(brokerageUserPageResVO.getParentMemberUserId()); + if (memberParentUserResult.getData() != null) { + brokerageUserPageResVO.setParentMemberNickName(memberParentUserResult.getData().getNickname()); + } + list.set(i, brokerageUserPageResVO); + } + brokerageLevelDOPageResult.setList(list); + return brokerageLevelDOPageResult; + } + + + //校验分销用户是否存在 + private void validateBrokerageUserExists(Long id) { + if (brokerageUserMapper.selectById(id) == null) { + throw exception(BROKERAGE_USER_NOT_EXISTS); + } + } + + //校验会员是否存在 + private void validateMemberUserExists(Long memberUserId) { + CommonResult userResult = memberUserApi.getUser(memberUserId); + System.out.println(userResult); + if (userResult.getData() == null) { + throw exception(MEMBER_USER_NOT_EXISTS); + } + } + + //校验分销等级是否存在 + private void validateLevelExists(Long levelId) { + BrokerageLevelDO levelDO = levelMapper.selectById(levelId); + if (levelDO == null) { + throw exception(BROKERAGE_LEVEL_NOT_EXISTS); + } + } + + private void validateBrokerUserExists(Long memberUserId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(BrokerageUserDO::getMemberUserId, memberUserId); + BrokerageUserDO brokerageUserDO = brokerageUserMapper.selectOne(lambdaQueryWrapper); + if (brokerageUserDO != null) { + throw exception(BROKERAGE_USER_ALREADY_EXISTS); + } + } + + private void validateBrokerageUserUnique() { + + } + + +} \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragebaseconfig/BrokerageBaseconfigMapper.xml b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragebaseconfig/BrokerageBaseconfigMapper.xml new file mode 100644 index 000000000..4bcb3bc78 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragebaseconfig/BrokerageBaseconfigMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevel/BrokerageLevelMapper.xml b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevel/BrokerageLevelMapper.xml new file mode 100644 index 000000000..c7deda8bd --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevel/BrokerageLevelMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevelhistory/BrokerageLevelhistoryMapper.xml b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevelhistory/BrokerageLevelhistoryMapper.xml new file mode 100644 index 000000000..f2db9b2db --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokeragelevelhistory/BrokerageLevelhistoryMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokerageuser/BrokerageUserMapper.xml b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokerageuser/BrokerageUserMapper.xml new file mode 100644 index 000000000..8898b3051 --- /dev/null +++ b/yudao-module-mall/yudao-module-hsfx-biz/src/main/resources/mapper/brokerageuser/BrokerageUserMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file