diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java index 49681043e0..57200dd13a 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java @@ -145,4 +145,9 @@ public interface Constant { String DISTRICT = "district"; String STREET = "street"; String COMMUNITY = "community"; + + //footbar参数值含义:flat:水平模式;float:浮起某个菜单 + String FOOT_BAR_FLOAT="float"; + //footbar参数值含义:flat:水平模式;float:浮起某个菜单 + String FOOT_BAR_FLAT="flat"; } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java index e62d8cf837..c9cb23e23b 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerParameterServiceImpl.java @@ -3,14 +3,19 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.CustomerParameterDao; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.form.FootBarPatternFormDTO; import com.epmet.dto.form.FootBarPatternQueryFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.CrmParameterResultDTO; import com.epmet.dto.result.FootBarPatternQueryResultDTO; import com.epmet.entity.CustomerParameterEntity; +import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.service.CustomerParameterService; +import com.epmet.service.CustomerService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,6 +36,10 @@ public class CustomerParameterServiceImpl implements CustomerParameterService { @Autowired private CustomerParameterDao parameterDao; + @Autowired + private CustomerService customerService; + @Autowired + private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; /** * @Description 查询客户配置信息 @@ -94,6 +103,28 @@ public class CustomerParameterServiceImpl implements CustomerParameterService { */ @Override public void saveFootBarPattern(FootBarPatternFormDTO formDTO) { + //1、客户不存在 + if (!Constant.DEFAULT_CUSTOMER.equals(formDTO.getCustomerId()) && null == customerService.get(formDTO.getCustomerId())) { + throw new RenException("客户信息不存在"); + } + // 2、如果选择的浮起,只有footbar为奇数+并且3个图标路径全部上传才可以配置浮起模式 + if (Constant.FOOT_BAR_FLOAT.equals(formDTO.getPattern())) { + CheckFloatFootBarFormDTO checkFloatFootBarFormDTO = new CheckFloatFootBarFormDTO(); + checkFloatFootBarFormDTO.setCustomerId(formDTO.getCustomerId()); + checkFloatFootBarFormDTO.setAppType(formDTO.getAppType()); + Result customizeResult = operCustomizeOpenFeignClient.checkFloatFootBar(checkFloatFootBarFormDTO); + if (!customizeResult.success() && null == customizeResult.getData()) { + throw new RenException("查询客户footbar信息异常"); + } + if(customizeResult.getData().getIsOddNum()){ + //运营端错误信息是怎么显示的? + throw new RenException("只有footbar个数为奇数时,才可以选择此模式"); + } + if(!customizeResult.getData().getBothUploaded()){ + throw new RenException("请先上传footbar图标,全部上传后才可以选择此模式"); + } + } + //3、符合条件,更新或者插入 String parameterKey = formDTO.getAppType().concat(StrConstant.UNDER_LINE).concat("footbar_pattern"); CustomerParameterEntity original = parameterDao.selectAppFootBarPattern(parameterKey, formDTO.getCustomerId()); if (null != original) { diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CheckFloatFootBarFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CheckFloatFootBarFormDTO.java new file mode 100644 index 0000000000..499d0ecddd --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CheckFloatFootBarFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 校验当前客户是否可以选择浮起footbar模式 + * 只有奇数并且3个图标都上传的才可以 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/27 17:56 + */ +@Data +public class CheckFloatFootBarFormDTO implements Serializable { + private static final long serialVersionUID = 3202974977135976455L; + /** + * 传客户id + */ + @NotBlank(message = "customerId不能为空") + private String customerId; + /** + * 工作端:gov;居民端resi + */ + @NotBlank(message = "appType不能为空") + private String appType; +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CheckFloatFootBarResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CheckFloatFootBarResultDTO.java new file mode 100644 index 0000000000..cb8dff7688 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CheckFloatFootBarResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 校验当前客户是否可以选择浮起footbar模式 + * 只有奇数并且3个图标都上传的才可以 + * + * @author yinzuomei@elink-cn.com + * @date 2021/7/27 17:56 + */ +@Data +public class CheckFloatFootBarResultDTO implements Serializable { + private static final long serialVersionUID = 8205326079938200511L; + + /** + * 是否是奇数,true:是奇数 + */ + private Boolean isOddNum; + + /** + * 是否都上传了图标,true:都上传了 + */ + private Boolean bothUploaded; +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index 62c90892f6..c73df9c1ce 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -1,20 +1,14 @@ package com.epmet.feign; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; -import org.springframework.cloud.openfeign.FeignClient; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CustomerFunctionListFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.DefaultFunctionListResultDTO; import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallback; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; @@ -36,4 +30,16 @@ public interface OperCustomizeOpenFeignClient { @PostMapping(value = "/oper/customize/customerfunction/getOpenedFunctionList", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) Result> getOpenedFunctionList(@RequestBody CustomerFunctionListFormDTO formDTO); + + /** + * 校验当前客户是否可以选择浮起footbar模式 + * 只有奇数并且3个图标都上传的才可以 + * + * @param checkFloatFootBarFormDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @date 2021/7/27 18:06 + */ + @PostMapping(value = "/oper/customize/customerfootbar/checkfloatfootbar", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result checkFloatFootBar(@RequestBody CheckFloatFootBarFormDTO checkFloatFootBarFormDTO); } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java index 3958e89268..4c43471c31 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java @@ -4,11 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CustomerFunctionListFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.DefaultFunctionListResultDTO; import com.epmet.feign.OperCustomizeOpenFeignClient; import org.springframework.stereotype.Component; @@ -36,4 +35,18 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe public Result> getOpenedFunctionList(CustomerFunctionListFormDTO formDTO){ return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getOpenedFunctionList", formDTO); } + + /** + * 校验当前客户是否可以选择浮起footbar模式 + * 只有奇数并且3个图标都上传的才可以 + * + * @param checkFloatFootBarFormDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @date 2021/7/27 18:06 + */ + @Override + public Result checkFloatFootBar(CheckFloatFootBarFormDTO checkFloatFootBarFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "checkFloatFootBar", checkFloatFootBarFormDTO); + } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java index 7e8f5c4325..332d41aa99 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java @@ -30,7 +30,9 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; import com.epmet.excel.CustomerFootBarExcel; @@ -255,4 +257,19 @@ public class CustomerFootBarController { return new Result(); } + /** + * 校验当前客户是否可以选择浮起footbar模式 + * 只有奇数并且3个图标都上传的才可以 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @date 2021/7/27 18:06 + */ + @PostMapping("checkfloatfootbar") + public Result checkFloatFootBar(@RequestBody CheckFloatFootBarFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(customerFootBarService.checkFloatFootBar(formDTO)); + } } + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java index 0ed3c9e0e5..fc690139a0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java @@ -20,7 +20,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; @@ -114,4 +116,15 @@ public interface CustomerFootBarService extends BaseService + * @author yinzuomei + * @date 2021/7/27 18:06 + */ + CheckFloatFootBarResultDTO checkFloatFootBar(CheckFloatFootBarFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java index 5205059bc0..70c3811466 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java @@ -20,16 +20,18 @@ 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.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.CustomerFootBarDao; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CheckFloatFootBarFormDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CheckFloatFootBarResultDTO; import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; import com.epmet.redis.CustomerFootBarRedis; @@ -295,4 +297,39 @@ public class CustomerFootBarServiceImpl extends BaseServiceImpl + * @author yinzuomei + * @date 2021/7/27 18:06 + */ + @Override + public CheckFloatFootBarResultDTO checkFloatFootBar(CheckFloatFootBarFormDTO formDTO) { + CheckFloatFootBarResultDTO resultDTO = new CheckFloatFootBarResultDTO(); + resultDTO.setIsOddNum(false); + resultDTO.setBothUploaded(true); + List footbars = this.listCustomerFootBars(formDTO.getCustomerId(), formDTO.getAppType()); + if (!CollectionUtils.isEmpty(footbars)) { + if (footbars.size() % 2 == 0) { + resultDTO.setIsOddNum(false); + } else { + resultDTO.setIsOddNum(true); + } + for (CustomerFootBarEntity entity : footbars) { + if (StringUtils.isBlank(entity.getIconPath()) + || StringUtils.isBlank(entity.getSelectedIconPath()) + || StringUtils.isBlank(entity.getFloatIconPath())) { + resultDTO.setBothUploaded(false); + break; + } + } + } + return resultDTO; + } + } \ No newline at end of file