diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/UpdateCustomizedFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/UpdateCustomizedFormDTO.java new file mode 100644 index 0000000000..8b73f7cf19 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/UpdateCustomizedFormDTO.java @@ -0,0 +1,78 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 定制功能修改 入参 + * + * @author zhangyong + * @since v1.0.0 2020-08-13 + */ +@Data +public class UpdateCustomizedFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 定制功能ID + */ + @NotBlank(message = "定制功能ID不能为空") + private String functionId; + + /** + * 上架状态:0:下架、1:上架 + */ + @NotBlank(message = "上架状态:0:下架、1:上架不能为空") + private String shoppingStatus; + + /** + * 功能说明 + */ + @NotBlank(message = "功能说明不能为空") + private String functionExplain; + + /** + * 定制功能详情ID + */ + @NotBlank(message = "定制功能详情ID不能为空") + private String customizedId; + + /** + * 默认名称 + */ + @NotBlank(message = "默认名称不能为空") + private String customizedName; + + /** + * 默认大图标 + */ + @NotBlank(message = "默认大图标不能为空") + private String iconLargeImg; + + /** + * 默认小图标 + */ + @NotBlank(message = "默认小图标不能为空") + private String iconSmallImg; + + + /** + * 外链地址 + */ + @NotBlank(message = "外链地址不能为空") + private String targetLink; + + /** + * 业务域名 + */ + @NotBlank(message = "业务域名不能为空") + private String domainName; + + /** + * 来源app(政府端:gov、居民端:resi) + */ + @NotBlank(message = "来源app(政府端:gov、居民端:resi)不能为空") + private String fromApp; +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java index 5e08b41c16..1739ec15ae 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.FunctionCustomizedDTO; import com.epmet.dto.form.CommonFunctionIdFormDTO; import com.epmet.dto.form.SaveFunctionCustomizedFormDTO; +import com.epmet.dto.form.UpdateCustomizedFormDTO; import com.epmet.dto.result.FunctionCustomizedDetailResultDTO; import com.epmet.excel.FunctionCustomizedExcel; import com.epmet.service.FunctionCustomizedService; @@ -127,6 +128,8 @@ public class FunctionCustomizedController { /** * 定制功能删除 * 单条删除,在没有客户使用的前提下可以逻辑删除(客户定制功能详情表 ,没查到就是没人在使用) + * 当功能 有客户在使用时,返回code: 8000 + * msg: 功能正在使用中,不允许删除! * @param formDTO * @return com.epmet.commons.tools.utils.Result * @Author zhangyong @@ -137,4 +140,21 @@ public class FunctionCustomizedController { ValidatorUtils.validateEntity(formDTO); return functionCustomizedService.deleteFunctionCustomized(formDTO); } + + /** + * 定制功能修改 + * 有客户在使用该功能时则不允许修改上下架状态、业务域名和外链地址、所属端app, + * 只能修改功能名称和大小图标 + * 修改的要判断是否有客户在使用,有用的要批量更新已使用客户数据 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author zhangyong + * @Date 14:52 2020-08-13 + **/ + @PostMapping("updatecustomized") + public Result updateCustomized(@RequestBody UpdateCustomizedFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return functionCustomizedService.updateCustomized(formDTO); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionCustomizedService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionCustomizedService.java index 5186baadff..b52125f21d 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionCustomizedService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionCustomizedService.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.FunctionCustomizedDTO; import com.epmet.dto.form.CommonFunctionIdFormDTO; import com.epmet.dto.form.SaveFunctionCustomizedFormDTO; +import com.epmet.dto.form.UpdateCustomizedFormDTO; import com.epmet.dto.result.FunctionCustomizedDetailResultDTO; import com.epmet.entity.FunctionCustomizedEntity; @@ -126,4 +127,17 @@ public interface FunctionCustomizedService extends BaseService customizedId = customerFunctionDetailDao.selectCustomerIdByFunctionId(formDTO.getFunctionId()); @@ -154,6 +156,41 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl 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){ + // 有客户正在使用该 功能,只能修改功能名称和大小图标, 需要批量更新客户数据 + // 2.修改 功能表, 修改的字段范围,是:功能名称和大小图标 + this.upFunction(formDTO); + + // 3.修改 定制功能表, 修改的字段范围,是:功能名称和大小图标 + baseDao.updateById(entity); + + // 4.修改 客户定制功能详情表(多客户), 修改的字段范围,是:功能名称和大小图标 + return new Result<>().error(8000, "客户正在使用该功能不允许修改上下架状态、业务域名和外链地址、所属端app!"); + } else { + // 没有客户正在使用该 功能 + // 2.修改 功能表, 修改的字段范围,是所有入参字段 + this.upFunction(formDTO); + + // 3.修改 定制功能表, 修改的字段范围,是所有入参字段 + entity.setFunctionId(formDTO.getFunctionId()); + entity.setTargetLink(formDTO.getTargetLink()); + entity.setDomainName(formDTO.getDomainName()); + entity.setFromApp(formDTO.getFromApp()); + baseDao.updateById(entity); + } + return new Result(); + } + /** * 保存数据到 功能表 * @param formDTO @@ -172,4 +209,23 @@ public class FunctionCustomizedServiceImpl extends BaseServiceImpl