diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java index 423d07b..4ba49e6 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicensePageReqVO.java @@ -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; } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java index b83e9a9..dd4253c 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseRespVO.java @@ -107,4 +107,6 @@ public class LicenseRespVO implements VO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "提供者ID") + private Long providerId; } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseSaveReqVO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseSaveReqVO.java index a5c8acb..183cd0c 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseSaveReqVO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/controller/admin/license/vo/LicenseSaveReqVO.java @@ -63,4 +63,6 @@ public class LicenseSaveReqVO { @Schema(description = "备注", example = "随便") private String remark; + @Schema(description = "提供者ID") + private Long providerId; } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseDO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseDO.java index 236b794..24531a0 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseDO.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseDO.java @@ -101,5 +101,9 @@ public class LicenseDO extends BaseDO { * 备注 */ private String remark; + /** + * 提供者ID + */ + private Long providerId; } \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseProviderDO.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseProviderDO.java new file mode 100644 index 0000000..6b1bede --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/dataobject/license/LicenseProviderDO.java @@ -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; + +} \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/license/LicenseProviderMapper.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/license/LicenseProviderMapper.java new file mode 100644 index 0000000..cbdb53f --- /dev/null +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/dal/mysql/license/LicenseProviderMapper.java @@ -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 { + +} \ No newline at end of file diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java index 4162595..d11799a 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseServiceImpl.java @@ -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 neList = updateReqVO.getNeList(); + List 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