From f04357f279eaf1d79f44c7f83153e76cb9902dee Mon Sep 17 00:00:00 2001 From: zuoqinbo Date: Thu, 23 Nov 2023 18:59:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=B4=A6=E6=88=B7=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/init.sql | 16 +++++ .../client/feign/PlatUserRoleChangeApi.java | 47 ++++++++++++++ .../model/req/PlatAccountChangeLogReq.java | 46 ++++++++++++++ .../model/req/PlatAccountChangeQuery.java | 27 ++++++++ .../model/res/PlatAccountChangeLogResp.java | 44 +++++++++++++ .../cn/axzo/tyr/client/model/res/Test.java | 38 ++++++++++++ .../change/PlatUserRoleChangeController.java | 38 ++++++++++++ .../repository/dao/PlatUserRoleChangeDao.java | 18 ++++++ .../entity/PlatUserAccountChangeLog.java | 62 +++++++++++++++++++ .../mapper/PlatUserAccountChangeMapper.java | 17 +++++ .../impl/PlatUserRoleChangeService.java | 51 +++++++++++++++ 11 files changed, 404 insertions(+) create mode 100644 sql/init.sql create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/feign/PlatUserRoleChangeApi.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeLogReq.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeQuery.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PlatAccountChangeLogResp.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/Test.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/controller/change/PlatUserRoleChangeController.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/PlatUserRoleChangeDao.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/PlatUserAccountChangeLog.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/PlatUserAccountChangeMapper.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PlatUserRoleChangeService.java diff --git a/sql/init.sql b/sql/init.sql new file mode 100644 index 00000000..cf10d56b --- /dev/null +++ b/sql/init.sql @@ -0,0 +1,16 @@ +CREATE TABLE IF NOT EXISTS plat_user_role_job_change +( + id bigint auto_increment comment '主键', + axzo_user_id bigint default 0 not null comment '安心筑id', + change_type varchar(20) default '' not null comment '变更类型', + change_detail varchar(256) default '' not null comment '变更详情', + operator varchar(50) not null comment '变更操作人', + operator_time datetime default CURRENT_TIMESTAMP not null comment '变更时间', + is_delete tinyint default 0 not null comment '未删除0,删除1', + create_at datetime default CURRENT_TIMESTAMP not null comment '创建时间', + update_at datetime default CURRENT_TIMESTAMP not null comment '更新时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8 comment '平台账户角色岗位变动记录'; +create index idx_plat_user_role_job_change + on plat_user_role_job_change (axzo_user_id, operator_time); diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PlatUserRoleChangeApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PlatUserRoleChangeApi.java new file mode 100644 index 00000000..8d7aea47 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PlatUserRoleChangeApi.java @@ -0,0 +1,47 @@ +package cn.axzo.tyr.client.feign; + +import cn.axzo.framework.domain.web.result.ApiPageResult; +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.req.GetWorkflowQueryAndUpdatePermissionReq; +import cn.axzo.tyr.client.model.req.PlatAccountChangeLogReq; +import cn.axzo.tyr.client.model.req.PlatAccountChangeQuery; +import cn.axzo.tyr.client.model.res.GetWorkflowQueryAndUpdatePermissionRes; +import cn.axzo.tyr.client.model.res.PlatAccountChangeLogResp; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +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; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:03 + */ +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}") +public interface PlatUserRoleChangeApi { + + + /** + * 保存账户变更日志 + * + * @param req 户变更日志 + * @return + */ + @PostMapping(value = "/api/v1/plat/user/change/log") + ApiResult savePlatUserAccountChangeLog(@RequestBody @Validated PlatAccountChangeLogReq req); + + /** + * 查询平台账户变更日志 + * + * @param platAccountChangeQuery 查询条件 + * @return 返回账户变动记录列表 + */ + @PostMapping(value = "/api/v1/plat/user/change/log/query") + ApiPageResult queryPlatUserAccountChangeLog(@RequestBody @Validated PlatAccountChangeQuery platAccountChangeQuery); + + +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeLogReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeLogReq.java new file mode 100644 index 00000000..ac9eb0df --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeLogReq.java @@ -0,0 +1,46 @@ +package cn.axzo.tyr.client.model.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + + +/** + * PlatAccountChangeLogReq + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:03 + */ +@Data +@Builder +public class PlatAccountChangeLogReq { + + /** + * 安心筑id + */ + private Long axzoUserId; + + /** + * 变更类型 + */ + private String changeType; + + /** + * 变更详情 + */ + private String changeDetail; + + /** + * operator + */ + private String operator; + + /** + * 变更时间 + */ + private Date operatorTime; +} \ No newline at end of file diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeQuery.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeQuery.java new file mode 100644 index 00000000..fe36740a --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/PlatAccountChangeQuery.java @@ -0,0 +1,27 @@ +package cn.axzo.tyr.client.model.req; + +import cn.axzo.core.domain.PageRequest; +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + + +/** + * PlatAccountChangeLogReq + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:03 + */ +@Data +@Builder +public class PlatAccountChangeQuery extends PageRequest { + + /** + * 安心筑id + */ + private Long axzoUserId; + + +} \ No newline at end of file diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PlatAccountChangeLogResp.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PlatAccountChangeLogResp.java new file mode 100644 index 00000000..94841520 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/PlatAccountChangeLogResp.java @@ -0,0 +1,44 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.Builder; +import lombok.Data; + +import java.util.Date; + + +/** + * PlatAccountChangeLogReq + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:03 + */ +@Data +@Builder +public class PlatAccountChangeLogResp { + + /** + * 安心筑id + */ + private Long axzoUserId; + + /** + * 变更类型 + */ + private String changeType; + + /** + * 变更详情 + */ + private String changeDetail; + + /** + * operator + */ + private String operator; + + /** + * 变更时间 + */ + private Date operatorTime; +} \ No newline at end of file diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/Test.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/Test.java new file mode 100644 index 00000000..668c5e61 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/Test.java @@ -0,0 +1,38 @@ +package cn.axzo.tyr.client.model.res; + +import com.alibaba.fastjson.JSON; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:43 + */ +public class Test { + public static void main(String[] args) { + Test test = new Test(); + System.out.println(JSON.toJSON(test)); + System.out.println("--------------"); + System.out.println(JSON.toJSONString(test)); + } + + public String xxxMethod1(){ + System.out.println("333"); + return ""; + } + + public void setMethod123(){ + System.out.println("123"); + } + + public String getMethod1(){ + System.out.println("11"); + return ""; + } + + public String getMethod2(){ + System.out.println("22"); + return ""; + } +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/change/PlatUserRoleChangeController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/change/PlatUserRoleChangeController.java new file mode 100644 index 00000000..79eb1ffd --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/change/PlatUserRoleChangeController.java @@ -0,0 +1,38 @@ +package cn.axzo.tyr.server.controller.change; + +import cn.axzo.framework.domain.web.result.ApiPageResult; +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.feign.PlatUserRoleChangeApi; +import cn.axzo.tyr.client.model.req.PlatAccountChangeLogReq; +import cn.axzo.tyr.client.model.req.PlatAccountChangeQuery; +import cn.axzo.tyr.client.model.res.PlatAccountChangeLogResp; +import cn.axzo.tyr.server.service.impl.PlatUserRoleChangeService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:27 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class PlatUserRoleChangeController implements PlatUserRoleChangeApi { + + private PlatUserRoleChangeService roleChangeService; + + @Override + public ApiResult savePlatUserAccountChangeLog(PlatAccountChangeLogReq accountChangeLog) { + roleChangeService.savePlatUserAccountChangeLog(accountChangeLog); + return ApiResult.ok(); + } + + @Override + public ApiPageResult queryPlatUserAccountChangeLog(PlatAccountChangeQuery platAccountChangeQuery) { + return roleChangeService.queryPlatUserAccountChangeLog(platAccountChangeQuery); + } +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/PlatUserRoleChangeDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/PlatUserRoleChangeDao.java new file mode 100644 index 00000000..7f62befe --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/PlatUserRoleChangeDao.java @@ -0,0 +1,18 @@ +package cn.axzo.tyr.server.repository.dao; + +import cn.axzo.tyr.server.repository.entity.PlatUserAccountChangeLog; +import cn.axzo.tyr.server.repository.mapper.PlatUserAccountChangeMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Repository; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:28 + */ +@Repository +public class PlatUserRoleChangeDao extends ServiceImpl { + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/PlatUserAccountChangeLog.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/PlatUserAccountChangeLog.java new file mode 100644 index 00000000..fbea03b9 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/PlatUserAccountChangeLog.java @@ -0,0 +1,62 @@ +package cn.axzo.tyr.server.repository.entity; + +import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.ibatis.type.BooleanTypeHandler; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +/** + * @author: zuoqinbo + * @date: 2023/11/23 17:39 + * @description: 账号异动记录 + * @modifiedBy: + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName("plat_user_role_job_change") +public class PlatUserAccountChangeLog extends BaseEntity { + + /** + * 安心筑id + */ + @TableField(value = "axzo_user_id") + private Long axzoUserId; + + /** + * 变更类型 + */ + @TableField(value = "change_type") + private String changeType; + + /** + * 变更详情 + */ + @TableField(value = "change_detail") + private String changeDetail; + + /** + * operator + */ + @TableField(value = "operator") + private String operator; + + /** + * 变更时间 + */ + @TableField(value = "operator_time") + private Date operatorTime; + + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/PlatUserAccountChangeMapper.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/PlatUserAccountChangeMapper.java new file mode 100644 index 00000000..76c4bcd9 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/PlatUserAccountChangeMapper.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.server.repository.mapper; + +import cn.axzo.tyr.server.repository.entity.PlatUserAccountChangeLog; +import cn.axzo.tyr.server.repository.entity.ProductModule; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:34 + */ +@Mapper +public interface PlatUserAccountChangeMapper extends BaseMapper { +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PlatUserRoleChangeService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PlatUserRoleChangeService.java new file mode 100644 index 00000000..2d4baa98 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PlatUserRoleChangeService.java @@ -0,0 +1,51 @@ +package cn.axzo.tyr.server.service.impl; + +import cn.axzo.basics.common.BeanMapper; +import cn.axzo.framework.domain.page.PageResp; +import cn.axzo.framework.domain.web.result.ApiPageResult; +import cn.axzo.tyr.client.model.product.ProductVO; +import cn.axzo.tyr.client.model.req.PlatAccountChangeLogReq; +import cn.axzo.tyr.client.model.req.PlatAccountChangeQuery; +import cn.axzo.tyr.client.model.res.PlatAccountChangeLogResp; +import cn.axzo.tyr.server.repository.dao.PlatUserRoleChangeDao; +import cn.axzo.tyr.server.repository.dao.SaasFeatureDao; +import cn.axzo.tyr.server.repository.entity.PlatUserAccountChangeLog; +import cn.axzo.tyr.server.repository.entity.ProductModule; +import cn.axzo.tyr.server.repository.entity.SaasProductModuleFeatureRelation; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * tyr + * + * @author zuoqinbo + * @version V1.0 + * @date 2023/11/23 18:28 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlatUserRoleChangeService { + + private final PlatUserRoleChangeDao userRoleChangeDao; + + public void savePlatUserAccountChangeLog(PlatAccountChangeLogReq accountChangeLog) { + PlatUserAccountChangeLog platUserAccountChangeLog = new PlatUserAccountChangeLog(); + BeanUtils.copyProperties(accountChangeLog, platUserAccountChangeLog); + userRoleChangeDao.saveOrUpdate(platUserAccountChangeLog); + } + + public ApiPageResult queryPlatUserAccountChangeLog(PlatAccountChangeQuery platAccountChangeQuery) { + IPage page = userRoleChangeDao.lambdaQuery() + .eq(PlatUserAccountChangeLog::getAxzoUserId, platAccountChangeQuery.getAxzoUserId()) + .page(platAccountChangeQuery.toPage()); + List list = BeanMapper.copyList(page.getRecords(), PlatAccountChangeLogResp.class); + PageResp data = PageResp.list(page.getCurrent(), page.getSize(), page.getTotal(), list); + return ApiPageResult.ok(data); + } +}