diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/constant/Constant.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/constant/Constant.java index b549431..9d2fe7f 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/constant/Constant.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/constant/Constant.java @@ -4,4 +4,7 @@ public class Constant { public final static int Image_Type_Pub = 1; // 公共镜像 public final static int Image_Type_Pri = 0; // 私有镜像 + + public final static int State_valid = 1; // 有效 + public final static int State_invalid = 0; // 无效 } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/codeConfig/CodeConfigController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/codeConfig/CodeConfigController.java new file mode 100644 index 0000000..6a59902 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/codeConfig/CodeConfigController.java @@ -0,0 +1,61 @@ +package com.ruoyi.platform.controller.codeConfig; + +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.platform.domain.CodeConfig; +import com.ruoyi.platform.service.CodeConfigService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.http.ResponseEntity; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("codeConfig") +@Api("代码配置") +public class CodeConfigController extends BaseController { + + @Resource + private CodeConfigService codeConfigService; + + /** + * 分页查询 + * @param codeConfig 筛选条件 + * @param page 页数 + * @param size 每页大小 + * @return 查询结果 + */ + @GetMapping + public GenericsAjaxResult> queryByPage(CodeConfig codeConfig, int page, int size) { + PageRequest pageRequest = PageRequest.of(page,size); + return genericsSuccess(this.codeConfigService.queryByPage(codeConfig, pageRequest)); + } + + /** + * 通过主键查询单条数据 + * @param id + * @return 单条数据 + */ + @GetMapping("{id}") + public ResponseEntity queryById(@PathVariable("id") Long id) { + return ResponseEntity.ok(this.codeConfigService.queryById(id)); + } + + + @PostMapping + public GenericsAjaxResult add(@RequestBody CodeConfig codeConfig){ + return genericsSuccess(this.codeConfigService.insert(codeConfig)); + } + + @PutMapping + public GenericsAjaxResult update(@RequestBody CodeConfig codeConfig){ + return genericsSuccess(this.codeConfigService.update(codeConfig)); + } + + @DeleteMapping("{id}") + public GenericsAjaxResult delete(@PathVariable("id") Long id){ + return genericsSuccess(this.codeConfigService.removeById(id)); + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CodeConfig.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CodeConfig.java new file mode 100644 index 0000000..957dabe --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CodeConfig.java @@ -0,0 +1,56 @@ +package com.ruoyi.platform.domain; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class CodeConfig implements Serializable { + + + private Long id; + + @ApiModelProperty(value = "代码仓库名称") + private String codeRepoName; + + @ApiModelProperty(value = "代码仓库可见性(1-公开,0-私有)") + private Integer codeRepoVis; + + @ApiModelProperty(value = "Git地址") + private String gitUrl; + + @ApiModelProperty(value = "代码分支/Tag") + private String gitBranch; + + @ApiModelProperty(value = "验证方式(0-用户名密码,1-SSH-Key)") + private Integer verifyMode; + + @ApiModelProperty(value = "Git用户名") + private String gitUserName; + + @ApiModelProperty(value = "Git密码") + private String gitPassword; + + private String createBy; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新者 + */ + private String updateBy; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 状态,0失效1生效 + */ + private Integer state; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/CodeConfigDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/CodeConfigDao.java new file mode 100644 index 0000000..db896b5 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/CodeConfigDao.java @@ -0,0 +1,20 @@ +package com.ruoyi.platform.mapper; + +import com.ruoyi.platform.domain.CodeConfig; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +public interface CodeConfigDao { + + long count(@Param("codeConfig") CodeConfig codeConfig); + + List queryAllByLimit(@Param("codeConfig") CodeConfig codeConfig, @Param("pageable") Pageable pageable); + + CodeConfig queryById(Long id); + + int insert(@Param("codeConfig") CodeConfig codeConfig); + + int update(@Param("codeConfig") CodeConfig codeConfig); +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/CodeConfigService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/CodeConfigService.java new file mode 100644 index 0000000..260c01d --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/CodeConfigService.java @@ -0,0 +1,19 @@ +package com.ruoyi.platform.service; + +import com.ruoyi.platform.domain.CodeConfig; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +public interface CodeConfigService { + + Page queryByPage(CodeConfig codeConfig, PageRequest pageRequest); + + CodeConfig queryById(Long id); + + CodeConfig insert(CodeConfig codeConfig); + + CodeConfig update(CodeConfig codeConfig); + + String removeById(Long id); + +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/CodeConfigServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/CodeConfigServiceImpl.java new file mode 100644 index 0000000..664777d --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/CodeConfigServiceImpl.java @@ -0,0 +1,74 @@ +package com.ruoyi.platform.service.impl; + +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.platform.constant.Constant; +import com.ruoyi.platform.domain.CodeConfig; +import com.ruoyi.platform.mapper.CodeConfigDao; +import com.ruoyi.platform.service.CodeConfigService; +import com.ruoyi.system.api.model.LoginUser; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service("codeConfigService") +public class CodeConfigServiceImpl implements CodeConfigService { + + @Resource + private CodeConfigDao codeConfigDao; + + + @Override + public Page queryByPage(CodeConfig codeConfig, PageRequest pageRequest) { + long total = this.codeConfigDao.count(codeConfig); + List codeConfigList = this.codeConfigDao.queryAllByLimit(codeConfig, pageRequest); + + return new PageImpl<>(codeConfigList, pageRequest, total); + } + + @Override + public CodeConfig queryById(Long id) { + return this.codeConfigDao.queryById(id); + } + + @Override + public CodeConfig insert(CodeConfig codeConfig) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + codeConfig.setCreateBy(loginUser.getUsername()); + codeConfig.setUpdateBy(loginUser.getUsername()); + codeConfig.setCreateTime(new Date()); + codeConfig.setUpdateTime(new Date()); + this.codeConfigDao.insert(codeConfig); + return codeConfig; + } + + @Override + public CodeConfig update(CodeConfig codeConfig) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + codeConfig.setUpdateBy(loginUser.getUsername()); + codeConfig.setUpdateTime(new Date()); + this.codeConfigDao.update(codeConfig); + return this.codeConfigDao.queryById(codeConfig.getId()); + } + + @Override + public String removeById(Long id) { + CodeConfig codeConfig = this.codeConfigDao.queryById(id); + if (codeConfig == null) { + return "代码配置不存在"; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + String username = loginUser.getUsername(); + String createBy = codeConfig.getCreateBy(); + if (!(StringUtils.equals(username, "admin") || StringUtils.equals(username, createBy))) { + return "无权限删除该代码配置"; + } + codeConfig.setState(Constant.State_invalid); + return this.codeConfigDao.update(codeConfig) > 0 ? "删除成功" : "删除失败"; + } +} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/CodeConfigDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/CodeConfigDaoMapper.xml new file mode 100644 index 0000000..64c72f8 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/CodeConfigDaoMapper.xml @@ -0,0 +1,108 @@ + + + + + + insert into code_config(code_repo_name, code_repo_vis, git_url, git_branch, verify_mode, git_user_name, git_password, create_by, create_time, update_by, update_time) + values(#{codeConfig.codeRepoName}, #{codeConfig.codeRepoVis}, #{codeConfig.gitUrl}, #{codeConfig.gitBranch}, #{codeConfig.verifyMode}, #{codeConfig.gitUserName}, #{codeConfig.gitPassword}, #{codeConfig.createBy}, #{codeConfig.createTime}, #{codeConfig.updateBy}, #{codeConfig.updateTime}) + + + + update code_config + + + code_repo_name = #{codeConfig.codeRepoName}, + + + code_repo_vis = #{codeConfig.codeRepoVis}, + + + git_url = #{codeConfig.gitUrl}, + + + git_branch = #{codeConfig.gitBranch}, + + + verify_mode = #{codeConfig.verifyMode}, + + + git_user_name = #{codeConfig.gitUserName}, + + + create_by = #{codeConfig.createBy}, + + + create_time = #{codeConfig.createTime}, + + + update_by = #{codeConfig.updateBy}, + + + update_time = #{codeConfig.updateTime}, + + + state = #{codeConfig.state}, + + + where id = #{codeConfig.id} + + + + + + + + + + + + state = 1 + + and id = #{codeConfig.id} + + + and code_repo_name = #{codeConfig.codeRepoName} + + + and code_repo_vis = #{codeConfig.codeRepoVis} + + + and git_url = #{codeConfig.gitUrl} + + + and git_branch = #{codeConfig.gitBranch} + + + and verify_mode = #{codeConfig.verifyMode} + + + and git_user_name = #{codeConfig.gitUserName} + + + and create_by = #{codeConfig.createBy} + + + and create_time = #{codeConfig.createTime} + + + and update_by = #{codeConfig.updateBy} + + + and update_time = #{codeConfig.updateTime} + + + + \ No newline at end of file