Compare commits

...
4 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
timi db94d8f932 Merge pull request 'v1.0.3' (#8) from dev into master
Reviewed-on: #8
2026-07-31 17:19:48 +00:00
Timi 6c537852a0 v1.0.3
CI / build-deploy (pull_request) Successful in 1m8s
CI / notify-on-failure (pull_request) Has been skipped
2026-08-01 01:19:21 +08:00
4 changed files with 26 additions and 5 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
outputs:
deployment_status: ${{ steps.set_status.outputs.status }}
env:
JAVA_HOME: /usr/lib/jvm/java-21-openjdk
JAVA_HOME: /usr/lib/jvm/java-25-openjdk
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -2,6 +2,7 @@ package com.imyeyu.api.modules.gao.entity;
import com.fasterxml.jackson.databind.JsonNode;
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.spring.annotation.table.Transient;
import com.imyeyu.spring.entity.UUIDEntity;
@@ -59,12 +60,18 @@ public class GaoCustomer extends UUIDEntity {
/// 介绍人客户 ID
private String introducerCustomerId;
/// 录入用户 ID
private String creatorUserId;
@Transient
private Long lastSignInAt;
@Transient
private GaoCustomer introducerCustomer;
@Transient
private User creatorUser;
@Transient
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.mapper.GaoCustomerMapper;
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.GaoCustomerInviteUpdateReq;
import com.imyeyu.api.modules.gao.vo.GaoCustomerSearchReq;
@@ -54,6 +56,8 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
private final GaoCustomerMapper mapper;
private final AttachmentService attachmentService;
private final UserLoginService userLoginService;
private final UserService userService;
@Override
protected BaseMapper<GaoCustomer, String> mapper() {
@@ -63,6 +67,7 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
@Override
public void create(GaoCustomer entity) {
checkEntity(entity, false);
entity.setCreatorUserId(userLoginService.getRequireLoginUserId());
super.create(entity);
saveAttachment(entity.getId(), resolveAttachmentList(entity));
loadTransient(entity);
@@ -254,19 +259,22 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
private void checkEntity(GaoCustomer entity, boolean requireId) {
TimiException.required(entity, "not found customer");
GaoCustomer dbCustomer;
if (requireId) {
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");
entity.setName(entity.getName().trim());
TimiException.requiredTrue(!entity.getName().isEmpty(), "not found customer.name");
GaoCustomer dbCustomer = mapper.selectByName(entity.getName());
if (dbCustomer != null && !dbCustomer.getId().equals(entity.getId())) {
GaoCustomer duplicateCustomer = mapper.selectByName(entity.getName());
if (duplicateCustomer != null && !duplicateCustomer.getId().equals(entity.getId())) {
throw new TimiException(TimiCode.ARG_BAD, "客户姓名已存在");
}
if (TimiJava.isNotEmpty(entity.getCode())) {
dbCustomer = mapper.selectByCode(entity.getCode());
if (dbCustomer != null && !dbCustomer.getId().equals(entity.getId())) {
duplicateCustomer = mapper.selectByCode(entity.getCode());
if (duplicateCustomer != null && !duplicateCustomer.getId().equals(entity.getId())) {
throw new TimiException(TimiCode.ARG_BAD, "客户编码已存在");
}
}
@@ -283,6 +291,9 @@ public class GaoCustomerServiceImplement extends AbstractEntityService<GaoCustom
if (TimiJava.isNotEmpty(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.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`);