From 495ce97ce7967feb65938358a2dc2f3c4ce8ca27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E5=A4=9A=E5=AE=9D=E5=AE=9D?= Date: Wed, 7 Jan 2026 10:23:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=8F=82=E4=B8=8E=E7=AE=A1=E7=90=86=E7=9A=84=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=92=8C=E4=BF=AE=E6=94=B9=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/MpAgentEmployeeRelationEntity.java | 7 ++++++ .../AdminAgentEmployeeRelationController.java | 21 ++++++++-------- .../req/AgentEmployeeRelationQueryReq.java | 8 +++--- .../controller/req/AgentEmployeeSaveReq.java | 25 +++++++++++++++++++ .../resp/AgentEmployeeRelationResp.java | 6 +++++ .../AdminAgentEmployeeRelationConvert.java | 3 +++ .../IAdminAgentEmployeeRelationService.java | 8 ++++++ ...AdminAgentEmployeeRelationServiceImpl.java | 19 ++++++++++++-- .../V1.0.2__add_agent_activity_tables.sql | 2 ++ 9 files changed, 83 insertions(+), 16 deletions(-) create mode 100644 seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeSaveReq.java diff --git a/seer-mp/seer-mp-data-module/src/main/java/com/seer/teach/mp/entity/MpAgentEmployeeRelationEntity.java b/seer-mp/seer-mp-data-module/src/main/java/com/seer/teach/mp/entity/MpAgentEmployeeRelationEntity.java index 38065cc..a86bea8 100644 --- a/seer-mp/seer-mp-data-module/src/main/java/com/seer/teach/mp/entity/MpAgentEmployeeRelationEntity.java +++ b/seer-mp/seer-mp-data-module/src/main/java/com/seer/teach/mp/entity/MpAgentEmployeeRelationEntity.java @@ -33,6 +33,13 @@ public class MpAgentEmployeeRelationEntity extends BaseEntity { @TableField("employee_user_id") private Integer employeeUserId; + + @TableField("agent_name") + private String agentName; + + @TableField("employee_name") + private String employeeName; + /** * 员工职位 */ diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/AdminAgentEmployeeRelationController.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/AdminAgentEmployeeRelationController.java index 295c94a..790ea34 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/AdminAgentEmployeeRelationController.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/AdminAgentEmployeeRelationController.java @@ -6,20 +6,14 @@ import com.seer.teach.common.ResultBean; import com.seer.teach.common.annotation.LogPrint; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationQueryReq; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationReq; +import com.seer.teach.mp.admin.controller.req.AgentEmployeeSaveReq; import com.seer.teach.mp.admin.controller.resp.AgentEmployeeRelationResp; import com.seer.teach.mp.admin.service.IAdminAgentEmployeeRelationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @LogPrint @RequiredArgsConstructor @@ -37,10 +31,17 @@ public class AdminAgentEmployeeRelationController { return ResultBean.success(agentEmployeeRelationService.pageList(query)); } - @Operation(summary = "创建或更新代理商员工关联") + @Operation(summary = "新增代理商员工关联") @PostMapping("/save") @SaCheckPermission("mp:admin:agent:employee:save") - public ResultBean save(@Valid @RequestBody AgentEmployeeRelationReq request) { + public ResultBean save(@RequestBody @Validated AgentEmployeeSaveReq request) { + return ResultBean.success(agentEmployeeRelationService.save(request)); + } + + @Operation(summary = "更新代理商员工关联") + @PostMapping("/update") + @SaCheckPermission("mp:admin:agent:employee:update") + public ResultBean update(@RequestBody @Validated AgentEmployeeRelationReq request) { return ResultBean.success(agentEmployeeRelationService.saveOrUpdateRelation(request)); } diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeRelationQueryReq.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeRelationQueryReq.java index dd9a301..a3944ac 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeRelationQueryReq.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeRelationQueryReq.java @@ -8,11 +8,11 @@ import lombok.Data; @Data public class AgentEmployeeRelationQueryReq extends PageRequest { - @Schema(description = "代理商ID") - private Integer agentId; + @Schema(description = "代理商名称") + private String agentName; - @Schema(description = "员工用户ID") - private Integer employeeUserId; + @Schema(description = "员工名称") + private String employeeName; @Schema(description = "员工状态:0-禁用,1-启用") private Integer status; diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeSaveReq.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeSaveReq.java new file mode 100644 index 0000000..067adc9 --- /dev/null +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/req/AgentEmployeeSaveReq.java @@ -0,0 +1,25 @@ +package com.seer.teach.mp.admin.controller.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +@Schema(name = "AgentEmployeeSaveReq", description = "新增代理商员工请求参数") +public class AgentEmployeeSaveReq { + + + @Schema(description = "代理商名称") + @NotNull(message = "代理商名称不能为空") + private String agentName; + + @Schema(description = "员工名称") + @NotNull(message = "员工名称不能为空") + private String employeeName; + + @Schema(description = "员工职位") + private String position; + + @Schema(description = "员工状态:0-禁用,1-启用") + private Integer status = 1; +} diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/resp/AgentEmployeeRelationResp.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/resp/AgentEmployeeRelationResp.java index 99e19c0..9cf716e 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/resp/AgentEmployeeRelationResp.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/controller/resp/AgentEmployeeRelationResp.java @@ -14,9 +14,15 @@ public class AgentEmployeeRelationResp { @Schema(description = "代理商ID") private Integer agentId; + @Schema(description = "代理商名称") + private String agentName; + @Schema(description = "员工用户ID") private Integer employeeUserId; + @Schema(description = "员工名称") + private String employeeName; + @Schema(description = "员工职位") private String position; diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/convert/AdminAgentEmployeeRelationConvert.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/convert/AdminAgentEmployeeRelationConvert.java index 8536d55..eec8f9b 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/convert/AdminAgentEmployeeRelationConvert.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/convert/AdminAgentEmployeeRelationConvert.java @@ -2,6 +2,7 @@ package com.seer.teach.mp.admin.convert; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationQueryReq; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationReq; +import com.seer.teach.mp.admin.controller.req.AgentEmployeeSaveReq; import com.seer.teach.mp.admin.controller.resp.AgentEmployeeRelationResp; import com.seer.teach.mp.entity.MpAgentEmployeeRelationEntity; import org.mapstruct.Mapper; @@ -21,4 +22,6 @@ public interface AdminAgentEmployeeRelationConvert { AgentEmployeeRelationResp convertToResp(MpAgentEmployeeRelationEntity entity); List convertToRespList(List mpAgentEmployeeRelationEntities); + + MpAgentEmployeeRelationEntity convert(AgentEmployeeSaveReq request); } \ No newline at end of file diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/IAdminAgentEmployeeRelationService.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/IAdminAgentEmployeeRelationService.java index dcc93c9..c6d52b7 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/IAdminAgentEmployeeRelationService.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/IAdminAgentEmployeeRelationService.java @@ -1,6 +1,7 @@ package com.seer.teach.mp.admin.service; import com.seer.teach.common.PageListBean; +import com.seer.teach.mp.admin.controller.req.AgentEmployeeSaveReq; import com.seer.teach.mp.admin.controller.resp.AgentEmployeeRelationResp; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationQueryReq; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationReq; @@ -56,4 +57,11 @@ public interface IAdminAgentEmployeeRelationService { * @return 员工关联列表 */ List getEmployeeRelationsByAgentId(Integer agentId); + + /** + * 新增代理商员工关联(管理端) + * @param request 新增代理商员工关联请求对象 + * @return 新增是否成功 + */ + boolean save(AgentEmployeeSaveReq request); } \ No newline at end of file diff --git a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/impl/AdminAgentEmployeeRelationServiceImpl.java b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/impl/AdminAgentEmployeeRelationServiceImpl.java index a37ac75..8b5cd8b 100644 --- a/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/impl/AdminAgentEmployeeRelationServiceImpl.java +++ b/seer-mp/seer-mp-service-admin/src/main/java/com/seer/teach/mp/admin/service/impl/AdminAgentEmployeeRelationServiceImpl.java @@ -3,14 +3,19 @@ package com.seer.teach.mp.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.seer.teach.common.PageListBean; +import com.seer.teach.common.enums.ResultCodeEnum; +import com.seer.teach.common.utils.AssertUtils; import com.seer.teach.common.utils.PageConverterUtils; +import com.seer.teach.mp.admin.controller.req.AgentEmployeeSaveReq; import com.seer.teach.mp.admin.service.IAdminAgentEmployeeRelationService; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationQueryReq; import com.seer.teach.mp.admin.controller.req.AgentEmployeeRelationReq; import com.seer.teach.mp.admin.controller.resp.AgentEmployeeRelationResp; import com.seer.teach.mp.admin.convert.AdminAgentEmployeeRelationConvert; import com.seer.teach.mp.entity.MpAgentEmployeeRelationEntity; +import com.seer.teach.mp.entity.MpAgentEntity; import com.seer.teach.mp.service.IMpAgentEmployeeRelationService; +import com.seer.teach.mp.service.IMpAgentService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -31,12 +36,14 @@ public class AdminAgentEmployeeRelationServiceImpl implements IAdminAgentEmploye private final IMpAgentEmployeeRelationService agentEmployeeRelationService; + private final IMpAgentService mpAgentService; + @Override public PageListBean pageList(AgentEmployeeRelationQueryReq query) { Page pageParm = new Page<>(query.getPageNo(), query.getPageSize()); var pageResult = agentEmployeeRelationService.page(pageParm, new LambdaQueryWrapper<>(MpAgentEmployeeRelationEntity.class) - .eq(Objects.nonNull(query.getAgentId()), MpAgentEmployeeRelationEntity::getAgentId, query.getAgentId()) - .eq(Objects.nonNull(query.getEmployeeUserId()), MpAgentEmployeeRelationEntity::getEmployeeUserId, query.getEmployeeUserId()) + .like(Objects.nonNull(query.getAgentName()), MpAgentEmployeeRelationEntity::getAgentName, query.getAgentName()) + .like(Objects.nonNull(query.getEmployeeName()), MpAgentEmployeeRelationEntity::getEmployeeName, query.getEmployeeName()) .eq(Objects.nonNull(query.getStatus()), MpAgentEmployeeRelationEntity::getStatus, query.getStatus())); return PageConverterUtils.convertPageListBean(pageResult, AdminAgentEmployeeRelationConvert.INSTANCE::convertToRespList); @@ -66,4 +73,12 @@ public class AdminAgentEmployeeRelationServiceImpl implements IAdminAgentEmploye .map(AdminAgentEmployeeRelationConvert.INSTANCE::convertToResp) .toList(); } + + @Override + public boolean save(AgentEmployeeSaveReq request) { + AssertUtils.isNull(request.getAgentName(), ResultCodeEnum.AGENT_EMPLOYEE_ALREADY_EXISTS); + MpAgentEmployeeRelationEntity relation = AdminAgentEmployeeRelationConvert.INSTANCE.convert(request); + Integer agentId = mpAgentService.lambdaQuery().eq(MpAgentEntity::getAgentName, request.getAgentName()).one().getId(); + return true; + } } \ No newline at end of file diff --git a/seer-mp/seer-mp-service-app-bootstrap/src/main/resources/db/mysql/V1.0.2__add_agent_activity_tables.sql b/seer-mp/seer-mp-service-app-bootstrap/src/main/resources/db/mysql/V1.0.2__add_agent_activity_tables.sql index d19fbab..7eba33a 100644 --- a/seer-mp/seer-mp-service-app-bootstrap/src/main/resources/db/mysql/V1.0.2__add_agent_activity_tables.sql +++ b/seer-mp/seer-mp-service-app-bootstrap/src/main/resources/db/mysql/V1.0.2__add_agent_activity_tables.sql @@ -25,6 +25,8 @@ CREATE TABLE `mp_agent_employee_relation` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '关联ID', `agent_id` int NOT NULL COMMENT '代理商ID(对应user表的ID)', `employee_user_id` int NOT NULL COMMENT '员工用户ID(对应user表的ID)', + `agent_name` varchar(50) COMMENT '代理商名称', + `employee_name` varchar(50) COMMENT '员工名称', `position` varchar(50) COMMENT '员工职位', `status` tinyint NOT NULL DEFAULT '1' COMMENT '员工状态:0-禁用,1-启用', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',