Compare commits

...
2 Commits
Author SHA1 Message Date
timi 19daaff907 Merge pull request 'v1.0.4' (#9) from dev into master
Reviewed-on: #9
2026-08-01 03:13:00 +00:00
Timi 1658be7d8d v1.0.4
CI / build-deploy (pull_request) Successful in 21s
CI / notify-on-failure (pull_request) Has been skipped
2026-08-01 11:11:53 +08:00
3 changed files with 25 additions and 4 deletions
@@ -2,6 +2,7 @@ package com.imyeyu.api.modules.gao.entity;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.imyeyu.api.modules.common.entity.Attachment; import com.imyeyu.api.modules.common.entity.Attachment;
import com.imyeyu.api.modules.user.entity.User;
import com.imyeyu.api.modules.user.bean.Gender; import com.imyeyu.api.modules.user.bean.Gender;
import com.imyeyu.spring.annotation.table.Transient; import com.imyeyu.spring.annotation.table.Transient;
import com.imyeyu.spring.entity.UUIDEntity; import com.imyeyu.spring.entity.UUIDEntity;
@@ -59,12 +60,18 @@ public class GaoCustomer extends UUIDEntity {
/// 介绍人客户 ID /// 介绍人客户 ID
private String introducerCustomerId; private String introducerCustomerId;
/// 录入用户 ID
private String creatorUserId;
@Transient @Transient
private Long lastSignInAt; private Long lastSignInAt;
@Transient @Transient
private GaoCustomer introducerCustomer; private GaoCustomer introducerCustomer;
@Transient
private User creatorUser;
@Transient @Transient
private Long invitedCount; private Long invitedCount;
@@ -7,6 +7,8 @@ import com.imyeyu.api.modules.common.vo.attach.BizUpdateReq;
import com.imyeyu.api.modules.gao.entity.GaoCustomer; import com.imyeyu.api.modules.gao.entity.GaoCustomer;
import com.imyeyu.api.modules.gao.mapper.GaoCustomerMapper; import com.imyeyu.api.modules.gao.mapper.GaoCustomerMapper;
import com.imyeyu.api.modules.gao.service.GaoCustomerService; import com.imyeyu.api.modules.gao.service.GaoCustomerService;
import com.imyeyu.api.modules.user.service.UserLoginService;
import com.imyeyu.api.modules.user.service.UserService;
import com.imyeyu.api.modules.gao.vo.GaoCustomerDailyStatView; import com.imyeyu.api.modules.gao.vo.GaoCustomerDailyStatView;
import com.imyeyu.api.modules.gao.vo.GaoCustomerInviteUpdateReq; import com.imyeyu.api.modules.gao.vo.GaoCustomerInviteUpdateReq;
import com.imyeyu.api.modules.gao.vo.GaoCustomerSearchReq; import com.imyeyu.api.modules.gao.vo.GaoCustomerSearchReq;
@@ -54,6 +56,8 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
private final GaoCustomerMapper mapper; private final GaoCustomerMapper mapper;
private final AttachmentService attachmentService; private final AttachmentService attachmentService;
private final UserLoginService userLoginService;
private final UserService userService;
@Override @Override
protected BaseMapper<GaoCustomer, String> mapper() { protected BaseMapper<GaoCustomer, String> mapper() {
@@ -63,6 +67,7 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
@Override @Override
public void create(GaoCustomer entity) { public void create(GaoCustomer entity) {
checkEntity(entity, false); checkEntity(entity, false);
entity.setCreatorUserId(userLoginService.getRequireLoginUserId());
super.create(entity); super.create(entity);
saveAttachment(entity.getId(), resolveAttachmentList(entity)); saveAttachment(entity.getId(), resolveAttachmentList(entity));
loadTransient(entity); loadTransient(entity);
@@ -254,19 +259,22 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
private void checkEntity(GaoCustomer entity, boolean requireId) { private void checkEntity(GaoCustomer entity, boolean requireId) {
TimiException.required(entity, "not found customer"); TimiException.required(entity, "not found customer");
GaoCustomer dbCustomer;
if (requireId) { if (requireId) {
TimiException.required(entity.getId(), "not found customer.id"); TimiException.required(entity.getId(), "not found customer.id");
dbCustomer = super.get(entity.getId());
entity.setCreatorUserId(dbCustomer.getCreatorUserId());
} }
TimiException.required(entity.getName(), "not found customer.name"); TimiException.required(entity.getName(), "not found customer.name");
entity.setName(entity.getName().trim()); entity.setName(entity.getName().trim());
TimiException.requiredTrue(!entity.getName().isEmpty(), "not found customer.name"); TimiException.requiredTrue(!entity.getName().isEmpty(), "not found customer.name");
GaoCustomer dbCustomer = mapper.selectByName(entity.getName()); GaoCustomer duplicateCustomer = mapper.selectByName(entity.getName());
if (dbCustomer != null && !dbCustomer.getId().equals(entity.getId())) { if (duplicateCustomer != null && !duplicateCustomer.getId().equals(entity.getId())) {
throw new TimiException(TimiCode.ARG_BAD, "客户姓名已存在"); throw new TimiException(TimiCode.ARG_BAD, "客户姓名已存在");
} }
if (TimiJava.isNotEmpty(entity.getCode())) { if (TimiJava.isNotEmpty(entity.getCode())) {
dbCustomer = mapper.selectByCode(entity.getCode()); duplicateCustomer = mapper.selectByCode(entity.getCode());
if (dbCustomer != null && !dbCustomer.getId().equals(entity.getId())) { if (duplicateCustomer != null && !duplicateCustomer.getId().equals(entity.getId())) {
throw new TimiException(TimiCode.ARG_BAD, "客户编码已存在"); throw new TimiException(TimiCode.ARG_BAD, "客户编码已存在");
} }
} }
@@ -283,6 +291,9 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
if (TimiJava.isNotEmpty(customer.getIntroducerCustomerId())) { if (TimiJava.isNotEmpty(customer.getIntroducerCustomerId())) {
customer.setIntroducerCustomer(super.get(customer.getIntroducerCustomerId())); customer.setIntroducerCustomer(super.get(customer.getIntroducerCustomerId()));
} }
if (TimiJava.isNotEmpty(customer.getCreatorUserId())) {
customer.setCreatorUser(userService.get(customer.getCreatorUserId()));
}
customer.setInvitedCount(mapper.countInvited(customer.getId())); customer.setInvitedCount(mapper.countInvited(customer.getId()));
customer.setAttachmentList(attachmentService.listByBizId(Attachment.BizType.GAO_CUSTOMER, customer.getId(), GaoCustomer.AttachType.PHOTO.name())); customer.setAttachmentList(attachmentService.listByBizId(Attachment.BizType.GAO_CUSTOMER, customer.getId(), GaoCustomer.AttachType.PHOTO.name()));
} }
@@ -0,0 +1,3 @@
ALTER TABLE `gao_customer`
ADD COLUMN `creator_user_id` VARCHAR(36) NULL COMMENT '录入用户 ID' AFTER `introducer_customer_id`,
ADD KEY `idx_gao_customer_creator_user_id` (`creator_user_id`);