Browse Source

定制服务-修改-初稿(未测)

master
zhangyongzhangyong 5 years ago
parent
commit
c93a45c7fd
  1. 4
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionDetailDTO.java
  2. 67
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomizedDTO.java
  3. 5
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java
  4. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java
  5. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java
  6. 60
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java
  7. 13
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml
  8. 20
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml

4
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;
}
}

67
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;
}

5
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<CustomerFunctionDetai
* 可用来判断该功能是否有客户在使用
*
* @param functionId
* @return java.util.List<java.lang.String>
* @return java.util.List<com.epmet.dto.CustomerFunctionDetailDTO>
* @Author zhangyong
* @Date 11:14 2020-08-13
**/
List<String> selectCustomerIdByFunctionId(@Param("functionId") String functionId);
List<CustomerFunctionDetailDTO> selectCustomerIdByFunctionId(@Param("functionId") String functionId);
}

10
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<FunctionCustomizedEntity>
* @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);
}

2
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;
/**
* 外链地址

60
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<FunctionCusto
private FunctionService functionService;
@Autowired
private CustomerFunctionDetailDao customerFunctionDetailDao;
@Autowired
private CustomerFunctionDetailService customerFunctionDetailService;
@Override
public PageData<FunctionCustomizedDTO> page(Map<String, Object> params) {
@ -142,7 +147,7 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl<FunctionCusto
@Transactional(rollbackFor = Exception.class)
public Result deleteFunctionCustomized(CommonFunctionIdFormDTO formDTO) {
// 1.客户定制功能详情表 ,没查到就是没人在使用
List<String> customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId());
List<CustomerFunctionDetailDTO> 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<FunctionCusto
@Transactional(rollbackFor = Exception.class)
public Result updateCustomized(UpdateCustomizedFormDTO formDTO) {
// 1.客户定制功能详情表 ,没查到就是没人在使用
List<String> customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId());
List<CustomerFunctionDetailDTO> 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<String> 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.修改 功能表, 修改的字段范围,是所有入参字段

13
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml

@ -5,12 +5,19 @@
<!-- 根据functionId查询使用该功能的,客户id -->
<select id="selectCustomerIdByFunctionId" parameterType="String"
resultType="String">
resultType="com.epmet.dto.CustomerFunctionDetailDTO">
SELECT
CUSTOMER_ID customizedId
ID id,
CUSTOMER_ID customerId,
FUNCTION_ID functionId,
FUNCTION_NAME functionName,
ICON_LARGE_IMG iconLargeImg,
ICON_SMALL_IMG iconSmallImg,
DOMAIN_NAME domainName,
TARGET_LINK targetLink,
DISPLAY_ORDER displayOrder
FROM customer_function_detail
WHERE DEL_FLAG = '0'
AND FUNCTION_ID = #{functionId}
</select>
</mapper>

20
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml

@ -25,4 +25,24 @@
<update id="delByFunctionId" parameterType="String">
update function_customized set DEL_FLAG = 1 where FUNCTION_ID = #{functionId} and DEL_FLAG = '0'
</update>
<!-- 根据功能id,查询定制功能全部信息(定制功能表+功能表) -->
<select id="selectCustomized" parameterType="String"
resultType="com.epmet.dto.CustomizedDTO">
SELECT
f.ID functionId,
f.SHOPPING_STATUS shoppingStatus,
f.FUNCTION_EXPLAIN functionExplain,
cu.ID customizedId,
cu.CUSTOMIZED_NAME customizedName,
cu.ICON_LARGE_IMG iconLargeImg,
cu.ICON_SMALL_IMG iconSmallImg,
cu.TARGET_LINK targetLink,
cu.DOMAIN_NAME domainName,
cu.FROM_APP fromApp
FROM `function` f
LEFT JOIN function_customized cu ON f.ID = cu.FUNCTION_ID
WHERE f.DEL_FLAG = '0'
AND f.ID = #{functionId}
</select>
</mapper>

Loading…
Cancel
Save