dev:人资相关, 解除部分验证码校验

main
SondonYong 2025-12-05 14:18:28 +08:00
parent 4eba5d151a
commit 6d89fa3b26
27 changed files with 1102 additions and 20 deletions

View File

@ -64,6 +64,43 @@ public class DockingRZUserPlanJob implements Job {
return ReturnT.SUCCESS;
}
// @JobRegister(cron = "0 30 0 * * ?", jobDesc = "超期未检查记录",triggerStatus = 1)
// @XxlJob("com.zcloud.zcGbsServicer.plan.CheckRecordPlanJob")
public ReturnT<String> executeChange(String param) {
System.out.println("开始执行计划任务");
XxlJobHelper.log( "============定时获取人资人员信息开始==========");
// 获取总页数
Integer userInfoCount = getUserInfoCount();
// 定义每页大小
int pageSize = 200;
// 计算总页数
int totalPages = (int) Math.ceil((double) userInfoCount / pageSize);
for (int pageNum = 1; pageNum <= totalPages; pageNum++) {
try {
XxlJobHelper.log("正在获取第 " + pageNum + "/" + totalPages + " 页数据...");
// 调用接口
getUserInfo(pageNum, pageSize);
XxlJobHelper.log("第 " + pageNum + " 页数据获取成功");
// 可选:添加延时,避免请求过快
if (pageNum < totalPages) {
Thread.sleep(1000); // 1000毫秒间隔
}
} catch (Exception e) {
XxlJobHelper.log("第 " + pageNum + " 页获取失败: " + e.getMessage());
// 可以选择继续执行下一页,或者中断
// break; // 如果需要失败就停止
}
}
XxlJobHelper.log( "============定时获取人资人员信息结束==========");
return ReturnT.SUCCESS;
}
/**
*
* @return
@ -109,4 +146,24 @@ public class DockingRZUserPlanJob implements Job {
return result;
}
public static JSONArray getUserChangeInfo() {
// 方式1GET 请求如果接口是GET方式
String url = BASE_URL + "/docking/rz/getUserChangeInfo";
// 发送 POST 请求
String result = HttpRequest.post(url)
.timeout(30000) // 30秒超时
.execute()
.body();
System.out.println("响应结果:" + result);
JSONArray jsonArray = JSONUtil.parseArray(result);
if(jsonArray == null){
return null;
}
return jsonArray;
}
}

View File

@ -14,6 +14,7 @@ import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.basic.info.plan.DockingRZUserPlanJob;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -35,6 +36,14 @@ import java.util.ArrayList;
public class RzUserController {
private final RzUserServiceI rzUserService;
private final DockingRZUserPlanJob dockingRZPlanJob;
@ApiOperation("手动调用获取人资人员信息定时")
@PostMapping("/dockingRZ")
public Response dockingRZ(){
dockingRZPlanJob.execute("");
return SingleResponse.buildSuccess();
}
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<RzUserCO> add(@Validated @RequestBody RzUserAddCmd cmd) {

View File

@ -0,0 +1,85 @@
package com.zcloud.basic.info.web;
import com.zcloud.basic.info.api.RzUserRecordServiceI;
import com.zcloud.basic.info.dto.RzUserRecordAddCmd;
import com.zcloud.basic.info.dto.RzUserRecordPageQry;
import com.zcloud.basic.info.dto.RzUserRecordListQry;
import com.zcloud.basic.info.dto.RzUserRecordUpdateCmd;
import com.zcloud.basic.info.dto.RzUserRecordRemoveCmd;
import com.zcloud.basic.info.dto.clientobject.RzUserRecordCO;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
/**
* web-adapter
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Api(tags = "人资每日变动记录")
@RequestMapping("/${application.gateway}/rzUserRecord")
@RestController
@AllArgsConstructor
public class RzUserRecordController {
private final RzUserRecordServiceI rzUserRecordService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<RzUserRecordCO> add(@Validated @RequestBody RzUserRecordAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return rzUserRecordService.add(cmd);
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody RzUserRecordUpdateCmd cmd) {
rzUserRecordService.edit(cmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<RzUserRecordCO> page(@RequestBody RzUserRecordPageQry qry) {
return rzUserRecordService.listPage(qry);
}
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<RzUserRecordCO> listAll(@RequestBody RzUserRecordListQry qry) {
return rzUserRecordService.list(qry);
}
@ApiOperation("详情")
@GetMapping("/getInfoById")
public SingleResponse<RzUserRecordCO> getInfoById(@RequestParam(value = "id") Long id) {
return rzUserRecordService.getInfoById(id);
}
@ApiOperation("删除")
@PutMapping("/remove")
public Response remove(@RequestParam(value = "id") Long id) {
rzUserRecordService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@PutMapping("/removeBatch")
public Response removeBatch(@Validated @RequestBody RzUserRecordRemoveCmd cmd) {
rzUserRecordService.removeBatch(cmd.getIds());
return SingleResponse.buildSuccess();
}
}

View File

@ -141,15 +141,6 @@ public class UserController {
return userService.getEncryInfo(userCheckPassWordCmd);
}
private final DockingRZUserPlanJob dockingRZPlanJob;
@ApiOperation("手动调用获取人资人员信息定时")
@PostMapping("/dockingRZ")
public Response dockingRZ(){
dockingRZPlanJob.execute("");
return SingleResponse.buildSuccess();
}
@ApiOperation("相关方用户列表分页")
@PostMapping("/listXgf")
public PageResponse<UserXmfCO> listXgf(@RequestBody UserPageQry qry) {

View File

@ -0,0 +1,40 @@
package com.zcloud.basic.info.command;
import com.zcloud.basic.info.domain.gateway.RzUserRecordGateway;
import com.zcloud.basic.info.domain.model.RzUserRecordE;
import com.zcloud.basic.info.dto.RzUserRecordAddCmd;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Component
@AllArgsConstructor
public class RzUserRecordAddExe {
private final RzUserRecordGateway rzUserRecordGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(RzUserRecordAddCmd cmd) {
RzUserRecordE rzUserRecordE = new RzUserRecordE();
BeanUtils.copyProperties(cmd, rzUserRecordE);
boolean res = false;
try {
res = rzUserRecordGateway.add(rzUserRecordE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,39 @@
package com.zcloud.basic.info.command;
import com.zcloud.basic.info.domain.gateway.RzUserRecordGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Component
@AllArgsConstructor
public class RzUserRecordRemoveExe {
private final RzUserRecordGateway rzUserRecordGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = rzUserRecordGateway.deletedRzUserRecordById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
boolean res = rzUserRecordGateway.deletedRzUserRecordByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.basic.info.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.basic.info.domain.gateway.RzUserRecordGateway;
import com.zcloud.basic.info.domain.model.RzUserRecordE;
import com.zcloud.basic.info.dto.RzUserRecordUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Component
@AllArgsConstructor
public class RzUserRecordUpdateExe {
private final RzUserRecordGateway rzUserRecordGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(RzUserRecordUpdateCmd cmd) {
RzUserRecordE rzUserRecordE = new RzUserRecordE();
BeanUtils.copyProperties(cmd, rzUserRecordE);
boolean res = rzUserRecordGateway.update(rzUserRecordE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -112,11 +112,11 @@ public class UserAddExe {
userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword());
// 获取redis验证码
// Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
// if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
// throw new BizException("验证码已过期或错误");
// }
// zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
throw new BizException("验证码已过期或错误");
}
zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
CorpInfoDO corpInfoDO = corpInfoRepository.getCorpInfoByCorpName("相关方通用租户");
if(corpInfoDO == null){

View File

@ -144,11 +144,11 @@ public class UserUpdateExe {
userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword());
// 获取redis验证码
// Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
// if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
// throw new BizException("验证码已过期或错误");
// }
// zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
throw new BizException("验证码已过期或错误");
}
zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
BeanUtils.copyProperties(cmd, userE);
userE.setId(userDO.getId());
@ -164,8 +164,11 @@ public class UserUpdateExe {
UserE userE = new UserE();
userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword());
UserDO userDO = userRepository.getInfoById(cmd.getId());
// todo 验证码
// 获取redis验证码
// Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
// Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + userDO.getPhone());
// if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
// throw new BizException("验证码已过期或错误");
// }

View File

@ -0,0 +1,24 @@
package com.zcloud.basic.info.command.convertor;
import com.zcloud.basic.info.dto.clientobject.RzUserRecordCO;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Mapper(componentModel = "spring")
public interface RzUserRecordCoConvertor {
/**
* @param rzUserRecordDOs
* @return
*/
List<RzUserRecordCO> converDOsToCOs(List<RzUserRecordDO> rzUserRecordDOs);
}

View File

@ -0,0 +1,60 @@
package com.zcloud.basic.info.command.query;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.basic.info.command.convertor.RzUserRecordCoConvertor;
import com.zcloud.basic.info.dto.RzUserRecordPageQry;
import com.zcloud.basic.info.dto.RzUserRecordListQry;
import com.zcloud.basic.info.dto.clientobject.RzUserRecordCO;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import com.zcloud.basic.info.persistence.repository.RzUserRecordRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.Map;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Component
@AllArgsConstructor
public class RzUserRecordQueryExe {
private final RzUserRecordRepository rzUserRecordRepository;
private final RzUserRecordCoConvertor rzUserRecordCoConvertor;
/**
*
*
* @return
*/
public PageResponse<RzUserRecordCO> execute(RzUserRecordPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<RzUserRecordDO> pageResponse = rzUserRecordRepository.listPage(params);
List<RzUserRecordCO> examCenterCOS = rzUserRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<RzUserRecordCO> execute(RzUserRecordListQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<RzUserRecordDO> list = rzUserRecordRepository.list(params);
List<RzUserRecordCO> examCenterCOS = rzUserRecordCoConvertor.converDOsToCOs(list);
return MultiResponse.of(examCenterCOS);
}
public SingleResponse<RzUserRecordCO> execute(Long id) {
SingleResponse<RzUserRecordDO> rzUserRecordDO = rzUserRecordRepository.getInfoById(id);
RzUserRecordCO co = new RzUserRecordCO();
BeanUtils.copyProperties(rzUserRecordDO.getData(), co);
return SingleResponse.of(co);
}
}

View File

@ -0,0 +1,70 @@
package com.zcloud.basic.info.service;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.basic.info.api.RzUserRecordServiceI;
import com.zcloud.basic.info.command.RzUserRecordAddExe;
import com.zcloud.basic.info.command.RzUserRecordRemoveExe;
import com.zcloud.basic.info.command.RzUserRecordUpdateExe;
import com.zcloud.basic.info.command.query.RzUserRecordQueryExe;
import com.zcloud.basic.info.dto.RzUserRecordAddCmd;
import com.zcloud.basic.info.dto.RzUserRecordPageQry;
import com.zcloud.basic.info.dto.RzUserRecordListQry;
import com.zcloud.basic.info.dto.RzUserRecordUpdateCmd;
import com.zcloud.basic.info.dto.clientobject.RzUserRecordCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Service
@AllArgsConstructor
public class RzUserRecordServiceImpl implements RzUserRecordServiceI {
private final RzUserRecordAddExe rzUserRecordAddExe;
private final RzUserRecordUpdateExe rzUserRecordUpdateExe;
private final RzUserRecordRemoveExe rzUserRecordRemoveExe;
private final RzUserRecordQueryExe rzUserRecordQueryExe;
@Override
public PageResponse<RzUserRecordCO> listPage(RzUserRecordPageQry qry) {
return rzUserRecordQueryExe.execute(qry);
}
@Override
public MultiResponse<RzUserRecordCO> list(RzUserRecordListQry qry) {
return rzUserRecordQueryExe.execute(qry);
}
@Override
public SingleResponse<RzUserRecordCO> getInfoById(Long id) {
return rzUserRecordQueryExe.execute(id);
}
@Override
public SingleResponse add(RzUserRecordAddCmd cmd) {
rzUserRecordAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(RzUserRecordUpdateCmd cmd) {
rzUserRecordUpdateExe.execute(cmd);
}
@Override
public void remove(Long id) {
rzUserRecordRemoveExe.execute(id);
}
@Override
public void removeBatch(Long[] ids) {
rzUserRecordRemoveExe.execute(ids);
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.basic.info.api;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.basic.info.dto.RzUserRecordAddCmd;
import com.zcloud.basic.info.dto.RzUserRecordPageQry;
import com.zcloud.basic.info.dto.RzUserRecordListQry;
import com.zcloud.basic.info.dto.RzUserRecordUpdateCmd;
import com.zcloud.basic.info.dto.clientobject.RzUserRecordCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
public interface RzUserRecordServiceI {
PageResponse<RzUserRecordCO> listPage(RzUserRecordPageQry qry);
MultiResponse<RzUserRecordCO> list(RzUserRecordListQry qry);
SingleResponse<RzUserRecordCO> getInfoById(Long id);
SingleResponse<RzUserRecordCO> add(RzUserRecordAddCmd cmd);
void edit(RzUserRecordUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -0,0 +1,88 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:36
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RzUserRecordAddCmd extends Command {
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "姓名", name = "employeeName", required = true)
@NotEmpty(message = "姓名不能为空")
private String employeeName;
@ApiModelProperty(value = "性别", name = "employeeGender", required = true)
@NotEmpty(message = "性别不能为空")
private String employeeGender;
@ApiModelProperty(value = "年龄", name = "employeeAge", required = true)
@NotEmpty(message = "年龄不能为空")
private String employeeAge;
@ApiModelProperty(value = "入职时间", name = "entryTime", required = true)
@NotNull(message = "入职时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date entryTime;
@ApiModelProperty(value = "人员状态", name = "employeeStatus", required = true)
@NotEmpty(message = "人员状态不能为空")
private String employeeStatus;
@ApiModelProperty(value = "工作级别", name = "jobLevel", required = true)
@NotEmpty(message = "工作级别不能为空")
private String jobLevel;
@ApiModelProperty(value = "部门名称", name = "deptName", required = true)
@NotEmpty(message = "部门名称不能为空")
private String deptName;
@ApiModelProperty(value = "部门编码", name = "deptCode", required = true)
@NotEmpty(message = "部门编码不能为空")
private String deptCode;
@ApiModelProperty(value = "手机号", name = "phoneNumber", required = true)
@NotEmpty(message = "手机号不能为空")
private String phoneNumber;
@ApiModelProperty(value = "身份证号", name = "idCardNumber", required = true)
@NotEmpty(message = "身份证号不能为空")
private String idCardNumber;
@ApiModelProperty(value = "图片编码", name = "employeeImagesCode", required = true)
@NotEmpty(message = "图片编码不能为空")
private String employeeImagesCode;
@ApiModelProperty(value = "图片base64编码", name = "employeeImages", required = true)
@NotEmpty(message = "图片base64编码不能为空")
private String employeeImages;
@ApiModelProperty(value = "企业编码", name = "corporationCode", required = true)
@NotEmpty(message = "企业编码不能为空")
private String corporationCode;
@ApiModelProperty(value = "企业名称", name = "corporationName", required = true)
@NotEmpty(message = "企业名称不能为空")
private String corporationName;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Data
public class RzUserRecordListQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeRzUserRecordId;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Data
public class RzUserRecordPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeRzUserRecordId;
}

View File

@ -0,0 +1,30 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RzUserRecordRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空")
@Size(min = 1, message = "请选择数据")
private Long[] ids;
}

View File

@ -0,0 +1,79 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RzUserRecordUpdateCmd extends Command {
@ApiModelProperty(value = "主键", name = "id", required = true)
@NotNull(message = "主键不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "rzUserRecordId", required = true)
@NotEmpty(message = "业务主键id不能为空")
private String rzUserRecordId;
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "姓名", name = "employeeName", required = true)
@NotEmpty(message = "姓名不能为空")
private String employeeName;
@ApiModelProperty(value = "性别", name = "employeeGender", required = true)
@NotEmpty(message = "性别不能为空")
private String employeeGender;
@ApiModelProperty(value = "年龄", name = "employeeAge", required = true)
@NotEmpty(message = "年龄不能为空")
private String employeeAge;
@ApiModelProperty(value = "入职时间", name = "entryTime", required = true)
@NotNull(message = "入职时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date entryTime;
@ApiModelProperty(value = "人员状态", name = "employeeStatus", required = true)
@NotEmpty(message = "人员状态不能为空")
private String employeeStatus;
@ApiModelProperty(value = "工作级别", name = "jobLevel", required = true)
@NotEmpty(message = "工作级别不能为空")
private String jobLevel;
@ApiModelProperty(value = "部门名称", name = "deptName", required = true)
@NotEmpty(message = "部门名称不能为空")
private String deptName;
@ApiModelProperty(value = "部门编码", name = "deptCode", required = true)
@NotEmpty(message = "部门编码不能为空")
private String deptCode;
@ApiModelProperty(value = "手机号", name = "phoneNumber", required = true)
@NotEmpty(message = "手机号不能为空")
private String phoneNumber;
@ApiModelProperty(value = "身份证号", name = "idCardNumber", required = true)
@NotEmpty(message = "身份证号不能为空")
private String idCardNumber;
@ApiModelProperty(value = "图片编码", name = "employeeImagesCode", required = true)
@NotEmpty(message = "图片编码不能为空")
private String employeeImagesCode;
@ApiModelProperty(value = "图片base64编码", name = "employeeImages", required = true)
@NotEmpty(message = "图片base64编码不能为空")
private String employeeImages;
@ApiModelProperty(value = "企业编码", name = "corporationCode", required = true)
@NotEmpty(message = "企业编码不能为空")
private String corporationCode;
@ApiModelProperty(value = "企业名称", name = "corporationName", required = true)
@NotEmpty(message = "企业名称不能为空")
private String corporationName;
}

View File

@ -0,0 +1,71 @@
package com.zcloud.basic.info.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.time.LocalDate;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-12-05 14:00:36
*/
@Data
public class RzUserRecordCO extends ClientObject {
//主键
@ApiModelProperty(value = "主键")
private Long id;
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String rzUserRecordId;
//用户id
@ApiModelProperty(value = "用户id")
private Long userId;
//姓名
@ApiModelProperty(value = "姓名")
private String employeeName;
//性别
@ApiModelProperty(value = "性别")
private String employeeGender;
//年龄
@ApiModelProperty(value = "年龄")
private String employeeAge;
//入职时间
@ApiModelProperty(value = "入职时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime entryTime;
//人员状态
@ApiModelProperty(value = "人员状态")
private String employeeStatus;
//工作级别
@ApiModelProperty(value = "工作级别")
private String jobLevel;
//部门名称
@ApiModelProperty(value = "部门名称")
private String deptName;
//部门编码
@ApiModelProperty(value = "部门编码")
private String deptCode;
//手机号
@ApiModelProperty(value = "手机号")
private String phoneNumber;
//身份证号
@ApiModelProperty(value = "身份证号")
private String idCardNumber;
//图片编码
@ApiModelProperty(value = "图片编码")
private String employeeImagesCode;
//图片base64编码
@ApiModelProperty(value = "图片base64编码")
private String employeeImages;
//企业编码
@ApiModelProperty(value = "企业编码")
private String corporationCode;
//企业名称
@ApiModelProperty(value = "企业名称")
private String corporationName;
}

View File

@ -0,0 +1,30 @@
package com.zcloud.basic.info.domain.gateway;
import com.zcloud.basic.info.domain.model.RzUserRecordE;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
public interface RzUserRecordGateway {
/**
*
*/
Boolean add(RzUserRecordE rzUserRecordE);
/**
*
*/
Boolean update(RzUserRecordE rzUserRecordE);
/**
*
*/
Boolean deletedRzUserRecordById(Long id);
Boolean deletedRzUserRecordByIds(Long[] id);
}

View File

@ -0,0 +1,51 @@
package com.zcloud.basic.info.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import java.util.Date;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Data
public class RzUserRecordE extends BaseE {
//主键
private Long id;
//业务主键id
private String rzUserRecordId;
//用户id
private Long userId;
//姓名
private String employeeName;
//性别
private String employeeGender;
//年龄
private String employeeAge;
//入职时间
private Date entryTime;
//人员状态
private String employeeStatus;
//工作级别
private String jobLevel;
//部门名称
private String deptName;
//部门编码
private String deptCode;
//手机号
private String phoneNumber;
//身份证号
private String idCardNumber;
//图片编码
private String employeeImagesCode;
//图片base64编码
private String employeeImages;
//企业编码
private String corporationCode;
//企业名称
private String corporationName;
}

View File

@ -0,0 +1,50 @@
package com.zcloud.basic.info.gatewayimpl;
import com.zcloud.basic.info.domain.gateway.RzUserRecordGateway;
import com.zcloud.basic.info.domain.model.RzUserRecordE;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import com.zcloud.basic.info.persistence.repository.RzUserRecordRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Service
@AllArgsConstructor
public class RzUserRecordGatewayImpl implements RzUserRecordGateway {
private final RzUserRecordRepository rzUserRecordRepository;
@Override
public Boolean add(RzUserRecordE rzUserRecordE) {
RzUserRecordDO d = new RzUserRecordDO();
BeanUtils.copyProperties(rzUserRecordE, d);
rzUserRecordRepository.save(d);
return true;
}
@Override
public Boolean update(RzUserRecordE rzUserRecordE) {
RzUserRecordDO d = new RzUserRecordDO();
BeanUtils.copyProperties(rzUserRecordE, d);
rzUserRecordRepository.updateById(d);
return true;
}
@Override
public Boolean deletedRzUserRecordById(Long id) {
return rzUserRecordRepository.removeById(id);
}
@Override
public Boolean deletedRzUserRecordByIds(Long[] ids) {
return rzUserRecordRepository.removeByIds(Collections.singletonList(ids));
}
}

View File

@ -0,0 +1,77 @@
package com.zcloud.basic.info.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Data
@TableName("rz_user_record")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RzUserRecordDO extends BaseDO {
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String rzUserRecordId;
//用户id
@ApiModelProperty(value = "用户id")
private Long userId;
//姓名
@ApiModelProperty(value = "姓名")
private String employeeName;
//性别
@ApiModelProperty(value = "性别")
private String employeeGender;
//年龄
@ApiModelProperty(value = "年龄")
private String employeeAge;
//入职时间
@ApiModelProperty(value = "入职时间")
private Date entryTime;
//人员状态
@ApiModelProperty(value = "人员状态")
private String employeeStatus;
//工作级别
@ApiModelProperty(value = "工作级别")
private String jobLevel;
//部门名称
@ApiModelProperty(value = "部门名称")
private String deptName;
//部门编码
@ApiModelProperty(value = "部门编码")
private String deptCode;
//手机号
@ApiModelProperty(value = "手机号")
private String phoneNumber;
//身份证号
@ApiModelProperty(value = "身份证号")
private String idCardNumber;
//图片编码
@ApiModelProperty(value = "图片编码")
private String employeeImagesCode;
//图片base64编码
@ApiModelProperty(value = "图片base64编码")
private String employeeImages;
//企业编码
@ApiModelProperty(value = "企业编码")
private String corporationCode;
//企业名称
@ApiModelProperty(value = "企业名称")
private String corporationName;
public RzUserRecordDO(String rzUserRecordId) {
this.rzUserRecordId = rzUserRecordId;
}
}

View File

@ -0,0 +1,17 @@
package com.zcloud.basic.info.persistence.mapper;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Mapper
public interface RzUserRecordMapper extends BaseMapper<RzUserRecordDO> {
}

View File

@ -0,0 +1,25 @@
package com.zcloud.basic.info.persistence.repository;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
public interface RzUserRecordRepository extends BaseRepository<RzUserRecordDO> {
PageResponse<RzUserRecordDO> listPage(Map<String, Object> params);
List<RzUserRecordDO> list(Map<String, Object> params);
SingleResponse<RzUserRecordDO> getInfoById(Long id);
}

View File

@ -0,0 +1,55 @@
package com.zcloud.basic.info.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.basic.info.persistence.dataobject.RzUserRecordDO;
import com.zcloud.basic.info.persistence.mapper.RzUserRecordMapper;
import com.zcloud.basic.info.persistence.repository.RzUserRecordRepository;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-12-05 14:00:37
*/
@Service
@RequiredArgsConstructor
public class RzUserRecordRepositoryImpl extends BaseRepositoryImpl<RzUserRecordMapper, RzUserRecordDO> implements RzUserRecordRepository {
private final RzUserRecordMapper rzUserRecordMapper;
@Override
public PageResponse<RzUserRecordDO> listPage(Map<String, Object> params) {
IPage<RzUserRecordDO> iPage = new Query<RzUserRecordDO>().getPage(params);
QueryWrapper<RzUserRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<RzUserRecordDO> result = rzUserRecordMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<RzUserRecordDO> list(Map<String, Object> params) {
QueryWrapper<RzUserRecordDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
List<RzUserRecordDO> result = rzUserRecordMapper.selectList(queryWrapper);
return result;
}
@Override
public SingleResponse<RzUserRecordDO> getInfoById(Long id) {
return SingleResponse.of(rzUserRecordMapper.selectById(id));
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.basic.info.persistence.mapper.RzUserRecordMapper">
</mapper>