From c93a45c7fdbf1060162640777a0dcf2bdb6c85f1 Mon Sep 17 00:00:00 2001 From: zhangyongzhangyong <2012005003@qq.coom> Date: Thu, 13 Aug 2020 17:27:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E5=88=B6=E6=9C=8D=E5=8A=A1-=E4=BF=AE?= =?UTF-8?q?=E6=94=B9-=E5=88=9D=E7=A8=BF(=E6=9C=AA=E6=B5=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/CustomerFunctionDetailDTO.java | 4 +- .../java/com/epmet/dto/CustomizedDTO.java | 67 +++++++++++++++++++ .../epmet/dao/CustomerFunctionDetailDao.java | 5 +- .../com/epmet/dao/FunctionCustomizedDao.java | 10 +++ .../entity/CustomerFunctionDetailEntity.java | 2 +- .../impl/FunctionCustomizedServiceImpl.java | 60 +++++++++++++++-- .../mapper/CustomerFunctionDetailDao.xml | 13 +++- .../mapper/FunctionCustomizedDao.xml | 20 ++++++ 8 files changed, 166 insertions(+), 15 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomizedDTO.java diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionDetailDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionDetailDTO.java index 6d0635965b..40136207f0 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionDetailDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionDetailDTO.java @@ -66,7 +66,7 @@ public class CustomerFunctionDetailDTO implements Serializable { /** * 自定义业务域名 */ - private String realmName; + private String domainName; /** * 外链地址 @@ -108,4 +108,4 @@ public class CustomerFunctionDetailDTO implements Serializable { */ private Date updatedTime; -} \ No newline at end of file +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomizedDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomizedDTO.java new file mode 100644 index 0000000000..aa54ed57bf --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomizedDTO.java @@ -0,0 +1,67 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 定制功能修改 入参 + * + * @author zhangyong + * @since v1.0.0 2020-08-13 + */ +@Data +public class CustomizedDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 定制功能ID + */ + private String functionId; + + /** + * 上架状态:0:下架、1:上架 + */ + private String shoppingStatus; + + /** + * 功能说明 + */ + private String functionExplain; + + /** + * 定制功能详情ID + */ + private String customizedId; + + /** + * 默认名称 + */ + private String customizedName; + + /** + * 默认大图标 + */ + private String iconLargeImg; + + /** + * 默认小图标 + */ + private String iconSmallImg; + + + /** + * 外链地址 + */ + private String targetLink; + + /** + * 业务域名 + */ + private String domainName; + + /** + * 来源app(政府端:gov、居民端:resi) + */ + private String fromApp; +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java index 0b6c9c20fc..924b7cfa85 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomerFunctionDetailDTO; import com.epmet.entity.CustomerFunctionDetailEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -38,9 +39,9 @@ public interface CustomerFunctionDetailDao extends BaseDao + * @return java.util.List * @Author zhangyong * @Date 11:14 2020-08-13 **/ - List selectCustomerIdByFunctionId(@Param("functionId") String functionId); + List selectCustomerIdByFunctionId(@Param("functionId") String functionId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java index 51fcc8d4b8..6c358516fd 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomizedDTO; import com.epmet.dto.form.CommonFunctionIdFormDTO; import com.epmet.dto.result.FunctionCustomizedDetailResultDTO; import com.epmet.entity.FunctionCustomizedEntity; @@ -53,4 +54,13 @@ public interface FunctionCustomizedDao extends BaseDao * @Date 13:31 2020-08-13 **/ void delByFunctionId(@Param("functionId") String functionId); + + /** + * 根据功能id,查询定制功能全部信息(定制功能表+功能表) + * @param functionId + * @return com.epmet.dto.CustomizedDTO + * @Author zhangyong + * @Date 16:21 2020-08-13 + **/ + CustomizedDTO selectCustomized(@Param("functionId") String functionId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java index 13db363fea..aab31d79a7 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java @@ -66,7 +66,7 @@ public class CustomerFunctionDetailEntity extends BaseEpmetEntity { /** * 自定义业务域名 */ - private String realmName; + private String domainName; /** * 外链地址 diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java index c1fd95df1c..6f22d3ba15 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java @@ -20,14 +20,15 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.CustomerFunctionDetailDao; import com.epmet.dao.FunctionCustomizedDao; -import com.epmet.dao.FunctionDao; +import com.epmet.dto.CustomerFunctionDetailDTO; +import com.epmet.dto.CustomizedDTO; import com.epmet.dto.FunctionCustomizedDTO; import com.epmet.dto.form.CommonFunctionIdFormDTO; import com.epmet.dto.form.SaveFunctionCustomizedFormDTO; @@ -36,6 +37,7 @@ import com.epmet.dto.result.FunctionCustomizedDetailResultDTO; import com.epmet.entity.FunctionCustomizedEntity; import com.epmet.entity.FunctionEntity; import com.epmet.redis.FunctionCustomizedRedis; +import com.epmet.service.CustomerFunctionDetailService; import com.epmet.service.FunctionCustomizedService; import com.epmet.service.FunctionService; import org.apache.commons.lang3.StringUtils; @@ -43,6 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -62,6 +65,8 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl page(Map params) { @@ -142,7 +147,7 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId()); + List customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId()); if (customizedId != null && customizedId.size() > NumConstant.ZERO){ return new Result<>().error(8000, "功能正在使用中,不允许删除!"); } else { @@ -160,22 +165,63 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId()); + List customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId()); FunctionCustomizedEntity entity = new FunctionCustomizedEntity(); entity.setId(formDTO.getCustomizedId()); entity.setIconLargeImg(formDTO.getIconLargeImg()); entity.setIconSmallImg(formDTO.getIconSmallImg()); entity.setCustomizedName(formDTO.getCustomizedName()); if (customizedId != null && customizedId.size() > NumConstant.ZERO){ - // 有客户正在使用该 功能,只能修改功能名称和大小图标, 需要批量更新客户数据 + // 根据功能id,查询功能的详细信息 + CustomizedDTO customizedDTO = baseDao.selectCustomized(formDTO.getFunctionId()); + // 判断这个功能,用户使用的是默认的,还是自定义的 + + // 该集合,用户统一修改 客户定制功能详情表 + List upCustomizedInfoUserId = new ArrayList<>(); + + // 统一提示 不能进行修改的客户id + StringBuilder tipCustomizedInfoUserId = new StringBuilder(); + + // 如果这个功能,被客户重新定义了,则不会修改 + for (int i = 0; i < customizedId.size(); i++){ + if (null != customizedDTO){ + if (customizedDTO.getCustomizedName().equals(customizedId.get(i).getFunctionName()) + && customizedDTO.getIconLargeImg().equals(customizedId.get(i).getIconLargeImg()) + && customizedDTO.getIconSmallImg().equals(customizedId.get(i).getIconSmallImg()) + && customizedDTO.getDomainName().equals(customizedId.get(i).getDomainName()) + && customizedDTO.getTargetLink().equals(customizedId.get(i).getTargetLink()) ){ + // 这个功能,客户使用的是默认的,则修改 + if (!formDTO.getShoppingStatus().equals(customizedDTO.getShoppingStatus()) + || !formDTO.getFunctionExplain().equals(customizedDTO.getFunctionExplain()) + || !formDTO.getTargetLink().equals(customizedDTO.getTargetLink()) + || !formDTO.getDomainName().equals(customizedDTO.getDomainName()) + || !formDTO.getFromApp().equals(customizedDTO.getFromApp()) ){ + // 如果修改的内容是其他字段,则返回语句 + tipCustomizedInfoUserId.append(customizedId.get(i).getId()); + } else if (!formDTO.getCustomizedName().equals(customizedDTO.getCustomizedName()) + || !formDTO.getIconLargeImg().equals(customizedDTO.getIconLargeImg()) + || !formDTO.getIconSmallImg().equals(customizedDTO.getIconSmallImg())){ + // 如果修改的内容只是:功能名称和大小图标,, 需要批量更新客户数据 + upCustomizedInfoUserId.add(customizedId.get(i).getId()); + } + } + } + } + // 1.修改 客户定制功能详情表 + if (upCustomizedInfoUserId != null && upCustomizedInfoUserId.size() > NumConstant.ZERO){ + String[] ueserIds = new String[upCustomizedInfoUserId.size()]; + customerFunctionDetailService.delete(upCustomizedInfoUserId.toArray(ueserIds)); + } // 2.修改 功能表, 修改的字段范围,是:功能名称和大小图标 this.upFunction(formDTO); // 3.修改 定制功能表, 修改的字段范围,是:功能名称和大小图标 baseDao.updateById(entity); - // 4.修改 客户定制功能详情表(多客户), 修改的字段范围,是:功能名称和大小图标 - return new Result<>().error(8000, "客户正在使用该功能不允许修改上下架状态、业务域名和外链地址、所属端app!"); + // 4.提示哪些用户不能被修改 + if (tipCustomizedInfoUserId != null && tipCustomizedInfoUserId.length() >NumConstant.ZERO){ + return new Result<>().error(8000, "客户正在使用该功能不允许修改上下架状态、业务域名和外链地址、所属端app!"); + } } else { // 没有客户正在使用该 功能 // 2.修改 功能表, 修改的字段范围,是所有入参字段 diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml index c8f7bbc925..e86be93679 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml @@ -5,12 +5,19 @@ - diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml index b43ee05063..3d9ac9e6cb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml @@ -25,4 +25,24 @@ update function_customized set DEL_FLAG = 1 where FUNCTION_ID = #{functionId} and DEL_FLAG = '0' + + +