增加代理商,活动,代理商员工关,代理商活动参与者相关功能
This commit is contained in:
parent
893a441d6c
commit
1c8a002d95
@ -21,7 +21,7 @@ import java.time.LocalDateTime;
|
|||||||
@Setter
|
@Setter
|
||||||
@TableName("mp_activities")
|
@TableName("mp_activities")
|
||||||
@Schema(name = "MpAgentActivityEntity对象", description = "活动表")
|
@Schema(name = "MpAgentActivityEntity对象", description = "活动表")
|
||||||
public class MpAgentActivityEntity extends BaseEntity {
|
public class MpActivityEntity extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 活动名称,如千人助学计划
|
* 活动名称,如千人助学计划
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.seer.teach.mp.mapper;
|
package com.seer.teach.mp.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
* @since 2025-12-29
|
* @since 2025-12-29
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface MpAgentActivityMapper extends BaseMapper<MpAgentActivityEntity> {
|
public interface MpAgentActivityMapper extends BaseMapper<MpActivityEntity> {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -4,10 +4,10 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|||||||
import com.seer.teach.common.PageListBean;
|
import com.seer.teach.common.PageListBean;
|
||||||
import com.seer.teach.common.ResultBean;
|
import com.seer.teach.common.ResultBean;
|
||||||
import com.seer.teach.common.annotation.LogPrint;
|
import com.seer.teach.common.annotation.LogPrint;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityQueryReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityQueryReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityReq;
|
||||||
import com.seer.teach.mp.admin.controller.resp.AgentActivityResp;
|
import com.seer.teach.mp.admin.controller.resp.AdminActivityResp;
|
||||||
import com.seer.teach.mp.admin.service.IAdminAgentActivityService;
|
import com.seer.teach.mp.admin.service.IAdminActivityService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@ -23,27 +23,27 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@LogPrint
|
@LogPrint
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@Tag(name = "管理端 - 代理商活动")
|
@Tag(name = "管理端 - 活动")
|
||||||
@RequestMapping("/mp/agent/activity")
|
@RequestMapping("/mp/agent/activity")
|
||||||
public class AdminAgentActivityController {
|
public class AdminActivityController {
|
||||||
|
|
||||||
private final IAdminAgentActivityService agentActivityService;
|
private final IAdminActivityService agentActivityService;
|
||||||
|
|
||||||
@Operation(summary = "代理商活动列表")
|
@Operation(summary = "活动列表")
|
||||||
@GetMapping("/page-list")
|
@GetMapping("/page-list")
|
||||||
@SaCheckPermission("mp:admin:agent:activity:list")
|
@SaCheckPermission("mp:admin:agent:activity:list")
|
||||||
public ResultBean<PageListBean<AgentActivityResp>> pageList(AgentActivityQueryReq query) {
|
public ResultBean<PageListBean<AdminActivityResp>> pageList(MpActivityQueryReq query) {
|
||||||
return ResultBean.success(agentActivityService.pageList(query));
|
return ResultBean.success(agentActivityService.pageList(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "创建或更新代理商活动")
|
@Operation(summary = "创建或更新活动")
|
||||||
@PostMapping("/save")
|
@PostMapping("/save")
|
||||||
@SaCheckPermission("mp:admin:agent:activity:save")
|
@SaCheckPermission("mp:admin:agent:activity:save")
|
||||||
public ResultBean<Boolean> save(@Valid @RequestBody AgentActivityReq request) {
|
public ResultBean<Boolean> save(@Valid @RequestBody MpActivityReq request) {
|
||||||
return ResultBean.success(agentActivityService.saveOrUpdateActivity(request));
|
return ResultBean.success(agentActivityService.saveOrUpdateActivity(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "删除代理商活动")
|
@Operation(summary = "删除活动")
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
@SaCheckPermission("mp:admin:agent:activity:delete")
|
@SaCheckPermission("mp:admin:agent:activity:delete")
|
||||||
public ResultBean<Boolean> delete(@PathVariable Integer id) {
|
public ResultBean<Boolean> delete(@PathVariable Integer id) {
|
||||||
@ -53,8 +53,8 @@ public class AdminAgentActivityController {
|
|||||||
@Operation(summary = "详情")
|
@Operation(summary = "详情")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
@SaCheckPermission("mp:admin:agent:activity:get")
|
@SaCheckPermission("mp:admin:agent:activity:get")
|
||||||
public ResultBean<AgentActivityResp> get(@PathVariable Integer id) {
|
public ResultBean<AdminActivityResp> get(@PathVariable Integer id) {
|
||||||
AgentActivityResp result = agentActivityService.getById(id);
|
AdminActivityResp result = agentActivityService.getById(id);
|
||||||
return ResultBean.success(result);
|
return ResultBean.success(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4,9 +4,9 @@ import com.seer.teach.common.request.PageRequest;
|
|||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Schema(name = "AgentActivityQueryReq", description = "代理商活动查询请求参数")
|
@Schema(name = "MpActivityQueryReq", description = "代理商活动查询请求参数")
|
||||||
@Data
|
@Data
|
||||||
public class AgentActivityQueryReq extends PageRequest {
|
public class MpActivityQueryReq extends PageRequest {
|
||||||
|
|
||||||
@Schema(description = "活动名称")
|
@Schema(description = "活动名称")
|
||||||
private String activityName;
|
private String activityName;
|
||||||
@ -7,9 +7,9 @@ import jakarta.validation.constraints.NotBlank;
|
|||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(name = "AgentActivityReq", description = "代理商活动请求参数")
|
@Schema(name = "MpActivityReq", description = "代理商活动请求参数")
|
||||||
@Data
|
@Data
|
||||||
public class AgentActivityReq {
|
public class MpActivityReq {
|
||||||
|
|
||||||
@Schema(description = "活动ID")
|
@Schema(description = "活动ID")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
@ -5,9 +5,9 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Schema(name = "AgentActivityResp", description = "代理商活动响应参数")
|
@Schema(name = "AdminActivityResp", description = "代理商活动响应参数")
|
||||||
@Data
|
@Data
|
||||||
public class AgentActivityResp {
|
public class AdminActivityResp {
|
||||||
|
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.seer.teach.mp.admin.convert;
|
package com.seer.teach.mp.admin.convert;
|
||||||
|
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityQueryReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityQueryReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityReq;
|
||||||
import com.seer.teach.mp.admin.controller.resp.AgentActivityResp;
|
import com.seer.teach.mp.admin.controller.resp.AdminActivityResp;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
@ -14,11 +14,11 @@ public interface AdminAgentActivityConvert {
|
|||||||
|
|
||||||
AdminAgentActivityConvert INSTANCE = Mappers.getMapper(AdminAgentActivityConvert.class);
|
AdminAgentActivityConvert INSTANCE = Mappers.getMapper(AdminAgentActivityConvert.class);
|
||||||
|
|
||||||
MpAgentActivityEntity convert(AgentActivityReq req);
|
MpActivityEntity convert(MpActivityReq req);
|
||||||
|
|
||||||
MpAgentActivityEntity convert(AgentActivityQueryReq req);
|
MpActivityEntity convert(MpActivityQueryReq req);
|
||||||
|
|
||||||
AgentActivityResp convertToResp(MpAgentActivityEntity entity);
|
AdminActivityResp convertToResp(MpActivityEntity entity);
|
||||||
|
|
||||||
List<AgentActivityResp> convertToRespList(List<MpAgentActivityEntity> list);
|
List<AdminActivityResp> convertToRespList(List<MpActivityEntity> list);
|
||||||
}
|
}
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.seer.teach.mp.admin.service;
|
package com.seer.teach.mp.admin.service;
|
||||||
|
|
||||||
import com.seer.teach.common.PageListBean;
|
import com.seer.teach.common.PageListBean;
|
||||||
import com.seer.teach.mp.admin.controller.resp.AgentActivityResp;
|
import com.seer.teach.mp.admin.controller.req.MpActivityQueryReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityQueryReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityReq;
|
import com.seer.teach.mp.admin.controller.resp.AdminActivityResp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -13,7 +13,7 @@ import com.seer.teach.mp.admin.controller.req.AgentActivityReq;
|
|||||||
* @author Lingma
|
* @author Lingma
|
||||||
* @since 2025-12-30
|
* @since 2025-12-30
|
||||||
*/
|
*/
|
||||||
public interface IAdminAgentActivityService {
|
public interface IAdminActivityService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询代理商活动列表(管理端)
|
* 分页查询代理商活动列表(管理端)
|
||||||
@ -21,7 +21,7 @@ public interface IAdminAgentActivityService {
|
|||||||
* @param query 查询条件
|
* @param query 查询条件
|
||||||
* @return 代理商活动分页列表
|
* @return 代理商活动分页列表
|
||||||
*/
|
*/
|
||||||
PageListBean<AgentActivityResp> pageList(AgentActivityQueryReq query);
|
PageListBean<AdminActivityResp> pageList(MpActivityQueryReq query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建或更新代理商活动(管理端)
|
* 创建或更新代理商活动(管理端)
|
||||||
@ -29,7 +29,7 @@ public interface IAdminAgentActivityService {
|
|||||||
* @param request 活动请求对象
|
* @param request 活动请求对象
|
||||||
* @return 操作是否成功
|
* @return 操作是否成功
|
||||||
*/
|
*/
|
||||||
boolean saveOrUpdateActivity(AgentActivityReq request);
|
boolean saveOrUpdateActivity(MpActivityReq request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除代理商活动(管理端)
|
* 删除代理商活动(管理端)
|
||||||
@ -45,5 +45,5 @@ public interface IAdminAgentActivityService {
|
|||||||
* @param id 活动ID
|
* @param id 活动ID
|
||||||
* @return 活动详情
|
* @return 活动详情
|
||||||
*/
|
*/
|
||||||
AgentActivityResp getById(Integer id);
|
AdminActivityResp getById(Integer id);
|
||||||
}
|
}
|
||||||
@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.seer.teach.common.PageListBean;
|
import com.seer.teach.common.PageListBean;
|
||||||
import com.seer.teach.common.utils.PageConverterUtils;
|
import com.seer.teach.common.utils.PageConverterUtils;
|
||||||
import com.seer.teach.mp.admin.service.IAdminAgentActivityService;
|
import com.seer.teach.mp.admin.controller.req.MpActivityQueryReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityQueryReq;
|
import com.seer.teach.mp.admin.controller.req.MpActivityReq;
|
||||||
import com.seer.teach.mp.admin.controller.req.AgentActivityReq;
|
import com.seer.teach.mp.admin.controller.resp.AdminActivityResp;
|
||||||
import com.seer.teach.mp.admin.controller.resp.AgentActivityResp;
|
import com.seer.teach.mp.admin.service.IAdminActivityService;
|
||||||
import com.seer.teach.mp.admin.convert.AdminAgentActivityConvert;
|
import com.seer.teach.mp.admin.convert.AdminAgentActivityConvert;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityService;
|
import com.seer.teach.mp.service.IMpActivityService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -27,22 +27,22 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AdminAgentActivityServiceImpl implements IAdminAgentActivityService {
|
public class AdminActivityServiceImpl implements IAdminActivityService {
|
||||||
|
|
||||||
private final IMpAgentActivityService agentActivityService;
|
private final IMpActivityService agentActivityService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageListBean<AgentActivityResp> pageList(AgentActivityQueryReq query) {
|
public PageListBean<AdminActivityResp> pageList(MpActivityQueryReq query) {
|
||||||
Page<MpAgentActivityEntity> page = new Page<>(query.getPageNo(), query.getPageSize());
|
Page<MpActivityEntity> page = new Page<>(query.getPageNo(), query.getPageSize());
|
||||||
var pageResult = agentActivityService.page(page, new LambdaQueryWrapper<>(MpAgentActivityEntity.class)
|
var pageResult = agentActivityService.page(page, new LambdaQueryWrapper<>(MpActivityEntity.class)
|
||||||
.like(StringUtils.isNotBlank(query.getActivityName()), MpAgentActivityEntity::getActivityName, query.getActivityName())
|
.like(StringUtils.isNotBlank(query.getActivityName()), MpActivityEntity::getActivityName, query.getActivityName())
|
||||||
.eq(Objects.nonNull(query.getStatus()), MpAgentActivityEntity::getStatus, query.getStatus()));
|
.eq(Objects.nonNull(query.getStatus()), MpActivityEntity::getStatus, query.getStatus()));
|
||||||
return PageConverterUtils.convertPageListBean(pageResult, AdminAgentActivityConvert.INSTANCE::convertToRespList);
|
return PageConverterUtils.convertPageListBean(pageResult, AdminAgentActivityConvert.INSTANCE::convertToRespList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean saveOrUpdateActivity(AgentActivityReq request) {
|
public boolean saveOrUpdateActivity(MpActivityReq request) {
|
||||||
MpAgentActivityEntity entity = AdminAgentActivityConvert.INSTANCE.convert(request);
|
MpActivityEntity entity = AdminAgentActivityConvert.INSTANCE.convert(request);
|
||||||
return agentActivityService.saveOrUpdateActivity(entity);
|
return agentActivityService.saveOrUpdateActivity(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,8 +52,8 @@ public class AdminAgentActivityServiceImpl implements IAdminAgentActivityService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AgentActivityResp getById(Integer id) {
|
public AdminActivityResp getById(Integer id) {
|
||||||
MpAgentActivityEntity entity = agentActivityService.getById(id);
|
MpActivityEntity entity = agentActivityService.getById(id);
|
||||||
return AdminAgentActivityConvert.INSTANCE.convertToResp(entity);
|
return AdminAgentActivityConvert.INSTANCE.convertToResp(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
-- 创建代理商表
|
||||||
|
CREATE TABLE `mp_agents` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '代理商ID',
|
||||||
|
`agent_name` varchar(255) NOT NULL COMMENT '代理商名称',
|
||||||
|
`agent_code` varchar(100) NOT NULL COMMENT '代理商编码',
|
||||||
|
`agent_level` varchar(50) DEFAULT NULL COMMENT '代理商等级',
|
||||||
|
`contact_name` varchar(100) DEFAULT NULL COMMENT '联系人姓名',
|
||||||
|
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
||||||
|
`address` varchar(500) DEFAULT NULL COMMENT '代理商地址',
|
||||||
|
`status` tinyint NOT NULL DEFAULT '1' COMMENT '代理商状态:0-禁用,1-启用',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE KEY `uk_agent_code` (`agent_code`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商表';
|
||||||
|
|
||||||
|
-- 创建代理商员工关联表
|
||||||
|
CREATE TABLE `mp_agent_employee_relations` (
|
||||||
|
`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)',
|
||||||
|
`position` varchar(50) COMMENT '员工职位',
|
||||||
|
`status` tinyint NOT NULL DEFAULT '1' COMMENT '员工状态:0-禁用,1-启用',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE KEY `uk_agent_employee` (`agent_id`, `employee_user_id`),
|
||||||
|
KEY `idx_agent_id` (`agent_id`),
|
||||||
|
KEY `idx_employee_user_id` (`employee_user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商员工关联表';
|
||||||
|
|
||||||
|
-- 创建活动表
|
||||||
|
CREATE TABLE `mp_activities` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '活动ID',
|
||||||
|
`activity_name` varchar(255) NOT NULL COMMENT '活动名称,如千人助学计划',
|
||||||
|
`description` text COMMENT '活动描述',
|
||||||
|
`start_time` datetime NOT NULL COMMENT '活动开始时间',
|
||||||
|
`end_time` datetime NOT NULL COMMENT '活动结束时间',
|
||||||
|
`status` tinyint NOT NULL DEFAULT '1' COMMENT '活动状态:0-禁用,1-启用',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动表';
|
||||||
|
|
||||||
|
-- 创建代理商活动参与记录表
|
||||||
|
CREATE TABLE `mp_agent_activity_participants` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '参与记录ID',
|
||||||
|
`activity_id` int NOT NULL COMMENT '活动ID',
|
||||||
|
`agent_id` int NOT NULL COMMENT '代理商ID',
|
||||||
|
`parent_id` int NOT NULL COMMENT '家长ID(对应user表的ID)',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||||
|
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
KEY `idx_activity_agent` (`activity_id`, `agent_id`),
|
||||||
|
KEY `idx_parent_id` (`parent_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动参与记录表';
|
||||||
|
|
||||||
|
-- 创建代理商活动操作日志表
|
||||||
|
CREATE TABLE `mp_agent_activity_log` (
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||||||
|
`activity_id` int DEFAULT NULL COMMENT '活动ID',
|
||||||
|
`operator_id` int DEFAULT NULL COMMENT '操作人ID',
|
||||||
|
`operation_type` varchar(50) DEFAULT NULL COMMENT '操作类型',
|
||||||
|
`description` text COMMENT '操作描述',
|
||||||
|
`before_data` text COMMENT '操作前数据(JSON格式)',
|
||||||
|
`after_data` text COMMENT '操作后数据(JSON格式)',
|
||||||
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '逻辑删除标记(0-正常,1-已删除)',
|
||||||
|
`create_by` varchar(20) DEFAULT NULL COMMENT '创建人',
|
||||||
|
`update_by` varchar(20) DEFAULT NULL COMMENT '修改人',
|
||||||
|
`tenant_id` varchar(20) DEFAULT 'Default' COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
KEY `idx_activity_id` (`activity_id`),
|
||||||
|
KEY `idx_operator_id` (`operator_id`),
|
||||||
|
KEY `idx_create_time` (`create_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代理商活动操作日志表';
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.seer.teach.mp.app.controller;
|
package com.seer.teach.mp.app.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
|
||||||
import com.seer.teach.common.PageListBean;
|
import com.seer.teach.common.PageListBean;
|
||||||
import com.seer.teach.common.ResultBean;
|
import com.seer.teach.common.ResultBean;
|
||||||
import com.seer.teach.common.annotation.DecryptionAnnotation;
|
import com.seer.teach.common.annotation.DecryptionAnnotation;
|
||||||
@ -9,17 +8,12 @@ import com.seer.teach.common.annotation.EncryptionAnnotation;
|
|||||||
import com.seer.teach.common.annotation.LogPrint;
|
import com.seer.teach.common.annotation.LogPrint;
|
||||||
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
||||||
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
||||||
import com.seer.teach.mp.app.convert.AppAgentActivityConvert;
|
|
||||||
import com.seer.teach.mp.app.service.IAppAgentActivityService;
|
import com.seer.teach.mp.app.service.IAppAgentActivityService;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityService;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 代理商活动App控制器
|
* 代理商活动App控制器
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package com.seer.teach.mp.app.convert;
|
|||||||
|
|
||||||
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
||||||
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
@ -14,11 +14,11 @@ public interface AppAgentActivityConvert {
|
|||||||
|
|
||||||
AppAgentActivityConvert INSTANCE = Mappers.getMapper(AppAgentActivityConvert.class);
|
AppAgentActivityConvert INSTANCE = Mappers.getMapper(AppAgentActivityConvert.class);
|
||||||
|
|
||||||
MpAgentActivityEntity convert(AppAgentActivityQueryReq req);
|
MpActivityEntity convert(AppAgentActivityQueryReq req);
|
||||||
|
|
||||||
@Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
@Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
AppAgentActivityResp convertToResp(MpAgentActivityEntity entity);
|
AppAgentActivityResp convertToResp(MpActivityEntity entity);
|
||||||
|
|
||||||
List<AppAgentActivityResp> convertToRespList(List<MpAgentActivityEntity> mpAgentActivityEntities);
|
List<AppAgentActivityResp> convertToRespList(List<MpActivityEntity> mpAgentActivityEntities);
|
||||||
}
|
}
|
||||||
@ -1,11 +1,8 @@
|
|||||||
package com.seer.teach.mp.app.service;
|
package com.seer.teach.mp.app.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.seer.teach.common.PageListBean;
|
import com.seer.teach.common.PageListBean;
|
||||||
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
||||||
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@ -10,8 +10,8 @@ import com.seer.teach.mp.app.controller.req.AppAgentActivityQueryReq;
|
|||||||
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
import com.seer.teach.mp.app.controller.resp.AppAgentActivityResp;
|
||||||
import com.seer.teach.mp.app.convert.AppAgentActivityConvert;
|
import com.seer.teach.mp.app.convert.AppAgentActivityConvert;
|
||||||
import com.seer.teach.mp.app.service.IAppAgentActivityService;
|
import com.seer.teach.mp.app.service.IAppAgentActivityService;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityService;
|
import com.seer.teach.mp.service.IMpActivityService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -32,15 +32,15 @@ import java.util.Objects;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AppAgentActivityServiceImpl implements IAppAgentActivityService {
|
public class AppAgentActivityServiceImpl implements IAppAgentActivityService {
|
||||||
|
|
||||||
private final IMpAgentActivityService agentActivityService;
|
private final IMpActivityService agentActivityService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageListBean<AppAgentActivityResp> pageList(AppAgentActivityQueryReq query) {
|
public PageListBean<AppAgentActivityResp> pageList(AppAgentActivityQueryReq query) {
|
||||||
log.info("查询参数:{}", query);
|
log.info("查询参数:{}", query);
|
||||||
IPage<MpAgentActivityEntity> page = new Page<>(query.getPageNo(), query.getPageSize());
|
IPage<MpActivityEntity> page = new Page<>(query.getPageNo(), query.getPageSize());
|
||||||
var pageResult = agentActivityService.page(page, new LambdaQueryWrapper<>(MpAgentActivityEntity.class)
|
var pageResult = agentActivityService.page(page, new LambdaQueryWrapper<>(MpActivityEntity.class)
|
||||||
.like(StringUtils.isNotBlank(query.getActivityName()), MpAgentActivityEntity::getActivityName, query.getActivityName())
|
.like(StringUtils.isNotBlank(query.getActivityName()), MpActivityEntity::getActivityName, query.getActivityName())
|
||||||
.eq(Objects.nonNull(query.getStatus()), MpAgentActivityEntity::getStatus, query.getStatus()));
|
.eq(Objects.nonNull(query.getStatus()), MpActivityEntity::getStatus, query.getStatus()));
|
||||||
if(Objects.isNull(pageResult) || CollectionUtil.isEmpty(pageResult.getRecords())){
|
if(Objects.isNull(pageResult) || CollectionUtil.isEmpty(pageResult.getRecords())){
|
||||||
log.info("查询结果为空");
|
log.info("查询结果为空");
|
||||||
}
|
}
|
||||||
@ -50,7 +50,7 @@ public class AppAgentActivityServiceImpl implements IAppAgentActivityService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AppAgentActivityResp getById(Integer id) {
|
public AppAgentActivityResp getById(Integer id) {
|
||||||
MpAgentActivityEntity entity = agentActivityService.getById(id);
|
MpActivityEntity entity = agentActivityService.getById(id);
|
||||||
return AppAgentActivityConvert.INSTANCE.convertToResp(entity);
|
return AppAgentActivityConvert.INSTANCE.convertToResp(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,7 @@
|
|||||||
package com.seer.teach.mp.cache;
|
package com.seer.teach.mp.cache;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.seer.teach.common.utils.RedisUtil;
|
import com.seer.teach.common.utils.RedisUtil;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -27,12 +26,12 @@ public class MpAgentActivityCache {
|
|||||||
/**
|
/**
|
||||||
* 获取活动详情缓存
|
* 获取活动详情缓存
|
||||||
*/
|
*/
|
||||||
public MpAgentActivityEntity getActivityById(Integer id) {
|
public MpActivityEntity getActivityById(Integer id) {
|
||||||
String key = AGENT_ACTIVITY_PREFIX + id;
|
String key = AGENT_ACTIVITY_PREFIX + id;
|
||||||
String value = redisUtil.get(key);
|
String value = redisUtil.get(key);
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
try {
|
try {
|
||||||
return cn.hutool.json.JSONUtil.toBean(value, MpAgentActivityEntity.class);
|
return cn.hutool.json.JSONUtil.toBean(value, MpActivityEntity.class);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("从缓存获取活动详情失败, id: {}", id, e);
|
log.error("从缓存获取活动详情失败, id: {}", id, e);
|
||||||
}
|
}
|
||||||
@ -43,7 +42,7 @@ public class MpAgentActivityCache {
|
|||||||
/**
|
/**
|
||||||
* 设置活动详情缓存
|
* 设置活动详情缓存
|
||||||
*/
|
*/
|
||||||
public void setActivityById(Integer id, MpAgentActivityEntity entity) {
|
public void setActivityById(Integer id, MpActivityEntity entity) {
|
||||||
String key = AGENT_ACTIVITY_PREFIX + id;
|
String key = AGENT_ACTIVITY_PREFIX + id;
|
||||||
try {
|
try {
|
||||||
String value = cn.hutool.json.JSONUtil.toJsonStr(entity);
|
String value = cn.hutool.json.JSONUtil.toJsonStr(entity);
|
||||||
@ -64,12 +63,12 @@ public class MpAgentActivityCache {
|
|||||||
/**
|
/**
|
||||||
* 获取活动列表缓存
|
* 获取活动列表缓存
|
||||||
*/
|
*/
|
||||||
public List<MpAgentActivityEntity> getActivityList(String keySuffix) {
|
public List<MpActivityEntity> getActivityList(String keySuffix) {
|
||||||
String key = AGENT_ACTIVITY_LIST_PREFIX + keySuffix;
|
String key = AGENT_ACTIVITY_LIST_PREFIX + keySuffix;
|
||||||
String value = redisUtil.get(key);
|
String value = redisUtil.get(key);
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
try {
|
try {
|
||||||
return cn.hutool.json.JSONUtil.toList(value, MpAgentActivityEntity.class);
|
return cn.hutool.json.JSONUtil.toList(value, MpActivityEntity.class);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("从缓存获取活动列表失败, key: {}", key, e);
|
log.error("从缓存获取活动列表失败, key: {}", key, e);
|
||||||
}
|
}
|
||||||
@ -80,7 +79,7 @@ public class MpAgentActivityCache {
|
|||||||
/**
|
/**
|
||||||
* 设置活动列表缓存
|
* 设置活动列表缓存
|
||||||
*/
|
*/
|
||||||
public void setActivityList(String keySuffix, List<MpAgentActivityEntity> entities) {
|
public void setActivityList(String keySuffix, List<MpActivityEntity> entities) {
|
||||||
String key = AGENT_ACTIVITY_LIST_PREFIX + keySuffix;
|
String key = AGENT_ACTIVITY_LIST_PREFIX + keySuffix;
|
||||||
try {
|
try {
|
||||||
String value = cn.hutool.json.JSONUtil.toJsonStr(entities);
|
String value = cn.hutool.json.JSONUtil.toJsonStr(entities);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.seer.teach.mp.service;
|
package com.seer.teach.mp.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -11,7 +11,7 @@ import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
|||||||
* @author Lingma
|
* @author Lingma
|
||||||
* @since 2025-12-29
|
* @since 2025-12-29
|
||||||
*/
|
*/
|
||||||
public interface IMpAgentActivityService extends IService<MpAgentActivityEntity> {
|
public interface IMpActivityService extends IService<MpActivityEntity> {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +20,7 @@ public interface IMpAgentActivityService extends IService<MpAgentActivityEntity>
|
|||||||
* @param entity 活动实体
|
* @param entity 活动实体
|
||||||
* @return 操作是否成功
|
* @return 操作是否成功
|
||||||
*/
|
*/
|
||||||
boolean saveOrUpdateActivity(MpAgentActivityEntity entity);
|
boolean saveOrUpdateActivity(MpActivityEntity entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除代理商活动
|
* 删除代理商活动
|
||||||
@ -2,25 +2,21 @@ package com.seer.teach.mp.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.seer.teach.common.utils.AssertUtils;
|
import com.seer.teach.common.utils.AssertUtils;
|
||||||
import com.seer.teach.mp.cache.MpAgentActivityCache;
|
import com.seer.teach.mp.cache.MpAgentActivityCache;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityEntity;
|
import com.seer.teach.mp.entity.MpActivityEntity;
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityLogEntity;
|
|
||||||
import com.seer.teach.mp.entity.MpAgentActivityParticipantEntity;
|
import com.seer.teach.mp.entity.MpAgentActivityParticipantEntity;
|
||||||
import com.seer.teach.mp.exception.AgentActivityErrorCodeEnum;
|
import com.seer.teach.mp.exception.AgentActivityErrorCodeEnum;
|
||||||
import com.seer.teach.mp.mapper.MpAgentActivityMapper;
|
import com.seer.teach.mp.mapper.MpAgentActivityMapper;
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityLogService;
|
import com.seer.teach.mp.service.IMpAgentActivityLogService;
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityService;
|
import com.seer.teach.mp.service.IMpActivityService;
|
||||||
import com.seer.teach.mp.service.IMpAgentActivityParticipantService;
|
import com.seer.teach.mp.service.IMpAgentActivityParticipantService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -33,18 +29,18 @@ import java.util.List;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMapper, MpAgentActivityEntity> implements IMpAgentActivityService {
|
public class MpActivityServiceImpl extends ServiceImpl<MpAgentActivityMapper, MpActivityEntity> implements IMpActivityService {
|
||||||
|
|
||||||
private final IMpAgentActivityParticipantService agentActivityParticipantService;
|
private final IMpAgentActivityParticipantService agentActivityParticipantService;
|
||||||
private final MpAgentActivityCache agentActivityCache;
|
private final MpAgentActivityCache agentActivityCache;
|
||||||
private final IMpAgentActivityLogService agentActivityLogService;
|
private final IMpAgentActivityLogService agentActivityLogService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean saveOrUpdateActivity(MpAgentActivityEntity entity) {
|
public boolean saveOrUpdateActivity(MpActivityEntity entity) {
|
||||||
// 验证活动数据
|
// 验证活动数据
|
||||||
validateActivity(entity);
|
validateActivity(entity);
|
||||||
|
|
||||||
MpAgentActivityEntity oldEntity = null;
|
MpActivityEntity oldEntity = null;
|
||||||
String operationType = "创建";
|
String operationType = "创建";
|
||||||
|
|
||||||
if (entity.getId() != null) {
|
if (entity.getId() != null) {
|
||||||
@ -83,7 +79,7 @@ public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMappe
|
|||||||
/**
|
/**
|
||||||
* 验证活动数据
|
* 验证活动数据
|
||||||
*/
|
*/
|
||||||
private void validateActivity(MpAgentActivityEntity entity) {
|
private void validateActivity(MpActivityEntity entity) {
|
||||||
AssertUtils.notBlank(entity.getActivityName(), AgentActivityErrorCodeEnum.ACTIVITY_ALREADY_EXISTS, "活动名称不能为空");
|
AssertUtils.notBlank(entity.getActivityName(), AgentActivityErrorCodeEnum.ACTIVITY_ALREADY_EXISTS, "活动名称不能为空");
|
||||||
AssertUtils.notNull(entity.getStartTime(), AgentActivityErrorCodeEnum.INVALID_ACTIVITY_STATUS, "活动开始时间不能为空");
|
AssertUtils.notNull(entity.getStartTime(), AgentActivityErrorCodeEnum.INVALID_ACTIVITY_STATUS, "活动开始时间不能为空");
|
||||||
AssertUtils.notNull(entity.getEndTime(), AgentActivityErrorCodeEnum.INVALID_ACTIVITY_STATUS, "活动结束时间不能为空");
|
AssertUtils.notNull(entity.getEndTime(), AgentActivityErrorCodeEnum.INVALID_ACTIVITY_STATUS, "活动结束时间不能为空");
|
||||||
@ -95,7 +91,7 @@ public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMappe
|
|||||||
|
|
||||||
// 如果是更新操作,检查活动是否存在
|
// 如果是更新操作,检查活动是否存在
|
||||||
if (entity.getId() != null) {
|
if (entity.getId() != null) {
|
||||||
MpAgentActivityEntity existing = super.getById(entity.getId());
|
MpActivityEntity existing = super.getById(entity.getId());
|
||||||
AssertUtils.notNull(existing, AgentActivityErrorCodeEnum.ACTIVITY_NOT_FOUND, "活动不存在");
|
AssertUtils.notNull(existing, AgentActivityErrorCodeEnum.ACTIVITY_NOT_FOUND, "活动不存在");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,7 +99,7 @@ public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMappe
|
|||||||
@Override
|
@Override
|
||||||
public boolean deleteActivity(Integer id) {
|
public boolean deleteActivity(Integer id) {
|
||||||
// 检查活动是否存在
|
// 检查活动是否存在
|
||||||
MpAgentActivityEntity existing = super.getById(id);
|
MpActivityEntity existing = super.getById(id);
|
||||||
AssertUtils.notNull(existing, AgentActivityErrorCodeEnum.ACTIVITY_NOT_FOUND, "活动不存在");
|
AssertUtils.notNull(existing, AgentActivityErrorCodeEnum.ACTIVITY_NOT_FOUND, "活动不存在");
|
||||||
|
|
||||||
// 删除活动前先删除相关的参与记录
|
// 删除活动前先删除相关的参与记录
|
||||||
@ -137,15 +133,15 @@ public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MpAgentActivityEntity getById(Integer id) {
|
public MpActivityEntity getById(Integer id) {
|
||||||
// 先从缓存获取
|
// 先从缓存获取
|
||||||
MpAgentActivityEntity cached = agentActivityCache.getActivityById(id);
|
MpActivityEntity cached = agentActivityCache.getActivityById(id);
|
||||||
if (cached != null) {
|
if (cached != null) {
|
||||||
return cached;
|
return cached;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从数据库获取
|
// 从数据库获取
|
||||||
MpAgentActivityEntity entity = super.getById(id);
|
MpActivityEntity entity = super.getById(id);
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
// 存入缓存
|
// 存入缓存
|
||||||
agentActivityCache.setActivityById(id, entity);
|
agentActivityCache.setActivityById(id, entity);
|
||||||
@ -155,7 +151,7 @@ public class MpAgentActivityServiceImpl extends ServiceImpl<MpAgentActivityMappe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean saveOrUpdate(MpAgentActivityEntity entity) {
|
public boolean saveOrUpdate(MpActivityEntity entity) {
|
||||||
boolean result = super.saveOrUpdate(entity);
|
boolean result = super.saveOrUpdate(entity);
|
||||||
if (result && entity.getId() != null) {
|
if (result && entity.getId() != null) {
|
||||||
// 更新缓存
|
// 更新缓存
|
||||||
Loading…
x
Reference in New Issue
Block a user