diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java b/ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java index 74e63f6..01bde09 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/api/PluginController.java @@ -46,10 +46,21 @@ public class PluginController { @MustLogin @ApiOperation(value = "创建插件", notes = "") @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse savePlugin(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + public JsonResponse savePlugin(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ log.info("创建插件:{}",params); - pluginService.savePlugin(params.getParam(),params.getUserId()); + PluginVo.PluginReturn plugreturn = pluginService.savePlugin(params.getParam(),params.getUserId()); log.info("创建插件成功"); + return JsonResponse.newInstance().ok(plugreturn); + } + + @MustLogin + @ApiOperation(value = "修改插件信息", notes = "") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse updatePlugin(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("修改插件:{}",params); + pluginService.updatePlugin(params.getParam(),params.getUserId()); + + log.info("修改插件成功"); return JsonResponse.newInstance().ok(); } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java index 5158d65..f35f98b 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/BusinessDto.java @@ -46,7 +46,7 @@ public class BusinessDto { @Data - @ApiModel("分页查找业务列表") + @ApiModel("关联业务和插件") public static class RelevancePlugin{ @ApiModelProperty("插件id") private Long pluginId; @@ -55,7 +55,7 @@ public class BusinessDto { } @Data - @ApiModel("分页查找业务列表") + @ApiModel("查询业务下关联的插件") public static class BusinessQueryPlugin{ @ApiModelProperty("业务id") private Long businessId; @@ -66,7 +66,7 @@ public class BusinessDto { } @Data - @ApiModel("分页查找业务列表") + @ApiModel("修改业务下的插件配置信息") public static class UpdateConfig{ @NotNull @ApiModelProperty("业务插件关联id") diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java index fd6f5ec..27de65b 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/dto/PluginDto.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -51,4 +52,34 @@ public class PluginDto { private byte publish; } + @Data + @ApiModel("修改插件") + public static class UpdatePlugin{ + @NotNull(message = "请选择插件") + @ApiModelProperty("插件id") + private Long id; + @ApiModelProperty("插件名") + private String name; + @ApiModelProperty("版本号") + private String versions; + @ApiModelProperty("简介") + private String intro; + @ApiModelProperty("详细说明") + private String description; + @ApiModelProperty("预览图") + private String preview; + @ApiModelProperty("轮播图") + private List carousel; + @ApiModelProperty("html") + private String html; + @ApiModelProperty("css") + private String css; + @ApiModelProperty("js") + private String js; + @ApiModelProperty("config") + private String config; + @ApiModelProperty("是否公开 0不公开 1公开") + private byte publish; + + } } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java index 788ffd9..8baa6bc 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/bean/vo/PluginVo.java @@ -12,7 +12,7 @@ public class PluginVo { @Data @ApiModel("插件信息") - public static class PluginInfo{ + public static class PluginInfo { @ApiModelProperty("插件id") private Long id; @ApiModelProperty("插件名") @@ -42,4 +42,13 @@ public class PluginVo { @ApiModelProperty("config") private String config; } + + @Data + @ApiModel("插件信息") + public static class PluginReturn { + @ApiModelProperty("插件id") + private Long id; + @ApiModelProperty("插件名") + private String name; + } } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java index f1284c8..96eda6b 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/BusinessService.java @@ -76,12 +76,12 @@ public class BusinessService implements IBusinessService { public void relevancePlugin(BusinessDto.RelevancePlugin param, Long userId) { //判断插件是否存在 Boolean p = pluginDao.verifyById(param.getPluginId()); - if(!p){ + if(p == null || !p){ throw new BaseException(OpenCodeError.NOT_PLUGIN); } //判断业务是否存在 - Boolean b = businessDao.verifyById(param.getPluginId()); - if(!b){ + Boolean b = businessDao.verifyById(param.getBusinessId()); + if(b == null || !b){ throw new BaseException(OpenCodeError.NOT_BUSINESS); } //添加业务插件关联关系 diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java index 9b0012b..9e40dab 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/IPluginService.java @@ -22,5 +22,13 @@ public interface IPluginService { * @param param 插件信息 * @param userId userId */ - void savePlugin(PluginDto.SavePlugin param, Long userId); + PluginVo.PluginReturn savePlugin(PluginDto.SavePlugin param, Long userId); + + /** + * 修改插件 + * @param param 插件信息 + * @param userId userId + */ + void updatePlugin(PluginDto.UpdatePlugin param, Long userId); + } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java b/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java index a213db7..141a42e 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/service/PluginService.java @@ -12,6 +12,8 @@ import com.ccsens.ptos_open.bean.po.OpenPluginWithBLOBs; import com.ccsens.ptos_open.bean.vo.PluginVo; import com.ccsens.ptos_open.persist.dao.PluginDao; import com.ccsens.ptos_open.persist.mapper.OpenPluginImgMapper; +import com.ccsens.ptos_open.util.OpenCodeError; +import com.ccsens.util.exception.BaseException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -39,22 +41,22 @@ public class PluginService implements IPluginService { @Override public PageInfo queryPlugin(PluginDto.QueryByPage param, Long userId) { - PageHelper.startPage(param.getPageNum(),param.getPageSize()); - List pluginInfos = pluginDao.queryPluginList(param.getName(),param.getDepth(),userId); + PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List pluginInfos = pluginDao.queryPluginList(param.getName(), param.getDepth(), userId); return new PageInfo<>(pluginInfos); } @Override - public void savePlugin(PluginDto.SavePlugin param, Long userId) { + public PluginVo.PluginReturn savePlugin(PluginDto.SavePlugin param, Long userId) { //TODO 验证用户权限 //添加插件 OpenPluginWithBLOBs openPlugin = new OpenPluginWithBLOBs(); - BeanUtil.copyProperties(param,openPlugin); + BeanUtil.copyProperties(param, openPlugin); openPlugin.setId(snowflake.nextId()); openPlugin.setCreatorId(userId); pluginDao.insertSelective(openPlugin); //保存预览图 - if(StrUtil.isNotBlank(param.getPreview())){ + if (StrUtil.isNotBlank(param.getPreview())) { OpenPluginImg pluginImg = new OpenPluginImg(); pluginImg.setId(snowflake.nextId()); pluginImg.setPluginId(openPlugin.getId()); @@ -63,7 +65,7 @@ public class PluginService implements IPluginService { openPluginImgMapper.insertSelective(pluginImg); } //保存轮播图 - if(CollectionUtil.isNotEmpty(param.getCarousel())){ + if (CollectionUtil.isNotEmpty(param.getCarousel())) { param.getCarousel().forEach(path -> { OpenPluginImg pluginImg = new OpenPluginImg(); pluginImg.setId(snowflake.nextId()); @@ -73,5 +75,62 @@ public class PluginService implements IPluginService { openPluginImgMapper.insertSelective(pluginImg); }); } + //返回插件的id和name + PluginVo.PluginReturn pluginReturn = new PluginVo.PluginReturn(); + pluginReturn.setId(openPlugin.getId()); + pluginReturn.setName(openPlugin.getName()); + return pluginReturn; } + + @Override + public void updatePlugin(PluginDto.UpdatePlugin param, Long userId) { + //查询插件,判断插件是否存在 + Boolean a = pluginDao.verifyById(param.getId()); + if (a == null || !a) { + throw new BaseException(OpenCodeError.NOT_PLUGIN); + } + //判断当前用户是否是插件的创建 + OpenPluginWithBLOBs pluginWithBLOBs = new OpenPluginWithBLOBs(); + pluginWithBLOBs.setId(param.getId()); + //修改插件信息 + if (param.getName() != null && !param.getName().equals("")) { + pluginWithBLOBs.setName(param.getName()); + } + if (param.getVersions() != null && !param.getVersions().equals("")) { + pluginWithBLOBs.setVersions(param.getVersions()); + } + if (param.getIntro() != null && !param.getIntro().equals("")) { + pluginWithBLOBs.setIntro(param.getIntro()); + } + if (param.getDescription() != null && !param.getDescription().equals("")) { + pluginWithBLOBs.setDescription(param.getDescription()); + } + if (param.getHtml() != null && !param.getHtml().equals("")) { + pluginWithBLOBs.setHtml(param.getHtml()); + } + if (param.getCss() != null && !param.getCss().equals("")) { + pluginWithBLOBs.setCss(param.getCss()); + } + if (param.getJs() != null && !param.getJs().equals("")) { + pluginWithBLOBs.setJs(param.getJs()); + } + if (param.getConfig() != null && !param.getConfig().equals("")) { + pluginWithBLOBs.setConfig(param.getConfig()); + } + pluginWithBLOBs.setPublish(param.getPublish()); + //处理预览图和轮播图 + if(param.getPreview() != null){ + //删除之前的预览图,添加新的预览图 + } + pluginDao.updateByPrimaryKeySelective(pluginWithBLOBs); + + + } + + } + + + + +