feat(serial-number): 添加乐观锁支持及初始化报价代码接口
- 在AdminBaseSerialNumber实体中添加@Version注解实现乐观锁 - 在MybatisPlus配置中加入OptimisticLockerInnerInterceptor支持乐观锁插件 - 修正AdminBaseSerialNumberServiceImpl中序列号生成逻辑,避免逻辑遗漏 - TestController新增接口initAdminUserQuotationCode,批量初始化内部用户报价代码字段 - 新增日志记录生成的报价代码,确保数据初始化过程可追踪 - 引入相关服务依赖,完善测试控制器注入与调用逻辑
This commit is contained in:
parent
9cceef75bb
commit
b8ca2a9905
|
|
@ -5,13 +5,14 @@ import cn.hutool.core.util.IdUtil;
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminUser;
|
||||
import com.nflg.mobilebroken.repository.entity.ProductModel;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseArea;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.nflg.mobilebroken.repository.service.IProductModelService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import com.nflg.mobilebroken.repository.service.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
|
@ -26,6 +27,7 @@ import java.util.stream.Collectors;
|
|||
/**
|
||||
* 测试
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/test")
|
||||
public class TestController extends ControllerBase {
|
||||
|
|
@ -39,6 +41,12 @@ public class TestController extends ControllerBase {
|
|||
@Resource
|
||||
ITBaseAreaService areaService;
|
||||
|
||||
@Resource
|
||||
private IAdminUserService adminUserService;
|
||||
|
||||
@Resource
|
||||
private IAdminBaseSerialNumberService serialNumberService;
|
||||
|
||||
/**
|
||||
* 初始化机型表的BatchNumber字段数据
|
||||
*/
|
||||
|
|
@ -121,4 +129,25 @@ public class TestController extends ControllerBase {
|
|||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化内部用户报价代码字段数据
|
||||
*/
|
||||
@PostMapping("initAdminUserQuotationCode")
|
||||
public ApiResult<Void> initAdminUserQuotationCode(){
|
||||
List<AdminUser> adminUsers=adminUserService.lambdaQuery()
|
||||
.isNull(AdminUser::getQuotationCode)
|
||||
.orderByAsc(AdminUser::getId)
|
||||
.list();
|
||||
if (CollectionUtil.isNotEmpty(adminUsers)) {
|
||||
adminUsers.forEach(adminUser -> {
|
||||
String quotationCode = serialNumberService.generateSerialNumber(0, "NF", "", false, 6);
|
||||
log.info("生成报价代码【{}】:{}", adminUser.getUserName(), quotationCode);
|
||||
adminUser.setQuotationCode(quotationCode);
|
||||
});
|
||||
adminUserService.updateBatchById(adminUsers);
|
||||
return ApiResult.success();
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.Version;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
|
@ -45,6 +47,7 @@ public class AdminBaseSerialNumber implements Serializable {
|
|||
/**
|
||||
* 乐观锁版本号
|
||||
*/
|
||||
@Version
|
||||
private Integer version;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminBaseSerialNumber;
|
||||
import com.nflg.mobilebroken.repository.mapper.AdminBaseSerialNumberMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminBaseSerialNumberService;
|
||||
|
|
@ -14,9 +15,8 @@ import java.util.Objects;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2026
|
||||
*/
|
||||
|
|
@ -34,7 +34,7 @@ public class AdminBaseSerialNumberServiceImpl extends ServiceImpl<AdminBaseSeria
|
|||
public String generateSerialNumber(Integer businessType, String prefixNumber, String specialNumber,
|
||||
boolean hasTimeStr, Integer serialLength) {
|
||||
String currentDate = "";
|
||||
String serialNo ;
|
||||
String serialNo;
|
||||
AdminBaseSerialNumber serialNumber = this.lambdaQuery()
|
||||
.eq(AdminBaseSerialNumber::getBusinessType, businessType)
|
||||
.one();
|
||||
|
|
@ -59,6 +59,8 @@ public class AdminBaseSerialNumberServiceImpl extends ServiceImpl<AdminBaseSeria
|
|||
if (serialNumber.getCurrentDateStr().equals(currentDate)) {
|
||||
startSerial = serialNumber.getMaxSerial() + 1;
|
||||
}
|
||||
} else {
|
||||
startSerial = serialNumber.getMaxSerial() + 1;
|
||||
}
|
||||
serialNumber.setSerialLength(serialLength);
|
||||
serialNumber.setMaxSerial(startSerial);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.alibaba.druid.pool.DruidDataSource;
|
|||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
import com.nflg.mobilebroken.starter.handler.UTCLocalDateTimeTypeHandler;
|
||||
|
|
@ -104,6 +105,7 @@ public class MysqlDataSourceConfig {
|
|||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
||||
return interceptor;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue