feat: 写入License提供者表

This commit is contained in:
caiyuchao
2025-07-18 18:00:03 +08:00
parent 8af90ae549
commit a649d2cab1
7 changed files with 156 additions and 4 deletions

View File

@@ -69,4 +69,6 @@ public class LicensePageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "提供者ID")
private Long providerId;
}

View File

@@ -107,4 +107,6 @@ public class LicenseRespVO implements VO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "提供者ID")
private Long providerId;
}

View File

@@ -63,4 +63,6 @@ public class LicenseSaveReqVO {
@Schema(description = "备注", example = "随便")
private String remark;
@Schema(description = "提供者ID")
private Long providerId;
}

View File

@@ -101,5 +101,9 @@ public class LicenseDO extends BaseDO {
* 备注
*/
private String remark;
/**
* 提供者ID
*/
private Long providerId;
}

View File

@@ -0,0 +1,97 @@
package org.agt.module.license.dal.dataobject.license;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.agt.framework.mybatis.core.dataobject.BaseDO;
import java.time.LocalDateTime;
/**
* CRM-License DO
*
* @author super
*/
@TableName("crm_license")
@KeySequence("crm_license_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LicenseProviderDO extends BaseDO {
/**
* 主键
*/
@TableId
private Long id;
/**
* 客户ID
*/
private Long customerId;
/**
* 项目ID
*/
private Long projectId;
/**
* 项目序列号8位数字
*/
private String serialNo;
/**
* 1=新建2=扩容或续期
*/
private Integer operationType;
/**
* 系统过期时间永久授权2099-12-31
*/
private LocalDateTime expiryDate;
/**
* 系统授权用户数,可选
*/
private Integer ranNumber;
/**
* 系统授权基站数,可选
*/
private Integer userNumber;
/**
* 网元列表,用分隔符隔开
*/
private String neList;
/**
* 激活码,相同激活码的网元才能一起带过来
*/
private String activationCode;
/**
* 0=无效 1=请求 2=处理中 3=处理完成
*/
private Integer state;
/**
* 0=功能other=失败原因编码
*/
private Integer result;
/**
* 失败原因
*/
private String cause;
/**
* 授权文件路径(含文件名),扩容或续期时带入
*/
private String oldFilePath;
/**
* 授权文件路径(含文件名),新生产授权文件
*/
private String newFilePath;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,16 @@
package org.agt.module.license.dal.mysql.license;
import org.agt.framework.mybatis.core.mapper.BaseMapperX;
import org.agt.module.license.dal.dataobject.license.LicenseProviderDO;
import org.apache.ibatis.annotations.Mapper;
/**
* CRM-License Mapper
*
* @author super
*/
@Mapper
public interface LicenseProviderMapper extends BaseMapperX<LicenseProviderDO> {
}

View File

@@ -12,9 +12,11 @@ import org.agt.module.license.controller.admin.license.vo.LicensePageReqVO;
import org.agt.module.license.controller.admin.license.vo.LicenseSaveReqVO;
import org.agt.module.license.dal.dataobject.customer.CustomerDO;
import org.agt.module.license.dal.dataobject.license.LicenseDO;
import org.agt.module.license.dal.dataobject.license.LicenseProviderDO;
import org.agt.module.license.dal.dataobject.project.ProjectDO;
import org.agt.module.license.dal.mysql.customer.CustomerMapper;
import org.agt.module.license.dal.mysql.license.LicenseMapper;
import org.agt.module.license.dal.mysql.license.LicenseProviderMapper;
import org.agt.module.license.dal.mysql.project.ProjectMapper;
import org.agt.module.license.enums.LicenseStatusEnum;
import org.agt.module.system.api.mail.MailSendApi;
@@ -53,6 +55,9 @@ public class LicenseServiceImpl implements LicenseService {
@Resource
private ProjectMapper projectMapper;
@Resource
private LicenseProviderMapper licenseProviderMapper;
@Resource
private FileApi fileApi;
@@ -91,10 +96,6 @@ public class LicenseServiceImpl implements LicenseService {
@Override
public void applyLicense(LicenseSaveReqVO updateReqVO) {
updateReqVO.setStatus(LicenseStatusEnum.IN_APPLICATION.getCode());
updateReqVO.setApplicant(WebFrameworkUtils.getLoginUserId());
updateReqVO.setApplicationTime(LocalDateTime.now());
updateLicense(updateReqVO);
// 发送邮件
// 1. 准备参数
Long userId = updateReqVO.getApprover();
@@ -114,6 +115,34 @@ public class LicenseServiceImpl implements LicenseService {
// 发送站内信
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
.setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams));
// 添加数据到License提供者表
LicenseProviderDO licenseProviderDO = new LicenseProviderDO();
licenseProviderDO.setCustomerId(updateReqVO.getCustomerId());
licenseProviderDO.setProjectId(updateReqVO.getProjectId());
licenseProviderDO.setSerialNo(updateReqVO.getSerialNo());
licenseProviderDO.setExpiryDate(updateReqVO.getExpiryDate());
licenseProviderDO.setRanNumber(updateReqVO.getRanNumber());
licenseProviderDO.setUserNumber(updateReqVO.getUserNumber());
List<Integer> neList = updateReqVO.getNeList();
List<String> neLabels = new ArrayList<>();
for (Integer ne : neList) {
String label = DictFrameworkUtils.parseDictDataLabel("lic_ne_list", ne.toString());
neLabels.add(label);
}
licenseProviderDO.setNeList(StrUtil.join(",", neLabels));
licenseProviderDO.setActivationCode(updateReqVO.getActivationCode());
licenseProviderDO.setOperationType(1);
licenseProviderDO.setState(1);
licenseProviderDO.setRemark(updateReqVO.getRemark());
licenseProviderMapper.insert(licenseProviderDO);
// 更新表
updateReqVO.setStatus(LicenseStatusEnum.IN_APPLICATION.getCode());
updateReqVO.setApplicant(WebFrameworkUtils.getLoginUserId());
updateReqVO.setApplicationTime(LocalDateTime.now());
updateReqVO.setProviderId(licenseProviderDO.getId());
updateLicense(updateReqVO);
}
@Override