diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java index 92b508f..a7fb829 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/persist/dao/PluginDao.java @@ -28,4 +28,11 @@ public interface PluginDao extends OpenPluginMapper { * @return 返回true/false */ Boolean verifyById(@Param("pluginId") Long pluginId); + + /** + * 获取插件的创建者id + * @param pluginId 插件id + * @return 返回创建者id + */ + Long getPluginCreatorId(@Param("pluginId") Long pluginId); } 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 96eda6b..dd20ab4 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 @@ -1,10 +1,12 @@ package com.ccsens.ptos_open.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import com.ccsens.ptos_open.bean.dto.BusinessDto; import com.ccsens.ptos_open.bean.po.OpenBusiness; import com.ccsens.ptos_open.bean.po.OpenBusinessPlugin; +import com.ccsens.ptos_open.bean.po.OpenBusinessPluginExample; import com.ccsens.ptos_open.bean.po.OpenPluginWithBLOBs; import com.ccsens.ptos_open.bean.vo.BusinessVo; import com.ccsens.ptos_open.bean.vo.PluginVo; @@ -84,6 +86,13 @@ public class BusinessService implements IBusinessService { if(b == null || !b){ throw new BaseException(OpenCodeError.NOT_BUSINESS); } + //验证业务下已经关联此插件,则提示 + OpenBusinessPluginExample businessPluginExample = new OpenBusinessPluginExample(); + businessPluginExample.createCriteria().andBusinessIdEqualTo(param.getBusinessId()).andPluginIdEqualTo(param.getPluginId()); + List openBusinessPlugins = businessPluginMapper.selectByExample(businessPluginExample); + if(CollectionUtil.isNotEmpty(openBusinessPlugins)){ + throw new BaseException(OpenCodeError.BUSINESS_PLUGIN); + } //添加业务插件关联关系 OpenBusinessPlugin businessPlugin = new OpenBusinessPlugin(); businessPlugin.setId(snowflake.nextId()); 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 141a42e..2a5fa4c 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 @@ -8,11 +8,14 @@ import cn.hutool.core.util.StrUtil; import com.ccsens.ptos_open.bean.dto.PluginDto; import com.ccsens.ptos_open.bean.po.OpenPlugin; import com.ccsens.ptos_open.bean.po.OpenPluginImg; +import com.ccsens.ptos_open.bean.po.OpenPluginImgExample; 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.CodeEnum; +import com.ccsens.util.CodeError; import com.ccsens.util.exception.BaseException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -89,45 +92,83 @@ public class PluginService implements IPluginService { if (a == null || !a) { throw new BaseException(OpenCodeError.NOT_PLUGIN); } - //判断当前用户是否是插件的创建 - OpenPluginWithBLOBs pluginWithBLOBs = new OpenPluginWithBLOBs(); - pluginWithBLOBs.setId(param.getId()); + //查询插件的创建者id,判断当前用户是否是插件的创建 + Long creatorId = pluginDao.getPluginCreatorId(param.getId()); + if(!userId.equals(creatorId)){ + throw new BaseException(CodeEnum.NOT_POWER); + } + //新建插件 + OpenPluginWithBLOBs plugin = new OpenPluginWithBLOBs(); + plugin.setId(param.getId()); //修改插件信息 - if (param.getName() != null && !param.getName().equals("")) { - pluginWithBLOBs.setName(param.getName()); + if (StrUtil.isNotBlank(param.getName())) { + plugin.setName(param.getName()); } - if (param.getVersions() != null && !param.getVersions().equals("")) { - pluginWithBLOBs.setVersions(param.getVersions()); + if (StrUtil.isNotBlank(param.getVersions())) { + plugin.setVersions(param.getVersions()); } - if (param.getIntro() != null && !param.getIntro().equals("")) { - pluginWithBLOBs.setIntro(param.getIntro()); + if (StrUtil.isNotBlank(param.getIntro())) { + plugin.setIntro(param.getIntro()); } - if (param.getDescription() != null && !param.getDescription().equals("")) { - pluginWithBLOBs.setDescription(param.getDescription()); + if (StrUtil.isNotBlank(param.getDescription())) { + plugin.setDescription(param.getDescription()); } - if (param.getHtml() != null && !param.getHtml().equals("")) { - pluginWithBLOBs.setHtml(param.getHtml()); + if (StrUtil.isNotBlank(param.getHtml())) { + plugin.setHtml(param.getHtml()); } - if (param.getCss() != null && !param.getCss().equals("")) { - pluginWithBLOBs.setCss(param.getCss()); + if (StrUtil.isNotBlank(param.getCss())) { + plugin.setCss(param.getCss()); } - if (param.getJs() != null && !param.getJs().equals("")) { - pluginWithBLOBs.setJs(param.getJs()); + if (StrUtil.isNotBlank(param.getJs())) { + plugin.setJs(param.getJs()); } - if (param.getConfig() != null && !param.getConfig().equals("")) { - pluginWithBLOBs.setConfig(param.getConfig()); + if (StrUtil.isNotBlank(param.getConfig())) { + plugin.setConfig(param.getConfig()); } - pluginWithBLOBs.setPublish(param.getPublish()); - //处理预览图和轮播图 - if(param.getPreview() != null){ - //删除之前的预览图,添加新的预览图 + plugin.setPublish(param.getPublish()); + //TODO 处理预览图和轮播图 + OpenPluginImgExample pluginImgExample = new OpenPluginImgExample(); + + if(StrUtil.isNotBlank(param.getPreview())){ + pluginImgExample.createCriteria().andPluginIdEqualTo(param.getId()).andTypeEqualTo((byte) 0); + //删除之前的预览图 + List openPluginImgs = openPluginImgMapper.selectByExample(pluginImgExample); + if(CollectionUtil.isNotEmpty(openPluginImgs)){ + openPluginImgs.forEach(openPluginImg -> { + openPluginImg.setRecStatus((byte) 2); + openPluginImgMapper.updateByPrimaryKeySelective(openPluginImg); + }); + + } + //添加新的预览图 + OpenPluginImg pluginImg = new OpenPluginImg(); + pluginImg.setId(snowflake.nextId()); + pluginImg.setPluginId(param.getId()); + pluginImg.setType((byte) 0); + pluginImg.setFilePath(param.getPreview()); + openPluginImgMapper.insertSelective(pluginImg); } - pluginDao.updateByPrimaryKeySelective(pluginWithBLOBs); - - + if(CollectionUtil.isNotEmpty(param.getCarousel())){ + pluginImgExample.createCriteria().andPluginIdEqualTo(param.getId()).andTypeEqualTo((byte) 1); + List openPluginImgs = openPluginImgMapper.selectByExample(pluginImgExample); + openPluginImgs.forEach(openPluginImg -> { + openPluginImg.setRecStatus((byte) 2); + openPluginImgMapper.updateByPrimaryKeySelective(openPluginImg); + }); + //如果轮播图不为空,则删除旧数据,重新添加 + param.getCarousel().forEach(carousel -> { + OpenPluginImg pluginImg = new OpenPluginImg(); + pluginImg.setId(snowflake.nextId()); + pluginImg.setPluginId(param.getId()); + pluginImg.setType((byte) 1); + pluginImg.setFilePath(carousel); + openPluginImgMapper.insertSelective(pluginImg); + }); + } + //修改插件信息 + pluginDao.updateByPrimaryKeySelective(plugin); } - } diff --git a/ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java b/ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java index 8385f33..6ec6d61 100644 --- a/ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java +++ b/ptos_open/src/main/java/com/ccsens/ptos_open/util/OpenCodeError.java @@ -10,5 +10,6 @@ public class OpenCodeError extends CodeError { public static final Code ILLEGAL_LOG_IN = new Code(400,"非法登录",true); public static final Code NOT_PLUGIN = new Code(501,"插件不存在",true); public static final Code NOT_BUSINESS = new Code(502,"找不到对应的业务",true); + public static final Code BUSINESS_PLUGIN = new Code(503,"业务已经关联此插件,请勿重复添加",true); } diff --git a/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml b/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml index ec71566..cce54ce 100644 --- a/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml +++ b/ptos_open/src/main/resources/mapper_dao/BusinessDao.xml @@ -15,7 +15,7 @@ start_using as startUsing, pub, UNIX_TIMESTAMP(created_at) * 1000 as createTime, - UNIX_TIMESTAMP(update_at) * 1000 as updateTime + UNIX_TIMESTAMP(updated_at) * 1000 as updateTime FROM `t_open_business` diff --git a/ptos_open/src/main/resources/mapper_dao/PluginDao.xml b/ptos_open/src/main/resources/mapper_dao/PluginDao.xml index 1684ede..93ba6ae 100644 --- a/ptos_open/src/main/resources/mapper_dao/PluginDao.xml +++ b/ptos_open/src/main/resources/mapper_dao/PluginDao.xml @@ -40,4 +40,14 @@ id = #{pluginId} and rec_status = 0 + \ No newline at end of file