Compare commits
2 Commits
8ae4f1181a
...
6a4dac9a49
Author | SHA1 | Date | |
---|---|---|---|
6a4dac9a49 | |||
0daf0adacc |
@ -8,6 +8,8 @@ import io.gisbi.config.ResponseResult;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 应用系统 前端控制器
|
||||
|
@ -49,7 +49,7 @@ public class Application implements Serializable {
|
||||
/**
|
||||
* 创建日期
|
||||
*/
|
||||
private Long createdate;
|
||||
private LocalDateTime createdate;
|
||||
|
||||
/**
|
||||
* 应用描述
|
||||
|
@ -1,8 +1,11 @@
|
||||
package io.gisbi.application.baseinfo.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.gisbi.application.baseinfo.domain.Application;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -14,5 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
*/
|
||||
@Mapper
|
||||
public interface ApplicationMapper extends BaseMapper<Application> {
|
||||
|
||||
@Select("SELECT MAX(CAST(code AS UNSIGNED)) FROM app_application")
|
||||
Integer getMaxCode();
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package io.gisbi.application.baseinfo.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.assist.ISqlRunner;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import io.gisbi.application.baseinfo.domain.Application;
|
||||
import io.gisbi.application.baseinfo.mapper.ApplicationMapper;
|
||||
import io.gisbi.application.baseinfo.service.IApplicationService;
|
||||
@ -9,6 +11,10 @@ import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 应用系统 服务实现类
|
||||
@ -21,11 +27,51 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Application> implements IApplicationService {
|
||||
@Resource
|
||||
private IModuleService moduleService;
|
||||
|
||||
@Resource
|
||||
private ApplicationMapper applicationMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean createApplication(Application application) {
|
||||
// 参数校验
|
||||
if (application == null) {
|
||||
throw new IllegalArgumentException("应用信息不能为空");
|
||||
}
|
||||
if (application.getName() == null || application.getName().trim().isEmpty()) {
|
||||
throw new IllegalArgumentException("应用名称不能为空");
|
||||
}
|
||||
|
||||
// 检查应用名称是否已存在
|
||||
long count = this.count(new QueryWrapper<Application>().eq("name", application.getName()));
|
||||
if (count > 0) {
|
||||
throw new IllegalArgumentException("应用名称已存在");
|
||||
}
|
||||
|
||||
// 生成自增编号逻辑
|
||||
try {
|
||||
Integer maxCode = applicationMapper.getMaxCode();
|
||||
maxCode = (maxCode != null) ? maxCode : 0;
|
||||
String formattedCode = String.format("%06d", maxCode + 1);
|
||||
application.setCode(formattedCode);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("生成应用编号失败", e);
|
||||
}
|
||||
|
||||
// 设置基础字段
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
application.setType("01"); // 数据分析类项目
|
||||
application.setStatus("01"); // 初始创建
|
||||
application.setCreatedate(now);
|
||||
application.setLastmodifydate(now);
|
||||
|
||||
// 保存应用并初始化模块
|
||||
try {
|
||||
this.save(application);
|
||||
moduleService.initAppModules(application.getId());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("创建应用失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user