diff --git a/.mvn/settings.xml b/.mvn/settings.xml index eb519f2..ea98727 100644 --- a/.mvn/settings.xml +++ b/.mvn/settings.xml @@ -11,7 +11,19 @@ ${user.dir}/.mvn/repository - + + + aliyun-central + central + Aliyun Central + https://maven.aliyun.com/repository/central + + + aliyun-public + * + Aliyun Public + https://maven.aliyun.com/repository/public + diff --git a/doc/sql/fund_cust_init.sql b/doc/sql/fund_cust_init.sql index 8669233..9c71fdb 100644 --- a/doc/sql/fund_cust_init.sql +++ b/doc/sql/fund_cust_init.sql @@ -66,6 +66,6 @@ INSERT INTO customer (id, tenant_id, customer_code, customer_name, contact, phon VALUES ('1', '1', 'CUST001', '测试客户A', '张三', '13800138001', 1, '1', NOW()) ON DUPLICATE KEY UPDATE customer_code=customer_code; -INSERT INTO customer_contact (tenant_id, customer_id, contact_name, phone, position, is_primary, status, created_by, created_time) -VALUES ('1', '1', '张三', '13800138001', '总经理', 1, 1, '1', NOW()) +INSERT INTO customer_contact (id, tenant_id, customer_id, contact_name, phone, position, is_primary, created_by, created_time) +VALUES ('1', '1', '1', '张三', '13800138001', '总经理', 1, '1', NOW()) ON DUPLICATE KEY UPDATE contact_name=contact_name; diff --git a/fund-common/src/main/java/com/fundplatform/common/context/TenantContextHolder.java b/fund-common/src/main/java/com/fundplatform/common/context/TenantContextHolder.java index 437c364..f9c24f0 100644 --- a/fund-common/src/main/java/com/fundplatform/common/context/TenantContextHolder.java +++ b/fund-common/src/main/java/com/fundplatform/common/context/TenantContextHolder.java @@ -8,16 +8,16 @@ package com.fundplatform.common.context; */ public final class TenantContextHolder { - private static final ThreadLocal TENANT_ID_HOLDER = new ThreadLocal<>(); + private static final ThreadLocal TENANT_ID_HOLDER = new ThreadLocal<>(); private TenantContextHolder() { } - public static void setTenantId(Long tenantId) { + public static void setTenantId(String tenantId) { TENANT_ID_HOLDER.set(tenantId); } - public static Long getTenantId() { + public static String getTenantId() { return TENANT_ID_HOLDER.get(); } diff --git a/fund-common/src/main/java/com/fundplatform/common/feign/FeignChainInterceptor.java b/fund-common/src/main/java/com/fundplatform/common/feign/FeignChainInterceptor.java index 68ffa47..df46752 100644 --- a/fund-common/src/main/java/com/fundplatform/common/feign/FeignChainInterceptor.java +++ b/fund-common/src/main/java/com/fundplatform/common/feign/FeignChainInterceptor.java @@ -46,15 +46,15 @@ public class FeignChainInterceptor implements RequestInterceptor { template.header(HEADER_REQUEST_TIME, String.valueOf(System.currentTimeMillis())); // 3. 多租户透传 - Long tenantId = TenantContextHolder.getTenantId(); + String tenantId = TenantContextHolder.getTenantId(); if (tenantId != null) { - template.header(HEADER_TENANT_ID, String.valueOf(tenantId)); + template.header(HEADER_TENANT_ID, tenantId); } // 4. 用户信息透传 - Long uid = UserContextHolder.getUserId(); + String uid = UserContextHolder.getUserId(); if (uid != null) { - template.header(HEADER_UID, String.valueOf(uid)); + template.header(HEADER_UID, uid); } String uname = UserContextHolder.getUserName(); if (uname != null && !uname.isEmpty()) { diff --git a/fund-common/src/main/java/com/fundplatform/common/web/ContextInterceptor.java b/fund-common/src/main/java/com/fundplatform/common/web/ContextInterceptor.java index cf7f860..b959ce6 100644 --- a/fund-common/src/main/java/com/fundplatform/common/web/ContextInterceptor.java +++ b/fund-common/src/main/java/com/fundplatform/common/web/ContextInterceptor.java @@ -62,23 +62,13 @@ public class ContextInterceptor implements HandlerInterceptor { // 提取租户ID String tenantIdStr = request.getHeader(HEADER_TENANT_ID); if (tenantIdStr != null && !tenantIdStr.isEmpty()) { - try { - Long tenantId = Long.parseLong(tenantIdStr); - TenantContextHolder.setTenantId(tenantId); - } catch (NumberFormatException e) { - // 忽略无效的租户ID - } + TenantContextHolder.setTenantId(tenantIdStr); } // 提取用户 ID String userIdStr = request.getHeader(HEADER_USER_ID); if (userIdStr != null && !userIdStr.isEmpty()) { - try { - Long userId = Long.parseLong(userIdStr); - UserContextHolder.setUserId(userId); - } catch (NumberFormatException e) { - // 忽略无效的用户 ID - } + UserContextHolder.setUserId(userIdStr); } // 提取或生成 TraceId(全链路唯一标识) diff --git a/fund-common/src/test/java/com/fundplatform/common/context/TenantContextHolderTest.java b/fund-common/src/test/java/com/fundplatform/common/context/TenantContextHolderTest.java index ab41a39..25dfca7 100644 --- a/fund-common/src/test/java/com/fundplatform/common/context/TenantContextHolderTest.java +++ b/fund-common/src/test/java/com/fundplatform/common/context/TenantContextHolderTest.java @@ -19,9 +19,9 @@ class TenantContextHolderTest { @Test @DisplayName("设置租户ID后可以正确获取") void setAndGetTenantId() { - TenantContextHolder.setTenantId(100L); + TenantContextHolder.setTenantId("100"); - assertEquals(100L, TenantContextHolder.getTenantId()); + assertEquals("100", TenantContextHolder.getTenantId()); } @Test @@ -33,7 +33,7 @@ class TenantContextHolderTest { @Test @DisplayName("clear 后 getTenantId 返回 null") void clear_removesValue() { - TenantContextHolder.setTenantId(200L); + TenantContextHolder.setTenantId("200"); TenantContextHolder.clear(); assertNull(TenantContextHolder.getTenantId()); @@ -42,17 +42,17 @@ class TenantContextHolderTest { @Test @DisplayName("多次设置取最后一次的值") void setMultipleTimes_lastValueWins() { - TenantContextHolder.setTenantId(10L); - TenantContextHolder.setTenantId(20L); - TenantContextHolder.setTenantId(30L); + TenantContextHolder.setTenantId("10"); + TenantContextHolder.setTenantId("20"); + TenantContextHolder.setTenantId("30"); - assertEquals(30L, TenantContextHolder.getTenantId()); + assertEquals("30", TenantContextHolder.getTenantId()); } @Test @DisplayName("设置 null 值后 getTenantId 返回 null") void setNullTenantId() { - TenantContextHolder.setTenantId(100L); + TenantContextHolder.setTenantId("100"); TenantContextHolder.setTenantId(null); assertNull(TenantContextHolder.getTenantId()); @@ -61,16 +61,16 @@ class TenantContextHolderTest { @Test @DisplayName("线程隔离 - 子线程设置的值不影响主线程") void threadIsolation() throws InterruptedException { - TenantContextHolder.setTenantId(1L); + TenantContextHolder.setTenantId("1"); Thread subThread = new Thread(() -> { - TenantContextHolder.setTenantId(999L); - assertEquals(999L, TenantContextHolder.getTenantId()); + TenantContextHolder.setTenantId("999"); + assertEquals("999", TenantContextHolder.getTenantId()); }); subThread.start(); subThread.join(); // 主线程的值不受子线程影响 - assertEquals(1L, TenantContextHolder.getTenantId()); + assertEquals("1", TenantContextHolder.getTenantId()); } } diff --git a/fund-common/src/test/java/com/fundplatform/common/context/UserContextHolderTest.java b/fund-common/src/test/java/com/fundplatform/common/context/UserContextHolderTest.java index 72eee58..2317245 100644 --- a/fund-common/src/test/java/com/fundplatform/common/context/UserContextHolderTest.java +++ b/fund-common/src/test/java/com/fundplatform/common/context/UserContextHolderTest.java @@ -19,9 +19,9 @@ class UserContextHolderTest { @Test @DisplayName("设置用户ID后可以正确获取") void setAndGetUserId() { - UserContextHolder.setUserId(1L); + UserContextHolder.setUserId("1"); - assertEquals(1L, UserContextHolder.getUserId()); + assertEquals("1", UserContextHolder.getUserId()); } @Test @@ -35,10 +35,10 @@ class UserContextHolderTest { @Test @DisplayName("同时设置 userId 和 userName") void setBoth_userId_and_userName() { - UserContextHolder.setUserId(42L); + UserContextHolder.setUserId("42"); UserContextHolder.setUserName("testuser"); - assertEquals(42L, UserContextHolder.getUserId()); + assertEquals("42", UserContextHolder.getUserId()); assertEquals("testuser", UserContextHolder.getUserName()); } @@ -57,7 +57,7 @@ class UserContextHolderTest { @Test @DisplayName("clear 后 userId 和 userName 均为 null") void clear_removesAllValues() { - UserContextHolder.setUserId(1L); + UserContextHolder.setUserId("1"); UserContextHolder.setUserName("admin"); UserContextHolder.clear(); @@ -68,26 +68,26 @@ class UserContextHolderTest { @Test @DisplayName("多次设置 userId 取最后一次的值") void setUserId_multiple_lastWins() { - UserContextHolder.setUserId(1L); - UserContextHolder.setUserId(2L); - UserContextHolder.setUserId(3L); + UserContextHolder.setUserId("1"); + UserContextHolder.setUserId("2"); + UserContextHolder.setUserId("3"); - assertEquals(3L, UserContextHolder.getUserId()); + assertEquals("3", UserContextHolder.getUserId()); } @Test @DisplayName("线程隔离 - 子线程设置的 userId 不影响主线程") void threadIsolation_userId() throws InterruptedException { - UserContextHolder.setUserId(1L); + UserContextHolder.setUserId("1"); Thread subThread = new Thread(() -> { - UserContextHolder.setUserId(999L); - assertEquals(999L, UserContextHolder.getUserId()); + UserContextHolder.setUserId("999"); + assertEquals("999", UserContextHolder.getUserId()); }); subThread.start(); subThread.join(); - assertEquals(1L, UserContextHolder.getUserId()); + assertEquals("1", UserContextHolder.getUserId()); } @Test diff --git a/fund-cust/src/main/java/com/fundplatform/cust/config/MybatisPlusConfig.java b/fund-cust/src/main/java/com/fundplatform/cust/config/MybatisPlusConfig.java index aff9690..92d442b 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/config/MybatisPlusConfig.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/config/MybatisPlusConfig.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; import com.fundplatform.common.context.TenantContextHolder; import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.StringValue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -26,11 +26,11 @@ public class MybatisPlusConfig { tenantInterceptor.setTenantLineHandler(new com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler() { @Override public Expression getTenantId() { - Long tenantId = TenantContextHolder.getTenantId(); + String tenantId = TenantContextHolder.getTenantId(); if (tenantId == null) { - return new LongValue(1); + return new StringValue("1"); } - return new LongValue(tenantId); + return new StringValue(tenantId); } @Override diff --git a/fund-cust/src/main/java/com/fundplatform/cust/controller/ContactController.java b/fund-cust/src/main/java/com/fundplatform/cust/controller/ContactController.java index 2ba9bc3..0c5a79b 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/controller/ContactController.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/controller/ContactController.java @@ -30,8 +30,8 @@ public class ContactController { */ @Operation(summary = "创建联系人") @PostMapping - public Result create(@Valid @RequestBody ContactDTO dto) { - Long id = contactService.createContact(dto); + public Result create(@Valid @RequestBody ContactDTO dto) { + String id = contactService.createContact(dto); return Result.success(id); } @@ -40,7 +40,7 @@ public class ContactController { */ @Operation(summary = "更新联系人信息") @PutMapping("/{id}") - public Result update(@Parameter(description = "联系人ID") @PathVariable Long id, @Valid @RequestBody ContactDTO dto) { + public Result update(@Parameter(description = "联系人ID") @PathVariable String id, @Valid @RequestBody ContactDTO dto) { boolean result = contactService.updateContact(id, dto); return Result.success(result); } @@ -50,7 +50,7 @@ public class ContactController { */ @Operation(summary = "根据ID查询联系人") @GetMapping("/{id}") - public Result getById(@Parameter(description = "联系人ID") @PathVariable Long id) { + public Result getById(@Parameter(description = "联系人ID") @PathVariable String id) { ContactVO vo = contactService.getContactById(id); return Result.success(vo); } @@ -63,7 +63,7 @@ public class ContactController { public Result> page( @Parameter(description = "页码") @RequestParam(defaultValue = "1") int pageNum, @Parameter(description = "每页条数") @RequestParam(defaultValue = "10") int pageSize, - @Parameter(description = "客户ID") @RequestParam(required = false) Long customerId) { + @Parameter(description = "客户ID") @RequestParam(required = false) String customerId) { Page page = contactService.pageContacts(pageNum, pageSize, customerId); return Result.success(page); } @@ -73,7 +73,7 @@ public class ContactController { */ @Operation(summary = "删除联系人") @DeleteMapping("/{id}") - public Result delete(@Parameter(description = "联系人ID") @PathVariable Long id) { + public Result delete(@Parameter(description = "联系人ID") @PathVariable String id) { boolean result = contactService.deleteContact(id); return Result.success(result); } @@ -84,8 +84,8 @@ public class ContactController { @Operation(summary = "设置主要联系人", description = "将指定联系人设为客户的主要联系人") @PutMapping("/{customerId}/contact/{contactId}/primary") public Result setPrimary( - @Parameter(description = "客户ID") @PathVariable Long customerId, - @Parameter(description = "联系人ID") @PathVariable Long contactId) { + @Parameter(description = "客户ID") @PathVariable String customerId, + @Parameter(description = "联系人ID") @PathVariable String contactId) { boolean result = contactService.setPrimaryContact(customerId, contactId); return Result.success(result); } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/controller/CustomerController.java b/fund-cust/src/main/java/com/fundplatform/cust/controller/CustomerController.java index a91d7f7..a487cd3 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/controller/CustomerController.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/controller/CustomerController.java @@ -32,8 +32,8 @@ public class CustomerController { */ @Operation(summary = "创建客户") @PostMapping - public Result createCustomer(@Valid @RequestBody CustomerCreateDTO dto) { - Long id = customerService.createCustomer(dto); + public Result createCustomer(@Valid @RequestBody CustomerCreateDTO dto) { + String id = customerService.createCustomer(dto); return Result.success(id); } @@ -42,7 +42,7 @@ public class CustomerController { */ @Operation(summary = "更新客户信息") @PutMapping("/{id}") - public Result updateCustomer(@Parameter(description = "客户ID") @PathVariable Long id, @Valid @RequestBody CustomerUpdateDTO dto) { + public Result updateCustomer(@Parameter(description = "客户ID") @PathVariable String id, @Valid @RequestBody CustomerUpdateDTO dto) { customerService.updateCustomer(id, dto); return Result.success(); } @@ -52,7 +52,7 @@ public class CustomerController { */ @Operation(summary = "查询客户详情") @GetMapping("/{id}") - public Result getCustomer(@Parameter(description = "客户ID") @PathVariable Long id) { + public Result getCustomer(@Parameter(description = "客户ID") @PathVariable String id) { CustomerVO vo = customerService.getCustomerById(id); return Result.success(vo); } @@ -82,7 +82,7 @@ public class CustomerController { */ @Operation(summary = "删除客户(逻辑删除)") @DeleteMapping("/{id}") - public Result deleteCustomer(@Parameter(description = "客户ID") @PathVariable Long id) { + public Result deleteCustomer(@Parameter(description = "客户ID") @PathVariable String id) { customerService.deleteCustomer(id); return Result.success(); } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/dto/ContactDTO.java b/fund-cust/src/main/java/com/fundplatform/cust/dto/ContactDTO.java index 8147f6a..c8ba715 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/dto/ContactDTO.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/dto/ContactDTO.java @@ -8,13 +8,13 @@ import jakarta.validation.constraints.NotNull; */ public class ContactDTO { - private Long id; + private String id; /** * 客户ID */ @NotNull(message = "客户ID不能为空") - private Long customerId; + private String customerId; /** * 联系人姓名 @@ -52,19 +52,19 @@ public class ContactDTO { */ private String remark; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/service/ContactService.java b/fund-cust/src/main/java/com/fundplatform/cust/service/ContactService.java index 025f000..e02e067 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/service/ContactService.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/service/ContactService.java @@ -12,30 +12,30 @@ public interface ContactService { /** * 创建联系人 */ - Long createContact(ContactDTO dto); + String createContact(ContactDTO dto); /** * 更新联系人 */ - boolean updateContact(Long id, ContactDTO dto); + boolean updateContact(String id, ContactDTO dto); /** * 根据ID查询联系人 */ - ContactVO getContactById(Long id); + ContactVO getContactById(String id); /** * 分页查询联系人 */ - Page pageContacts(int pageNum, int pageSize, Long customerId); + Page pageContacts(int pageNum, int pageSize, String customerId); /** * 删除联系人 */ - boolean deleteContact(Long id); + boolean deleteContact(String id); /** * 设置主要联系人 */ - boolean setPrimaryContact(Long customerId, Long contactId); + boolean setPrimaryContact(String customerId, String contactId); } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/service/CustomerService.java b/fund-cust/src/main/java/com/fundplatform/cust/service/CustomerService.java index c60cbc8..7154ba4 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/service/CustomerService.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/service/CustomerService.java @@ -13,17 +13,17 @@ public interface CustomerService { /** * 创建客户 */ - Long createCustomer(CustomerCreateDTO dto); + String createCustomer(CustomerCreateDTO dto); /** * 更新客户 */ - void updateCustomer(Long id, CustomerUpdateDTO dto); + void updateCustomer(String id, CustomerUpdateDTO dto); /** * 查询客户详情 */ - CustomerVO getCustomerById(Long id); + CustomerVO getCustomerById(String id); /** * 分页查询客户 @@ -33,5 +33,5 @@ public interface CustomerService { /** * 删除客户 */ - void deleteCustomer(Long id); + void deleteCustomer(String id); } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/service/impl/ContactServiceImpl.java b/fund-cust/src/main/java/com/fundplatform/cust/service/impl/ContactServiceImpl.java index ed97bfc..d73608b 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/service/impl/ContactServiceImpl.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/service/impl/ContactServiceImpl.java @@ -32,7 +32,7 @@ public class ContactServiceImpl implements ContactService { @Override @Transactional(rollbackFor = Exception.class) - public Long createContact(ContactDTO dto) { + public String createContact(ContactDTO dto) { CustomerContact contact = new CustomerContact(); contact.setCustomerId(dto.getCustomerId()); contact.setContactName(dto.getContactName()); @@ -52,7 +52,7 @@ public class ContactServiceImpl implements ContactService { @Override @Transactional(rollbackFor = Exception.class) - public boolean updateContact(Long id, ContactDTO dto) { + public boolean updateContact(String id, ContactDTO dto) { CustomerContact contact = contactDataService.getById(id); if (contact == null || contact.getDeleted() == 1) { throw new RuntimeException("联系人不存在"); @@ -73,7 +73,7 @@ public class ContactServiceImpl implements ContactService { } @Override - public ContactVO getContactById(Long id) { + public ContactVO getContactById(String id) { CustomerContact contact = contactDataService.getById(id); if (contact == null || contact.getDeleted() == 1) { throw new RuntimeException("联系人不存在"); @@ -82,7 +82,7 @@ public class ContactServiceImpl implements ContactService { } @Override - public Page pageContacts(int pageNum, int pageSize, Long customerId) { + public Page pageContacts(int pageNum, int pageSize, String customerId) { Page page = new Page<>(pageNum, pageSize); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(CustomerContact::getDeleted, 0); @@ -100,7 +100,7 @@ public class ContactServiceImpl implements ContactService { @Override @Transactional(rollbackFor = Exception.class) - public boolean deleteContact(Long id) { + public boolean deleteContact(String id) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(CustomerContact::getId, id); wrapper.set(CustomerContact::getDeleted, 1); @@ -112,7 +112,7 @@ public class ContactServiceImpl implements ContactService { @Override @Transactional(rollbackFor = Exception.class) - public boolean setPrimaryContact(Long customerId, Long contactId) { + public boolean setPrimaryContact(String customerId, String contactId) { // 先清除该客户的所有主要联系人标记 LambdaUpdateWrapper clearWrapper = new LambdaUpdateWrapper<>(); clearWrapper.eq(CustomerContact::getCustomerId, customerId); diff --git a/fund-cust/src/main/java/com/fundplatform/cust/service/impl/CustomerServiceImpl.java b/fund-cust/src/main/java/com/fundplatform/cust/service/impl/CustomerServiceImpl.java index 9bf7c5f..482551d 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/service/impl/CustomerServiceImpl.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/service/impl/CustomerServiceImpl.java @@ -26,7 +26,7 @@ public class CustomerServiceImpl implements CustomerService { } @Override - public Long createCustomer(CustomerCreateDTO dto) { + public String createCustomer(CustomerCreateDTO dto) { // 检查编码是否重复 LambdaQueryWrapper checkWrapper = new LambdaQueryWrapper<>(); checkWrapper.eq(Customer::getCustomerCode, dto.getCustomerCode()); @@ -52,7 +52,7 @@ public class CustomerServiceImpl implements CustomerService { } @Override - public void updateCustomer(Long id, CustomerUpdateDTO dto) { + public void updateCustomer(String id, CustomerUpdateDTO dto) { Customer customer = customerDataService.getById(id); if (customer == null) { throw new RuntimeException("客户不存在"); @@ -84,7 +84,7 @@ public class CustomerServiceImpl implements CustomerService { } @Override - public CustomerVO getCustomerById(Long id) { + public CustomerVO getCustomerById(String id) { Customer customer = customerDataService.getById(id); if (customer == null) { throw new RuntimeException("客户不存在"); @@ -116,7 +116,7 @@ public class CustomerServiceImpl implements CustomerService { } @Override - public void deleteCustomer(Long id) { + public void deleteCustomer(String id) { customerDataService.removeById(id); } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/vo/ContactVO.java b/fund-cust/src/main/java/com/fundplatform/cust/vo/ContactVO.java index ca8aa18..4eadc8f 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/vo/ContactVO.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/vo/ContactVO.java @@ -7,12 +7,12 @@ import java.time.LocalDateTime; */ public class ContactVO { - private Long id; + private String id; /** * 客户ID */ - private Long customerId; + private String customerId; /** * 客户名称 @@ -64,19 +64,19 @@ public class ContactVO { */ private LocalDateTime updatedTime; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-cust/src/main/java/com/fundplatform/cust/vo/CustomerVO.java b/fund-cust/src/main/java/com/fundplatform/cust/vo/CustomerVO.java index 3c8d179..6a5666d 100644 --- a/fund-cust/src/main/java/com/fundplatform/cust/vo/CustomerVO.java +++ b/fund-cust/src/main/java/com/fundplatform/cust/vo/CustomerVO.java @@ -5,7 +5,7 @@ package com.fundplatform.cust.vo; */ public class CustomerVO { - private Long customerId; + private String customerId; private String customerCode; private String customerName; private String contact; @@ -15,11 +15,11 @@ public class CustomerVO { private Integer status; private String remark; - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-exp/src/main/java/com/fundplatform/exp/dto/ExpenseTypeDTO.java b/fund-exp/src/main/java/com/fundplatform/exp/dto/ExpenseTypeDTO.java index a96c4c9..34ab19b 100644 --- a/fund-exp/src/main/java/com/fundplatform/exp/dto/ExpenseTypeDTO.java +++ b/fund-exp/src/main/java/com/fundplatform/exp/dto/ExpenseTypeDTO.java @@ -6,7 +6,7 @@ import jakarta.validation.constraints.Size; public class ExpenseTypeDTO { - private Long id; + private String id; @Size(max = 50, message = "类型编码不能超过50个字符") private String typeCode; @@ -15,7 +15,7 @@ public class ExpenseTypeDTO { @Size(max = 100, message = "类型名称不能超过100个字符") private String typeName; - private Long parentId = 0L; + private String parentId = "0"; private Integer typeLevel = 1; @@ -28,11 +28,11 @@ public class ExpenseTypeDTO { private String remark; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } @@ -52,11 +52,11 @@ public class ExpenseTypeDTO { this.typeName = typeName; } - public Long getParentId() { + public String getParentId() { return parentId; } - public void setParentId(Long parentId) { + public void setParentId(String parentId) { this.parentId = parentId; } diff --git a/fund-exp/src/main/java/com/fundplatform/exp/service/ExpenseTypeService.java b/fund-exp/src/main/java/com/fundplatform/exp/service/ExpenseTypeService.java index dccbc40..829200e 100644 --- a/fund-exp/src/main/java/com/fundplatform/exp/service/ExpenseTypeService.java +++ b/fund-exp/src/main/java/com/fundplatform/exp/service/ExpenseTypeService.java @@ -16,7 +16,7 @@ public interface ExpenseTypeService { /** * 创建支出类型 */ - Long createType(ExpenseTypeDTO dto); + String createType(ExpenseTypeDTO dto); /** * 更新支出类型 @@ -26,7 +26,7 @@ public interface ExpenseTypeService { /** * 根据ID查询支出类型 */ - ExpenseTypeVO getTypeById(Long id); + ExpenseTypeVO getTypeById(String id); /** * 查询支出类型树形结构 @@ -36,15 +36,15 @@ public interface ExpenseTypeService { /** * 查询指定父级的子类型列表 */ - List getChildrenByParentId(Long parentId); + List getChildrenByParentId(String parentId); /** * 删除支出类型 */ - boolean deleteType(Long id); + boolean deleteType(String id); /** * 更新状态 */ - boolean updateStatus(Long id, Integer status); + boolean updateStatus(String id, Integer status); } diff --git a/fund-exp/src/main/java/com/fundplatform/exp/service/impl/ExpenseTypeServiceImpl.java b/fund-exp/src/main/java/com/fundplatform/exp/service/impl/ExpenseTypeServiceImpl.java index 38da7f3..2220289 100644 --- a/fund-exp/src/main/java/com/fundplatform/exp/service/impl/ExpenseTypeServiceImpl.java +++ b/fund-exp/src/main/java/com/fundplatform/exp/service/impl/ExpenseTypeServiceImpl.java @@ -52,11 +52,11 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { @Override @Transactional(rollbackFor = Exception.class) - public Long createType(ExpenseTypeDTO dto) { + public String createType(ExpenseTypeDTO dto) { ExpenseType type = new ExpenseType(); type.setTypeCode(dto.getTypeCode()); type.setTypeName(dto.getTypeName()); - type.setParentId(dto.getParentId() != null ? dto.getParentId() : 0L); + type.setParentId(dto.getParentId() != null ? dto.getParentId() : "0"); type.setTypeLevel(dto.getTypeLevel() != null ? dto.getTypeLevel() : 1); type.setSortOrder(dto.getSortOrder() != null ? dto.getSortOrder() : 0); type.setDescription(dto.getDescription()); @@ -86,7 +86,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { type.setId(dto.getId()); type.setTypeCode(dto.getTypeCode()); type.setTypeName(dto.getTypeName()); - type.setParentId(dto.getParentId() != null ? dto.getParentId() : 0L); + type.setParentId(dto.getParentId() != null ? dto.getParentId() : "0"); type.setSortOrder(dto.getSortOrder()); type.setDescription(dto.getDescription()); type.setStatus(dto.getStatus()); @@ -97,7 +97,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { } @Override - public ExpenseTypeVO getTypeById(Long id) { + public ExpenseTypeVO getTypeById(String id) { ExpenseType type = typeDataService.getById(id); if (type == null || type.getDeleted() == 1) { throw new RuntimeException("支出类型不存在"); @@ -114,14 +114,14 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { .orderByAsc(ExpenseType::getSortOrder); List types = typeDataService.list(wrapper); - return buildTree(types, 0L); + return buildTree(types, "0"); } @Override - public List getChildrenByParentId(Long parentId) { + public List getChildrenByParentId(String parentId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExpenseType::getDeleted, 0) - .eq(ExpenseType::getParentId, parentId != null ? parentId : 0L) + .eq(ExpenseType::getParentId, parentId != null ? parentId : "0") .orderByAsc(ExpenseType::getSortOrder); List types = typeDataService.list(wrapper); @@ -130,7 +130,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { @Override @Transactional(rollbackFor = Exception.class) - public boolean deleteType(Long id) { + public boolean deleteType(String id) { // 检查是否有子类型 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExpenseType::getParentId, id).eq(ExpenseType::getDeleted, 0); @@ -148,7 +148,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { @Override @Transactional(rollbackFor = Exception.class) - public boolean updateStatus(Long id, Integer status) { + public boolean updateStatus(String id, Integer status) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(ExpenseType::getId, id) .set(ExpenseType::getStatus, status) @@ -159,9 +159,9 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { /** * 构建树形结构 */ - private List buildTree(List types, Long parentId) { + private List buildTree(List types, String parentId) { List tree = new ArrayList<>(); - Map> groupedByParent = types.stream() + Map> groupedByParent = types.stream() .collect(Collectors.groupingBy(ExpenseType::getParentId)); List rootTypes = groupedByParent.getOrDefault(parentId, new ArrayList<>()); @@ -173,7 +173,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { return tree; } - private List buildChildren(Map> groupedByParent, Long parentId) { + private List buildChildren(Map> groupedByParent, String parentId) { List children = groupedByParent.getOrDefault(parentId, new ArrayList<>()); return children.stream().map(type -> { ExpenseTypeVO vo = convertToVO(type); @@ -199,7 +199,7 @@ public class ExpenseTypeServiceImpl implements ExpenseTypeService { vo.setRemark(type.getRemark()); // 查询父类型名称 - if (type.getParentId() != null && type.getParentId() > 0) { + if (type.getParentId() != null && !"0".equals(type.getParentId())) { ExpenseType parentType = typeDataService.getById(type.getParentId()); if (parentType != null) { vo.setParentName(parentType.getTypeName()); diff --git a/fund-exp/src/main/java/com/fundplatform/exp/vo/ExpenseTypeVO.java b/fund-exp/src/main/java/com/fundplatform/exp/vo/ExpenseTypeVO.java index 37970da..0ed0197 100644 --- a/fund-exp/src/main/java/com/fundplatform/exp/vo/ExpenseTypeVO.java +++ b/fund-exp/src/main/java/com/fundplatform/exp/vo/ExpenseTypeVO.java @@ -8,21 +8,17 @@ import java.util.List; public class ExpenseTypeVO { - @JsonSerialize(using = ToStringSerializer.class) - private Long id; + private String id; private String typeCode; private String typeName; - @JsonSerialize(using = ToStringSerializer.class) - private Long parentId; + private String parentId; private String parentName; private Integer typeLevel; private Integer sortOrder; private String description; private Integer status; - @JsonSerialize(using = ToStringSerializer.class) - private Long tenantId; - @JsonSerialize(using = ToStringSerializer.class) - private Long createdBy; + private String tenantId; + private String createdBy; private LocalDateTime createdTime; private LocalDateTime updatedTime; private String remark; @@ -30,11 +26,11 @@ public class ExpenseTypeVO { /** 子节点列表(用于树形结构) */ private List children; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } @@ -54,11 +50,11 @@ public class ExpenseTypeVO { this.typeName = typeName; } - public Long getParentId() { + public String getParentId() { return parentId; } - public void setParentId(Long parentId) { + public void setParentId(String parentId) { this.parentId = parentId; } @@ -102,19 +98,19 @@ public class ExpenseTypeVO { this.status = status; } - public Long getTenantId() { + public String getTenantId() { return tenantId; } - public void setTenantId(Long tenantId) { + public void setTenantId(String tenantId) { this.tenantId = tenantId; } - public Long getCreatedBy() { + public String getCreatedBy() { return createdBy; } - public void setCreatedBy(Long createdBy) { + public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/config/MybatisPlusConfig.java b/fund-proj/src/main/java/com/fundplatform/proj/config/MybatisPlusConfig.java index f4a50eb..a75a3b8 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/config/MybatisPlusConfig.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/config/MybatisPlusConfig.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; import com.fundplatform.common.context.TenantContextHolder; import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.StringValue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -26,11 +26,11 @@ public class MybatisPlusConfig { tenantInterceptor.setTenantLineHandler(new com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler() { @Override public Expression getTenantId() { - Long tenantId = TenantContextHolder.getTenantId(); + String tenantId = TenantContextHolder.getTenantId(); if (tenantId == null) { - return new LongValue(1); + return new StringValue("1"); } - return new LongValue(tenantId); + return new StringValue(tenantId); } @Override diff --git a/fund-proj/src/main/java/com/fundplatform/proj/controller/ProjectController.java b/fund-proj/src/main/java/com/fundplatform/proj/controller/ProjectController.java index f95cfc9..a3a7b70 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/controller/ProjectController.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/controller/ProjectController.java @@ -30,8 +30,8 @@ public class ProjectController { * 创建项目 */ @PostMapping - public Result createProject(@Valid @RequestBody ProjectCreateDTO dto) { - Long id = projectService.createProject(dto); + public Result createProject(@Valid @RequestBody ProjectCreateDTO dto) { + String id = projectService.createProject(dto); return Result.success(id); } @@ -39,7 +39,7 @@ public class ProjectController { * 更新项目 */ @PutMapping("/{id}") - public Result updateProject(@PathVariable Long id, @Valid @RequestBody ProjectUpdateDTO dto) { + public Result updateProject(@PathVariable String id, @Valid @RequestBody ProjectUpdateDTO dto) { projectService.updateProject(id, dto); return Result.success(); } @@ -67,7 +67,7 @@ public class ProjectController { * 查询项目详情 */ @GetMapping("/{id}") - public Result getProject(@PathVariable Long id) { + public Result getProject(@PathVariable String id) { ProjectVO vo = projectService.getProjectById(id); return Result.success(vo); } @@ -76,7 +76,7 @@ public class ProjectController { * 删除项目 */ @DeleteMapping("/{id}") - public Result deleteProject(@PathVariable Long id) { + public Result deleteProject(@PathVariable String id) { projectService.deleteProject(id); return Result.success(); } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/controller/RequirementController.java b/fund-proj/src/main/java/com/fundplatform/proj/controller/RequirementController.java index ecab245..cc0b88e 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/controller/RequirementController.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/controller/RequirementController.java @@ -49,8 +49,8 @@ public class RequirementController { */ @PostMapping public Result create( - @RequestHeader("X-Tenant-Id") Long tenantId, - @RequestHeader("X-User-Id") Long userId, + @RequestHeader("X-Tenant-Id") String tenantId, + @RequestHeader("X-User-Id") String userId, @Valid @RequestBody RequirementDTO dto) { return requirementService.create(tenantId, userId, dto); } @@ -60,9 +60,9 @@ public class RequirementController { */ @PutMapping("/{requirementId}") public Result update( - @RequestHeader("X-Tenant-Id") Long tenantId, - @RequestHeader("X-User-Id") Long userId, - @PathVariable Long requirementId, + @RequestHeader("X-Tenant-Id") String tenantId, + @RequestHeader("X-User-Id") String userId, + @PathVariable String requirementId, @Valid @RequestBody RequirementDTO dto) { return requirementService.update(tenantId, userId, requirementId, dto); } @@ -72,9 +72,9 @@ public class RequirementController { */ @DeleteMapping("/{requirementId}") public Result delete( - @RequestHeader("X-Tenant-Id") Long tenantId, - @RequestHeader("X-User-Id") Long userId, - @PathVariable Long requirementId) { + @RequestHeader("X-Tenant-Id") String tenantId, + @RequestHeader("X-User-Id") String userId, + @PathVariable String requirementId) { return requirementService.delete(tenantId, userId, requirementId); } @@ -83,9 +83,9 @@ public class RequirementController { */ @PutMapping("/{requirementId}/status") public Result updateStatus( - @RequestHeader("X-Tenant-Id") Long tenantId, - @RequestHeader("X-User-Id") Long userId, - @PathVariable Long requirementId, + @RequestHeader("X-Tenant-Id") String tenantId, + @RequestHeader("X-User-Id") String userId, + @PathVariable String requirementId, @RequestParam String status) { return requirementService.updateStatus(tenantId, userId, requirementId, status); } @@ -95,9 +95,9 @@ public class RequirementController { */ @PutMapping("/{requirementId}/progress") public Result updateProgress( - @RequestHeader("X-Tenant-Id") Long tenantId, - @RequestHeader("X-User-Id") Long userId, - @PathVariable Long requirementId, + @RequestHeader("X-Tenant-Id") String tenantId, + @RequestHeader("X-User-Id") String userId, + @PathVariable String requirementId, @RequestParam Integer progress) { return requirementService.updateProgress(tenantId, userId, requirementId, progress); } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectCreateDTO.java b/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectCreateDTO.java index c2a6b6d..4798ee3 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectCreateDTO.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectCreateDTO.java @@ -18,7 +18,7 @@ public class ProjectCreateDTO { private String projectName; @NotNull(message = "客户ID不能为空") - private Long customerId; + private String customerId; private String customerName; @@ -47,11 +47,11 @@ public class ProjectCreateDTO { this.projectName = projectName; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectUpdateDTO.java b/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectUpdateDTO.java index 9fa74a5..c3ea5cf 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectUpdateDTO.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/dto/ProjectUpdateDTO.java @@ -18,7 +18,7 @@ public class ProjectUpdateDTO { private String projectName; @NotNull(message = "客户ID不能为空") - private Long customerId; + private String customerId; @NotBlank(message = "项目类型不能为空") private String projectType; @@ -46,11 +46,11 @@ public class ProjectUpdateDTO { this.projectName = projectName; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/service/ProjectService.java b/fund-proj/src/main/java/com/fundplatform/proj/service/ProjectService.java index 0f2bbee..ed1fcd9 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/service/ProjectService.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/service/ProjectService.java @@ -16,17 +16,17 @@ public interface ProjectService { /** * 创建项目 */ - Long createProject(ProjectCreateDTO dto); + String createProject(ProjectCreateDTO dto); /** * 更新项目 */ - void updateProject(Long id, ProjectUpdateDTO dto); + void updateProject(String id, ProjectUpdateDTO dto); /** * 查询项目详情 */ - ProjectVO getProjectById(Long id); + ProjectVO getProjectById(String id); /** * 分页查询项目 @@ -36,7 +36,7 @@ public interface ProjectService { /** * 删除项目 */ - void deleteProject(Long id); + void deleteProject(String id); /** * 获取项目状态分布 diff --git a/fund-proj/src/main/java/com/fundplatform/proj/service/RequirementService.java b/fund-proj/src/main/java/com/fundplatform/proj/service/RequirementService.java index a86bdd0..42ae32f 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/service/RequirementService.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/service/RequirementService.java @@ -99,7 +99,7 @@ public class RequirementService { * 创建需求工单 */ @Transactional - public Result create(Long tenantId, Long userId, RequirementDTO dto) { + public Result create(String tenantId, String userId, RequirementDTO dto) { // 检查编号唯一性 long count = requirementDataService.count( new LambdaQueryWrapper() @@ -141,7 +141,7 @@ public class RequirementService { * 更新需求工单 */ @Transactional - public Result update(Long tenantId, Long userId, Long requirementId, RequirementDTO dto) { + public Result update(String tenantId, String userId, String requirementId, RequirementDTO dto) { Requirement requirement = requirementDataService.getOne( new LambdaQueryWrapper() .eq(Requirement::getId, requirementId) @@ -182,7 +182,7 @@ public class RequirementService { * 删除需求工单 */ @Transactional - public Result delete(Long tenantId, Long userId, Long requirementId) { + public Result delete(String tenantId, String userId, String requirementId) { Requirement requirement = requirementDataService.getOne( new LambdaQueryWrapper() .eq(Requirement::getId, requirementId) @@ -208,7 +208,7 @@ public class RequirementService { * 更新需求状态 */ @Transactional - public Result updateStatus(Long tenantId, Long userId, Long requirementId, String status) { + public Result updateStatus(String tenantId, String userId, String requirementId, String status) { Requirement requirement = requirementDataService.getOne( new LambdaQueryWrapper() .eq(Requirement::getId, requirementId) @@ -235,7 +235,7 @@ public class RequirementService { * 更新开发进度 */ @Transactional - public Result updateProgress(Long tenantId, Long userId, Long requirementId, Integer progress) { + public Result updateProgress(String tenantId, String userId, String requirementId, Integer progress) { Requirement requirement = requirementDataService.getOne( new LambdaQueryWrapper() .eq(Requirement::getId, requirementId) diff --git a/fund-proj/src/main/java/com/fundplatform/proj/service/impl/ProjectServiceImpl.java b/fund-proj/src/main/java/com/fundplatform/proj/service/impl/ProjectServiceImpl.java index 45c7883..c515362 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/service/impl/ProjectServiceImpl.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/service/impl/ProjectServiceImpl.java @@ -31,7 +31,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public Long createProject(ProjectCreateDTO dto) { + public String createProject(ProjectCreateDTO dto) { // 检查编码是否重复 LambdaQueryWrapper checkWrapper = new LambdaQueryWrapper<>(); checkWrapper.eq(Project::getProjectCode, dto.getProjectCode()); @@ -60,7 +60,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public void updateProject(Long id, ProjectUpdateDTO dto) { + public void updateProject(String id, ProjectUpdateDTO dto) { Project project = projectDataService.getById(id); if (project == null) { throw new RuntimeException("项目不存在"); @@ -94,7 +94,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public ProjectVO getProjectById(Long id) { + public ProjectVO getProjectById(String id) { Project project = projectDataService.getById(id); if (project == null) { throw new RuntimeException("项目不存在"); @@ -126,7 +126,7 @@ public class ProjectServiceImpl implements ProjectService { } @Override - public void deleteProject(Long id) { + public void deleteProject(String id) { projectDataService.removeById(id); } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/vo/ProjectVO.java b/fund-proj/src/main/java/com/fundplatform/proj/vo/ProjectVO.java index 232dfa3..1db837a 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/vo/ProjectVO.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/vo/ProjectVO.java @@ -8,10 +8,10 @@ import java.time.LocalDate; */ public class ProjectVO { - private Long projectId; + private String projectId; private String projectCode; private String projectName; - private Long customerId; + private String customerId; private String customerName; private String projectType; private BigDecimal budgetAmount; @@ -21,11 +21,11 @@ public class ProjectVO { private Integer status; private String remark; - public Long getProjectId() { + public String getProjectId() { return projectId; } - public void setProjectId(Long projectId) { + public void setProjectId(String projectId) { this.projectId = projectId; } @@ -45,11 +45,11 @@ public class ProjectVO { this.projectName = projectName; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-proj/src/main/java/com/fundplatform/proj/vo/RequirementVO.java b/fund-proj/src/main/java/com/fundplatform/proj/vo/RequirementVO.java index f1ec5f8..496f4e4 100644 --- a/fund-proj/src/main/java/com/fundplatform/proj/vo/RequirementVO.java +++ b/fund-proj/src/main/java/com/fundplatform/proj/vo/RequirementVO.java @@ -9,13 +9,13 @@ import java.time.LocalDateTime; */ public class RequirementVO { - private Long requirementId; + private String requirementId; private String requirementCode; private String requirementName; private String description; - private Long projectId; + private String projectId; private String projectName; - private Long customerId; + private String customerId; private String customerName; private String priority; private String priorityName; @@ -32,15 +32,15 @@ public class RequirementVO { private String statusName; private Integer progress; private String attachmentUrl; - private Long tenantId; + private String tenantId; private LocalDateTime createdTime; private LocalDateTime updatedTime; - public Long getRequirementId() { + public String getRequirementId() { return requirementId; } - public void setRequirementId(Long requirementId) { + public void setRequirementId(String requirementId) { this.requirementId = requirementId; } @@ -68,11 +68,11 @@ public class RequirementVO { this.description = description; } - public Long getProjectId() { + public String getProjectId() { return projectId; } - public void setProjectId(Long projectId) { + public void setProjectId(String projectId) { this.projectId = projectId; } @@ -84,11 +84,11 @@ public class RequirementVO { this.projectName = projectName; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } @@ -220,11 +220,11 @@ public class RequirementVO { this.attachmentUrl = attachmentUrl; } - public Long getTenantId() { + public String getTenantId() { return tenantId; } - public void setTenantId(Long tenantId) { + public void setTenantId(String tenantId) { this.tenantId = tenantId; } diff --git a/fund-req/src/main/java/com/fundplatform/req/controller/FundRequestController.java b/fund-req/src/main/java/com/fundplatform/req/controller/FundRequestController.java index 79861ea..3ba6616 100644 --- a/fund-req/src/main/java/com/fundplatform/req/controller/FundRequestController.java +++ b/fund-req/src/main/java/com/fundplatform/req/controller/FundRequestController.java @@ -25,8 +25,8 @@ public class FundRequestController { * 创建用款申请 */ @PostMapping - public Result create(@Valid @RequestBody FundRequestDTO dto) { - Long id = fundRequestService.createRequest(dto); + public Result create(@Valid @RequestBody FundRequestDTO dto) { + String id = fundRequestService.createRequest(dto); return Result.success(id); } @@ -43,7 +43,7 @@ public class FundRequestController { * 根据ID查询用款申请 */ @GetMapping("/{id}") - public Result getById(@PathVariable Long id) { + public Result getById(@PathVariable String id) { FundRequestVO vo = fundRequestService.getRequestById(id); return Result.success(vo); } @@ -66,7 +66,7 @@ public class FundRequestController { * 删除用款申请 */ @DeleteMapping("/{id}") - public Result delete(@PathVariable Long id) { + public Result delete(@PathVariable String id) { boolean result = fundRequestService.deleteRequest(id); return Result.success(result); } @@ -75,7 +75,7 @@ public class FundRequestController { * 提交审批 */ @PostMapping("/{id}/submit") - public Result submit(@PathVariable Long id) { + public Result submit(@PathVariable String id) { boolean result = fundRequestService.submitApproval(id); return Result.success(result); } @@ -84,7 +84,7 @@ public class FundRequestController { * 审批通过 */ @PutMapping("/{id}/approve") - public Result approve(@PathVariable Long id, @RequestParam(required = false) String comment) { + public Result approve(@PathVariable String id, @RequestParam(required = false) String comment) { boolean result = fundRequestService.approve(id, comment); return Result.success(result); } @@ -93,7 +93,7 @@ public class FundRequestController { * 审批拒绝 */ @PutMapping("/{id}/reject") - public Result reject(@PathVariable Long id, @RequestParam(required = false) String comment) { + public Result reject(@PathVariable String id, @RequestParam(required = false) String comment) { boolean result = fundRequestService.reject(id, comment); return Result.success(result); } @@ -102,7 +102,7 @@ public class FundRequestController { * 撤回申请 */ @PutMapping("/{id}/withdraw") - public Result withdraw(@PathVariable Long id) { + public Result withdraw(@PathVariable String id) { boolean result = fundRequestService.withdraw(id); return Result.success(result); } diff --git a/fund-req/src/main/java/com/fundplatform/req/dto/FundRequestDTO.java b/fund-req/src/main/java/com/fundplatform/req/dto/FundRequestDTO.java index 3348568..1c8b5d3 100644 --- a/fund-req/src/main/java/com/fundplatform/req/dto/FundRequestDTO.java +++ b/fund-req/src/main/java/com/fundplatform/req/dto/FundRequestDTO.java @@ -13,7 +13,7 @@ import java.time.LocalDateTime; */ public class FundRequestDTO { - private Long id; + private String id; @NotBlank(message = "申请标题不能为空") @Size(max = 200, message = "申请标题不能超过200个字符") @@ -41,9 +41,9 @@ public class FundRequestDTO { @Size(max = 500, message = "用途说明不能超过500个字符") private String purpose; - private Long projectId; + private String projectId; - private Long customerId; + private String customerId; private LocalDateTime expectedPayDate; @@ -51,11 +51,11 @@ public class FundRequestDTO { private String remark; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } @@ -123,19 +123,19 @@ public class FundRequestDTO { this.purpose = purpose; } - public Long getProjectId() { + public String getProjectId() { return projectId; } - public void setProjectId(Long projectId) { + public void setProjectId(String projectId) { this.projectId = projectId; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } diff --git a/fund-req/src/main/java/com/fundplatform/req/service/FundRequestService.java b/fund-req/src/main/java/com/fundplatform/req/service/FundRequestService.java index a654a40..208e5aa 100644 --- a/fund-req/src/main/java/com/fundplatform/req/service/FundRequestService.java +++ b/fund-req/src/main/java/com/fundplatform/req/service/FundRequestService.java @@ -15,7 +15,7 @@ public interface FundRequestService { * @param dto 用款申请DTO * @return 申请ID */ - Long createRequest(FundRequestDTO dto); + String createRequest(FundRequestDTO dto); /** * 更新用款申请 @@ -31,7 +31,7 @@ public interface FundRequestService { * @param id 申请ID * @return 用款申请VO */ - FundRequestVO getRequestById(Long id); + FundRequestVO getRequestById(String id); /** * 分页查询用款申请 @@ -51,7 +51,7 @@ public interface FundRequestService { * @param id 申请ID * @return 是否成功 */ - boolean deleteRequest(Long id); + boolean deleteRequest(String id); /** * 提交审批 @@ -59,7 +59,7 @@ public interface FundRequestService { * @param id 申请ID * @return 是否成功 */ - boolean submitApproval(Long id); + boolean submitApproval(String id); /** * 审批通过 @@ -68,7 +68,7 @@ public interface FundRequestService { * @param comment 审批意见 * @return 是否成功 */ - boolean approve(Long id, String comment); + boolean approve(String id, String comment); /** * 审批拒绝 @@ -77,7 +77,7 @@ public interface FundRequestService { * @param comment 审批意见 * @return 是否成功 */ - boolean reject(Long id, String comment); + boolean reject(String id, String comment); /** * 撤回申请 @@ -85,5 +85,5 @@ public interface FundRequestService { * @param id 申请ID * @return 是否成功 */ - boolean withdraw(Long id); + boolean withdraw(String id); } diff --git a/fund-req/src/main/java/com/fundplatform/req/service/impl/FundRequestServiceImpl.java b/fund-req/src/main/java/com/fundplatform/req/service/impl/FundRequestServiceImpl.java index 6bd83e6..268c96c 100644 --- a/fund-req/src/main/java/com/fundplatform/req/service/impl/FundRequestServiceImpl.java +++ b/fund-req/src/main/java/com/fundplatform/req/service/impl/FundRequestServiceImpl.java @@ -36,7 +36,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public Long createRequest(FundRequestDTO dto) { + public String createRequest(FundRequestDTO dto) { FundRequest request = new FundRequest(); request.setRequestNo(generateRequestNo()); request.setTitle(dto.getTitle()); @@ -101,7 +101,7 @@ public class FundRequestServiceImpl implements FundRequestService { } @Override - public FundRequestVO getRequestById(Long id) { + public FundRequestVO getRequestById(String id) { FundRequest request = requestDataService.getById(id); if (request == null || request.getDeleted() == 1) { throw new RuntimeException("用款申请不存在"); @@ -135,7 +135,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public boolean deleteRequest(Long id) { + public boolean deleteRequest(String id) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(FundRequest::getId, id); wrapper.set(FundRequest::getDeleted, 1); @@ -147,7 +147,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public boolean submitApproval(Long id) { + public boolean submitApproval(String id) { FundRequest request = requestDataService.getById(id); if (request == null || request.getDeleted() == 1) { throw new RuntimeException("用款申请不存在"); @@ -168,7 +168,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public boolean approve(Long id, String comment) { + public boolean approve(String id, String comment) { FundRequest request = requestDataService.getById(id); if (request == null || request.getDeleted() == 1) { throw new RuntimeException("用款申请不存在"); @@ -191,7 +191,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public boolean reject(Long id, String comment) { + public boolean reject(String id, String comment) { FundRequest request = requestDataService.getById(id); if (request == null || request.getDeleted() == 1) { throw new RuntimeException("用款申请不存在"); @@ -214,7 +214,7 @@ public class FundRequestServiceImpl implements FundRequestService { @Override @Transactional(rollbackFor = Exception.class) - public boolean withdraw(Long id) { + public boolean withdraw(String id) { FundRequest request = requestDataService.getById(id); if (request == null || request.getDeleted() == 1) { throw new RuntimeException("用款申请不存在"); diff --git a/fund-req/src/main/java/com/fundplatform/req/vo/FundRequestVO.java b/fund-req/src/main/java/com/fundplatform/req/vo/FundRequestVO.java index 4756319..b37911f 100644 --- a/fund-req/src/main/java/com/fundplatform/req/vo/FundRequestVO.java +++ b/fund-req/src/main/java/com/fundplatform/req/vo/FundRequestVO.java @@ -8,7 +8,7 @@ import java.time.LocalDateTime; */ public class FundRequestVO { - private Long id; + private String id; private String requestNo; private String title; private BigDecimal amount; @@ -19,31 +19,31 @@ public class FundRequestVO { private String payeeBank; private String payeeAccount; private String purpose; - private Long projectId; + private String projectId; private String projectName; - private Long customerId; + private String customerId; private String customerName; private LocalDateTime requestDate; private LocalDateTime expectedPayDate; private Integer approvalStatus; private String approvalStatusName; private Integer currentNode; - private Long approverId; + private String approverId; private String approverName; private LocalDateTime approvalTime; private String approvalComment; private String attachments; - private Long tenantId; - private Long createdBy; + private String tenantId; + private String createdBy; private String createdByName; private LocalDateTime createdTime; private LocalDateTime updatedTime; - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } @@ -127,11 +127,11 @@ public class FundRequestVO { this.purpose = purpose; } - public Long getProjectId() { + public String getProjectId() { return projectId; } - public void setProjectId(Long projectId) { + public void setProjectId(String projectId) { this.projectId = projectId; } @@ -143,11 +143,11 @@ public class FundRequestVO { this.projectName = projectName; } - public Long getCustomerId() { + public String getCustomerId() { return customerId; } - public void setCustomerId(Long customerId) { + public void setCustomerId(String customerId) { this.customerId = customerId; } @@ -199,11 +199,11 @@ public class FundRequestVO { this.currentNode = currentNode; } - public Long getApproverId() { + public String getApproverId() { return approverId; } - public void setApproverId(Long approverId) { + public void setApproverId(String approverId) { this.approverId = approverId; } @@ -239,19 +239,19 @@ public class FundRequestVO { this.attachments = attachments; } - public Long getTenantId() { + public String getTenantId() { return tenantId; } - public void setTenantId(Long tenantId) { + public void setTenantId(String tenantId) { this.tenantId = tenantId; } - public Long getCreatedBy() { + public String getCreatedBy() { return createdBy; } - public void setCreatedBy(Long createdBy) { + public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } diff --git a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/AuthServiceImplTest.java b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/AuthServiceImplTest.java index 8266833..0f4d437 100644 --- a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/AuthServiceImplTest.java +++ b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/AuthServiceImplTest.java @@ -39,12 +39,12 @@ class AuthServiceImplTest { @BeforeEach void setUp() { mockUser = new SysUser(); - mockUser.setId(1L); + mockUser.setId("1"); mockUser.setUsername("testuser"); // MD5("password123") 的值,直接使用固定的 MD5 字符串避免调用加密工具 mockUser.setPassword("482c811da5d5b4bc6d497ffa98491e38"); mockUser.setStatus(1); - mockUser.setTenantId(100L); + mockUser.setTenantId("100"); mockUser.setDeleted(0); } @@ -58,17 +58,17 @@ class AuthServiceImplTest { when(userDataService.getOne(ArgumentMatchers.>any())) .thenReturn(mockUser); - when(tokenService.generateToken(1L, "testuser", 100L)) + when(tokenService.generateToken("1", "testuser", "100")) .thenReturn("mock-token-uuid"); LoginVO result = authService.login(request); assertNotNull(result); - assertEquals(1L, result.getUserId()); + assertEquals("1", result.getUserId()); assertEquals("testuser", result.getUsername()); assertEquals("mock-token-uuid", result.getToken()); - assertEquals(100L, result.getTenantId()); - verify(tokenService).generateToken(1L, "testuser", 100L); + assertEquals("100", result.getTenantId()); + verify(tokenService).generateToken("1", "testuser", "100"); } @Test @@ -83,7 +83,7 @@ class AuthServiceImplTest { RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.login(request)); assertEquals("用户名或密码错误", ex.getMessage()); - verify(tokenService, never()).generateToken(anyLong(), anyString(), anyLong()); + verify(tokenService, never()).generateToken(anyString(), anyString(), anyString()); } @Test @@ -98,7 +98,7 @@ class AuthServiceImplTest { RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.login(request)); assertEquals("用户名或密码错误", ex.getMessage()); - verify(tokenService, never()).generateToken(anyLong(), anyString(), anyLong()); + verify(tokenService, never()).generateToken(anyString(), anyString(), anyString()); } @Test @@ -120,20 +120,20 @@ class AuthServiceImplTest { @Test @DisplayName("登出成功 - 清除所有 Token") void logout_success() { - doNothing().when(tokenService).deleteAllUserTokens(1L); + doNothing().when(tokenService).deleteAllUserTokens("1"); - authService.logout(1L); + authService.logout("1"); - verify(tokenService).deleteAllUserTokens(1L); + verify(tokenService).deleteAllUserTokens("1"); } @Test @DisplayName("刷新 Token 成功") void refreshToken_success() { - when(userDataService.getById(1L)).thenReturn(mockUser); - when(tokenService.generateToken(1L, "testuser", 100L)).thenReturn("new-token"); + when(userDataService.getById("1")).thenReturn(mockUser); + when(tokenService.generateToken("1", "testuser", "100")).thenReturn("new-token"); - LoginVO result = authService.refreshToken(1L); + LoginVO result = authService.refreshToken("1"); assertNotNull(result); assertEquals("new-token", result.getToken()); @@ -142,9 +142,9 @@ class AuthServiceImplTest { @Test @DisplayName("刷新 Token 失败 - 用户不存在") void refreshToken_fail_userNotFound() { - when(userDataService.getById(99L)).thenReturn(null); + when(userDataService.getById("99")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.refreshToken(99L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.refreshToken("99")); assertEquals("用户不存在", ex.getMessage()); } @@ -152,9 +152,9 @@ class AuthServiceImplTest { @DisplayName("刷新 Token 失败 - 用户已被禁用") void refreshToken_fail_userDisabled() { mockUser.setStatus(0); - when(userDataService.getById(1L)).thenReturn(mockUser); + when(userDataService.getById("1")).thenReturn(mockUser); - RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.refreshToken(1L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.refreshToken("1")); assertEquals("用户已被禁用", ex.getMessage()); } @@ -164,12 +164,12 @@ class AuthServiceImplTest { mockUser.setRealName("测试用户"); mockUser.setPhone("13800138000"); mockUser.setEmail("test@example.com"); - when(userDataService.getById(1L)).thenReturn(mockUser); + when(userDataService.getById("1")).thenReturn(mockUser); - UserVO result = authService.getUserInfo(1L); + UserVO result = authService.getUserInfo("1"); assertNotNull(result); - assertEquals(1L, result.getId()); + assertEquals("1", result.getId()); assertEquals("testuser", result.getUsername()); assertEquals("测试用户", result.getRealName()); } @@ -177,9 +177,9 @@ class AuthServiceImplTest { @Test @DisplayName("获取用户信息失败 - 用户不存在") void getUserInfo_fail_userNotFound() { - when(userDataService.getById(99L)).thenReturn(null); + when(userDataService.getById("99")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.getUserInfo(99L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> authService.getUserInfo("99")); assertEquals("用户不存在", ex.getMessage()); } } diff --git a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/RoleServiceImplTest.java b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/RoleServiceImplTest.java index 0016d72..580185b 100644 --- a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/RoleServiceImplTest.java +++ b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/RoleServiceImplTest.java @@ -49,14 +49,14 @@ class RoleServiceImplTest { @BeforeEach void setUp() { mockRole = new SysRole(); - mockRole.setId(1L); + mockRole.setId("1"); mockRole.setRoleCode("ADMIN"); mockRole.setRoleName("管理员"); mockRole.setDataScope(1); mockRole.setStatus(1); mockRole.setSortOrder(1); mockRole.setDeleted(0); - mockRole.setTenantId(100L); + mockRole.setTenantId("100"); } // ==================== createRole ==================== @@ -111,12 +111,12 @@ class RoleServiceImplTest { @DisplayName("更新角色成功") void updateRole_success() { RoleDTO dto = new RoleDTO(); - dto.setId(1L); + dto.setId("1"); dto.setRoleName("超级管理员"); dto.setDataScope(1); dto.setStatus(1); - when(roleDataService.getById(1L)).thenReturn(mockRole); + when(roleDataService.getById("1")).thenReturn(mockRole); when(roleDataService.updateById(any(SysRole.class))).thenReturn(true); boolean result = roleService.updateRole(dto); @@ -139,10 +139,10 @@ class RoleServiceImplTest { @DisplayName("更新角色失败 - 角色不存在") void updateRole_fail_notFound() { RoleDTO dto = new RoleDTO(); - dto.setId(99L); + dto.setId("1"); dto.setRoleName("不存在的角色"); - when(roleDataService.getById(99L)).thenReturn(null); + when(roleDataService.getById("1")).thenReturn(null); RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.updateRole(dto)); assertEquals("角色不存在", ex.getMessage()); @@ -153,10 +153,10 @@ class RoleServiceImplTest { void updateRole_fail_deleted() { mockRole.setDeleted(1); RoleDTO dto = new RoleDTO(); - dto.setId(1L); + dto.setId("1"); dto.setRoleName("已删除角色"); - when(roleDataService.getById(1L)).thenReturn(mockRole); + when(roleDataService.getById("1")).thenReturn(mockRole); RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.updateRole(dto)); assertEquals("角色不存在", ex.getMessage()); @@ -167,12 +167,12 @@ class RoleServiceImplTest { @Test @DisplayName("根据ID查询角色成功") void getRoleById_success() { - when(roleDataService.getById(1L)).thenReturn(mockRole); + when(roleDataService.getById("1")).thenReturn(mockRole); - RoleVO vo = roleService.getRoleById(1L); + RoleVO vo = roleService.getRoleById("1"); assertNotNull(vo); - assertEquals(1L, vo.getId()); + assertEquals("1", vo.getId()); assertEquals("ADMIN", vo.getRoleCode()); assertEquals("管理员", vo.getRoleName()); assertEquals("全部数据", vo.getDataScopeName()); @@ -181,9 +181,9 @@ class RoleServiceImplTest { @Test @DisplayName("根据ID查询角色失败 - 不存在") void getRoleById_fail_notFound() { - when(roleDataService.getById(99L)).thenReturn(null); + when(roleDataService.getById("1")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.getRoleById(99L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.getRoleById("1")); assertEquals("角色不存在", ex.getMessage()); } @@ -191,9 +191,9 @@ class RoleServiceImplTest { @DisplayName("根据ID查询角色失败 - 已删除") void getRoleById_fail_deleted() { mockRole.setDeleted(1); - when(roleDataService.getById(1L)).thenReturn(mockRole); + when(roleDataService.getById("1")).thenReturn(mockRole); - RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.getRoleById(1L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> roleService.getRoleById("1")); assertEquals("角色不存在", ex.getMessage()); } @@ -265,7 +265,7 @@ class RoleServiceImplTest { void deleteRole_success() { when(roleDataService.update(ArgumentMatchers.>any())).thenReturn(true); - boolean result = roleService.deleteRole(1L); + boolean result = roleService.deleteRole("1"); assertTrue(result); } @@ -277,7 +277,7 @@ class RoleServiceImplTest { void updateStatus_success() { when(roleDataService.update(ArgumentMatchers.>any())).thenReturn(true); - boolean result = roleService.updateStatus(1L, 0); + boolean result = roleService.updateStatus("1", 0); assertTrue(result); } @@ -293,9 +293,9 @@ class RoleServiceImplTest { for (int i = 0; i < scopes.length; i++) { mockRole.setDataScope(scopes[i]); mockRole.setDeleted(0); - when(roleDataService.getById((long) (i + 10))).thenReturn(mockRole); + when(roleDataService.getById(String.valueOf(i + 10))).thenReturn(mockRole); - RoleVO vo = roleService.getRoleById((long) (i + 10)); + RoleVO vo = roleService.getRoleById(String.valueOf(i + 10)); assertEquals(names[i], vo.getDataScopeName(), "dataScope=" + scopes[i] + " 的名称应为 " + names[i]); } } @@ -304,9 +304,9 @@ class RoleServiceImplTest { @DisplayName("数据范围名称转换 - 未知值返回空字符串") void getRoleById_unknownDataScope() { mockRole.setDataScope(99); - when(roleDataService.getById(1L)).thenReturn(mockRole); + when(roleDataService.getById("1")).thenReturn(mockRole); - RoleVO vo = roleService.getRoleById(1L); + RoleVO vo = roleService.getRoleById("1"); assertEquals("", vo.getDataScopeName()); } } diff --git a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/TenantServiceImplTest.java b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/TenantServiceImplTest.java index a0eef40..55f6df4 100644 --- a/fund-sys/src/test/java/com/fundplatform/sys/service/impl/TenantServiceImplTest.java +++ b/fund-sys/src/test/java/com/fundplatform/sys/service/impl/TenantServiceImplTest.java @@ -52,10 +52,10 @@ class TenantServiceImplTest { @BeforeEach void setUp() { // 设置 UserContextHolder(TenantServiceImpl 调用 UserContextHolder.getUserId()) - UserContextHolder.setUserId(1L); + UserContextHolder.setUserId("1"); mockTenant = new SysTenant(); - mockTenant.setId(1L); + mockTenant.setId("1"); mockTenant.setTenantCode("TENANT001"); mockTenant.setTenantName("测试租户"); mockTenant.setContact("张三"); @@ -125,13 +125,13 @@ class TenantServiceImplTest { @DisplayName("更新租户成功") void updateTenant_success() { TenantDTO dto = new TenantDTO(); - dto.setId(1L); + dto.setId("1"); dto.setTenantCode("TENANT001"); // 编码不变 dto.setTenantName("更新的租户名"); dto.setContact("李四"); dto.setStatus(1); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); when(tenantDataService.updateById(any(SysTenant.class))).thenReturn(true); boolean result = tenantService.updateTenant(dto); @@ -153,11 +153,11 @@ class TenantServiceImplTest { @DisplayName("更新租户失败 - 租户不存在") void updateTenant_fail_notFound() { TenantDTO dto = new TenantDTO(); - dto.setId(99L); + dto.setId("99"); dto.setTenantCode("XXXX"); dto.setTenantName("不存在"); - when(tenantDataService.getById(99L)).thenReturn(null); + when(tenantDataService.getById("99")).thenReturn(null); RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateTenant(dto)); assertEquals("租户不存在", ex.getMessage()); @@ -168,11 +168,11 @@ class TenantServiceImplTest { void updateTenant_fail_deleted() { mockTenant.setDeleted(1); TenantDTO dto = new TenantDTO(); - dto.setId(1L); + dto.setId("1"); dto.setTenantCode("TENANT001"); dto.setTenantName("已删除租户"); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateTenant(dto)); assertEquals("租户不存在", ex.getMessage()); @@ -182,11 +182,11 @@ class TenantServiceImplTest { @DisplayName("更新租户失败 - 更换编码时新编码已被占用") void updateTenant_fail_newCodeExists() { TenantDTO dto = new TenantDTO(); - dto.setId(1L); + dto.setId("1"); dto.setTenantCode("EXISTING_CODE"); dto.setTenantName("修改编码的租户"); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); when(tenantDataService.count(ArgumentMatchers.>any())).thenReturn(1L); RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateTenant(dto)); @@ -198,12 +198,12 @@ class TenantServiceImplTest { @Test @DisplayName("根据ID查询租户成功") void getTenantById_success() { - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - TenantVO vo = tenantService.getTenantById(1L); + TenantVO vo = tenantService.getTenantById("1"); assertNotNull(vo); - assertEquals(1L, vo.getId()); + assertEquals("1", vo.getId()); assertEquals("TENANT001", vo.getTenantCode()); assertEquals("测试租户", vo.getTenantName()); assertEquals("启用", vo.getStatusName()); @@ -213,9 +213,9 @@ class TenantServiceImplTest { @DisplayName("根据ID查询租户 - 禁用状态名称为\"禁用\"") void getTenantById_disabled_statusName() { mockTenant.setStatus(0); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - TenantVO vo = tenantService.getTenantById(1L); + TenantVO vo = tenantService.getTenantById("1"); assertEquals("禁用", vo.getStatusName()); } @@ -223,9 +223,9 @@ class TenantServiceImplTest { @Test @DisplayName("根据ID查询租户失败 - 不存在") void getTenantById_fail_notFound() { - when(tenantDataService.getById(99L)).thenReturn(null); + when(tenantDataService.getById("99")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.getTenantById(99L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.getTenantById("99")); assertEquals("租户不存在", ex.getMessage()); } @@ -233,9 +233,9 @@ class TenantServiceImplTest { @DisplayName("根据ID查询租户失败 - 已删除") void getTenantById_fail_deleted() { mockTenant.setDeleted(1); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.getTenantById(1L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.getTenantById("1")); assertEquals("租户不存在", ex.getMessage()); } @@ -277,10 +277,10 @@ class TenantServiceImplTest { @Test @DisplayName("删除租户成功") void deleteTenant_success() { - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); when(tenantDataService.update(ArgumentMatchers.>any())).thenReturn(true); - boolean result = tenantService.deleteTenant(1L); + boolean result = tenantService.deleteTenant("1"); assertTrue(result); } @@ -288,9 +288,9 @@ class TenantServiceImplTest { @Test @DisplayName("删除租户失败 - 租户不存在") void deleteTenant_fail_notFound() { - when(tenantDataService.getById(99L)).thenReturn(null); + when(tenantDataService.getById("99")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant(99L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant("99")); assertEquals("租户不存在", ex.getMessage()); } @@ -298,9 +298,9 @@ class TenantServiceImplTest { @DisplayName("删除租户失败 - 不允许删除默认租户") void deleteTenant_fail_defaultTenant() { mockTenant.setTenantCode("DEFAULT"); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant(1L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant("1")); assertEquals("默认租户不能删除", ex.getMessage()); } @@ -308,9 +308,9 @@ class TenantServiceImplTest { @DisplayName("删除租户失败 - 已删除的租户") void deleteTenant_fail_alreadyDeleted() { mockTenant.setDeleted(1); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant(1L)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.deleteTenant("1")); assertEquals("租户不存在", ex.getMessage()); } @@ -319,10 +319,10 @@ class TenantServiceImplTest { @Test @DisplayName("更新租户状态成功") void updateStatus_success() { - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); when(tenantDataService.update(ArgumentMatchers.>any())).thenReturn(true); - boolean result = tenantService.updateStatus(1L, 0); + boolean result = tenantService.updateStatus("1", 0); assertTrue(result); } @@ -330,9 +330,9 @@ class TenantServiceImplTest { @Test @DisplayName("更新租户状态失败 - 租户不存在") void updateStatus_fail_notFound() { - when(tenantDataService.getById(99L)).thenReturn(null); + when(tenantDataService.getById("99")).thenReturn(null); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateStatus(99L, 0)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateStatus("99", 0)); assertEquals("租户不存在", ex.getMessage()); } @@ -340,9 +340,9 @@ class TenantServiceImplTest { @DisplayName("更新租户状态失败 - 已删除的租户") void updateStatus_fail_deleted() { mockTenant.setDeleted(1); - when(tenantDataService.getById(1L)).thenReturn(mockTenant); + when(tenantDataService.getById("1")).thenReturn(mockTenant); - RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateStatus(1L, 0)); + RuntimeException ex = assertThrows(RuntimeException.class, () -> tenantService.updateStatus("1", 0)); assertEquals("租户不存在", ex.getMessage()); } } diff --git a/start-services.sh b/start-services.sh new file mode 100755 index 0000000..c4b9a88 --- /dev/null +++ b/start-services.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# 资金服务平台 - 服务启动脚本 +# 使用 Maven spring-boot:run 启动各个微服务 + +# 设置环境变量 +export MAVEN_HOME=/home/along/MyApp/apache-maven-3.9.9 +export PATH=$MAVEN_HOME/bin:$PATH +export JAVA_HOME=/home/along/MyApp/jdk-21.0.7 +export PATH=$JAVA_HOME/bin:$PATH + +# 项目根目录 +PROJECT_DIR="/home/along/MyCode/wjbl/fundplatform" +LOG_DIR="/tmp/fundplatform-logs" + +# 创建日志目录 +mkdir -p $LOG_DIR + +echo "=========================================" +echo "资金服务平台 - 启动所有服务" +echo "=========================================" + +cd $PROJECT_DIR + +# 服务列表(按启动顺序) +SERVICES=( + "fund-sys:8100" + "fund-gateway:9000" + "fund-cust:8200" + "fund-proj:8300" + "fund-req:8400" + "fund-exp:8500" + "fund-receipt:8600" + "fund-report:8700" + "fund-file:8800" +) + +# 启动服务函数 +start_service() { + local service_module=$1 + local service_port=$2 + + echo "启动服务: $service_module (端口: $service_port)" + + nohup mvn spring-boot:run -pl $service_module -am \ + > $LOG_DIR/$service_module.log 2>&1 & + + echo " PID: $!" + echo " 日志: $LOG_DIR/$service_module.log" + + # 等待一小段时间让服务开始启动 + sleep 3 +} + +# 启动所有服务 +for service in "${SERVICES[@]}"; do + IFS=':' read -r module port <<< "$service" + start_service "$module" "$port" +done + +echo "" +echo "=========================================" +echo "所有服务已开始启动" +echo "=========================================" +echo "日志目录: $LOG_DIR" +echo "" +echo "检查服务状态:" +echo " ps aux | grep 'spring-boot:run'" +echo "" +echo "查看服务日志:" +echo " tail -f $LOG_DIR/fund-sys.log" +echo "" +echo "访问 Nacos 控制台查看服务注册状态:" +echo " http://localhost:8048" +echo "========================================="