From 6b752998c35d9da682b9ec1d52c6414e32fcba34 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 26 May 2020 16:58:28 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AF=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E5=AE=9A=E5=88=B6=E5=8C=96=E6=96=B0=E5=A2=9E=E4=B8=89?= =?UTF-8?q?=E4=B8=AA=E5=AE=A2=E6=88=B7=E5=8A=9F=E8=83=BD=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/PageQueryFormDTO.java | 33 +++++ .../epmet/dto/result/CustomerResultDTO.java | 27 +++++ .../epmet/controller/CustomerController.java | 17 ++- .../main/java/com/epmet/dao/CustomerDao.java | 9 ++ .../com/epmet/service/CustomerService.java | 9 ++ .../service/impl/CustomerServiceImpl.java | 21 +++- .../src/main/resources/mapper/CustomerDao.xml | 14 +++ .../dto/form/CustomerFunctionListFormDTO.java | 16 +++ .../dto/form/SaveCustomerFunctionFormDTO.java | 25 ++++ .../result/CustomerFunctionListResultDTO.java | 42 +++++++ .../CustomizedFunctionListResultDTO.java | 30 +++++ .../result/DefaultFunctionListResultDTO.java | 30 +++++ .../oper-customize-server/pom.xml | 6 + .../constant/CustomerFunctionConstant.java | 27 +++++ .../CustomerFunctionController.java | 37 +++++- .../com/epmet/dao/CustomerFunctionDao.java | 21 +++- .../main/java/com/epmet/dao/FunctionDao.java | 8 ++ .../com/epmet/feign/OperCrmFeignClient.java | 29 +++++ .../fallback/OperCrmFeignClientFallBack.java | 24 ++++ .../service/CustomerFunctionService.java | 19 +++ .../impl/CustomerFunctionServiceImpl.java | 113 +++++++++++++++++- .../resources/mapper/CustomerFunctionDao.xml | 32 +++-- .../src/main/resources/mapper/FunctionDao.xml | 10 ++ 23 files changed, 580 insertions(+), 19 deletions(-) create mode 100644 epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/PageQueryFormDTO.java create mode 100644 epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionListFormDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionFormDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionListResultDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomizedFunctionListResultDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/DefaultFunctionListResultDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/fallback/OperCrmFeignClientFallBack.java diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/PageQueryFormDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/PageQueryFormDTO.java new file mode 100644 index 0000000000..3067956e2e --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/PageQueryFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 运营端-客户列表查询-接口入参 + * @Author sun + */ +@Data +public class PageQueryFormDTO implements Serializable { + + /** + * 客户名称 + */ + private String customerName; + + /** + * 页码 + * */ + @Min(1) + private Integer pageNo; + + /** + * 每页多少条 + * */ + private Integer pageSize = 10; +} + diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java new file mode 100644 index 0000000000..6f63e6dfd5 --- /dev/null +++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 运营端-客户列表查询-接口返参 + * @Author sun + */ +@Data +public class CustomerResultDTO implements Serializable { + private static final long serialVersionUID = -916195251545143333L; + + /** + * 客户id + */ + private String customerId = ""; + /** + * 客户名称 + */ + private String customerName = ""; + /** + * 客户logo + */ + private String logo = ""; +} diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java index 70776b608b..84574bdf85 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java @@ -17,9 +17,11 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; 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.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -31,19 +33,18 @@ import com.epmet.dto.CustomerDTO; import com.epmet.dto.form.AddRootAgencyFormDTO; import com.epmet.dto.form.CustomerFormDTO; import com.epmet.dto.form.CustomerManagerFormDTO; +import com.epmet.dto.form.PageQueryFormDTO; import com.epmet.dto.result.CustomerDetailResultDTO; import com.epmet.dto.result.ValidCustomerResultDTO; import com.epmet.excel.CustomerExcel; import com.epmet.feign.GovOrgFeignClient; import com.epmet.service.CustomerService; -import org.apache.ibatis.mapping.ResultMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import javax.xml.validation.Validator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -222,4 +223,16 @@ public class CustomerController { CustomerDetailResultDTO customerDetailResultDto = customerService.getcustomerDetail(form.getCustomerId()); return new Result().ok(customerDetailResultDto); } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 运营端-客户列表查询 + **/ + @PostMapping("pagequery") + public Result pageQuery(@LoginUser TokenDto tokenDTO, @RequestBody PageQueryFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(customerService.pageQuery(formDTO)); + } } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java index 2d15ea214a..9ca4638bdd 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerDTO; +import com.epmet.dto.result.CustomerResultDTO; import com.epmet.dto.result.ValidCustomerResultDTO; import com.epmet.entity.CustomerEntity; import org.apache.ibatis.annotations.Mapper; @@ -58,4 +59,12 @@ public interface CustomerDao extends BaseDao { * @return */ CustomerDTO selectByCustomerName(@Param("customerName") String customerName); + + /** + * @param customerName + * @return + * @Author sun + * @Description 查询有效客户数据(不区分是否在有效期内)【按名称模糊查询】 + **/ + List selectCustomerList(@Param("customerName") String customerName); } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java index ad71749b9b..bf0c569e53 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerDTO; import com.epmet.dto.form.CustomerFormDTO; import com.epmet.dto.form.CustomerManagerFormDTO; +import com.epmet.dto.form.PageQueryFormDTO; import com.epmet.dto.result.CustomerDetailResultDTO; import com.epmet.dto.result.ValidCustomerResultDTO; import com.epmet.entity.CustomerEntity; @@ -149,4 +150,12 @@ public interface CustomerService extends BaseService { void addManager(CustomerManagerFormDTO form); CustomerDetailResultDTO getcustomerDetail(String customerId); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 运营端-客户列表查询 + **/ + PageData pageQuery(PageQueryFormDTO formDTO); } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java index 9510e0631d..e4517a87b7 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java +++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java @@ -20,18 +20,17 @@ 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.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.RoleKeyConstants; import com.epmet.constant.UserWorkType; import com.epmet.dao.CustomerDao; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerDTO; -import com.epmet.dto.CustomerHomeDTO; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -41,6 +40,8 @@ import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.OperCustomizeFeignClient; import com.epmet.redis.CustomerRedis; import com.epmet.service.CustomerService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -371,4 +372,20 @@ public class CustomerServiceImpl extends BaseServiceImpl list = baseDao.selectCustomerList(formDTO.getCustomerName()); + //PageInfo pi = new PageInfo<>(list); + PageData resultDTO = new PageData(list,list.size()); + return resultDTO; + } + } diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml index 8ed4314464..997216b76c 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml @@ -56,4 +56,18 @@ FROM customer WHERE CUSTOMER_NAME = #{customerName} + + diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionListFormDTO.java new file mode 100644 index 0000000000..578181e281 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionListFormDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class CustomerFunctionListFormDTO { + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空") + private String customerId; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionFormDTO.java new file mode 100644 index 0000000000..d1e2097150 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class SaveCustomerFunctionFormDTO { + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空") + private String customerId; + /** + * 勾选的默认功能列表Id集合 + */ + private List defaultFunctionList; + /** + * 勾选的定制功能列表Id集合 + */ + private List customizedFunctionList; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionListResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionListResultDTO.java new file mode 100644 index 0000000000..e09418c1e7 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionListResultDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 运营端-客户定制化服务-查询客户功能列表详情-接口返参 + * @Author sun + */ +@Data +public class CustomerFunctionListResultDTO implements Serializable { + private static final long serialVersionUID = 2971689193155710437L; + + /** + * 客户id + */ + private String customerId; + + /** + * 客户名称 + */ + private String customerName; + + /** + * logo的url + */ + private String logo; + + /** + * 默认功能列表 + */ + private List defaultFunctionList = new ArrayList<>(); + + /** + * 定制功能列表 + */ + private List customizedFunctionList = new ArrayList<>(); + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomizedFunctionListResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomizedFunctionListResultDTO.java new file mode 100644 index 0000000000..582126aa23 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomizedFunctionListResultDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 运营端-客户定制化服务-查询客户功能列表详情-定制功能列表详情-接口返参 + * @Author sun + */ +@Data +public class CustomizedFunctionListResultDTO implements Serializable { + private static final long serialVersionUID = 2971689193155710437L; + + /** + * 功能id + */ + private String functionId = ""; + + /** + * 功能名称 + */ + private String functionName = ""; + + /** + * 是否勾选过(true代表拥有此功能) + */ + private Boolean flag = false; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/DefaultFunctionListResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/DefaultFunctionListResultDTO.java new file mode 100644 index 0000000000..9821e6e1b9 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/DefaultFunctionListResultDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 运营端-客户定制化服务-查询客户功能列表详情-默认功能列表详情-接口返参 + * @Author sun + */ +@Data +public class DefaultFunctionListResultDTO implements Serializable { + private static final long serialVersionUID = 2971689193155710437L; + + /** + * 功能id + */ + private String functionId = ""; + + /** + * 功能名称 + */ + private String functionName = ""; + + /** + * 是否勾选过(true代表拥有此功能) + */ + private Boolean flag = false; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index 6d23d585bf..8cbfb01b90 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -58,6 +58,12 @@ feign-httpclient 10.3.0 + + com.epmet + oper-crm-client + 2.0.0 + compile + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java new file mode 100644 index 0000000000..dc347a7c53 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + *

+ * https://www.renren.io + *

+ * 版权所有,侵权必究! + */ + +package com.epmet.constant; + +/** + * 常量 + * @author sun + * @since 1.0.0 + */ +public interface CustomerFunctionConstant { + /** + * 调用opr-crm服务,查询客户基本信息失败 + */ + String SELECT_CUSTOMER_EXCEPTION = "获取客户基本信息失败"; + /** + * 既没有勾选默认功能有没有勾选定制功能 + */ + String PARAMETER_EXCEPTION = "请至少勾选一条默认功能或定制功能数据"; + + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java index bc9223b704..5af31e8e0b 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java @@ -17,15 +17,23 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.constant.CustomerFunctionConstant; import com.epmet.dto.CustomerFunctionDTO; +import com.epmet.dto.form.CustomerFunctionListFormDTO; +import com.epmet.dto.form.SaveCustomerFunctionFormDTO; +import com.epmet.dto.result.CustomerFunctionListResultDTO; import com.epmet.excel.CustomerFunctionExcel; import com.epmet.service.CustomerFunctionService; import org.springframework.beans.factory.annotation.Autowired; @@ -91,4 +99,31 @@ public class CustomerFunctionController { ExcelUtils.exportExcelToTarget(response, null, list, CustomerFunctionExcel.class); } + /** + * @param formDTO + * @return + * @Author sun + * @Description 运营端-获取客户功能(已勾选、未勾选)详情列表 + **/ + @PostMapping("customerfunctionlist") + public Result customerFunctionList(@LoginUser TokenDto tokenDTO, @RequestBody CustomerFunctionListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(customerFunctionService.customerFunctionList(formDTO)); + } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 运营端-保存客户功能关系数据 + **/ + @PostMapping("savecustomerfunction") + public Result saveCustomerFunction(@LoginUser TokenDto tokenDTO, @RequestBody SaveCustomerFunctionFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + if ((formDTO.getDefaultFunctionList().size() + formDTO.getCustomizedFunctionList().size()) < NumConstant.ONE) { + throw new ValidateException(CustomerFunctionConstant.PARAMETER_EXCEPTION); + } + customerFunctionService.saveCustomerFunction(formDTO); + return new Result(); + } } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDao.java index 47b65dd33f..5aeceb85c7 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDao.java @@ -18,8 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomerFunctionDTO; import com.epmet.entity.CustomerFunctionEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 客户功能权限表 @@ -29,5 +33,20 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface CustomerFunctionDao extends BaseDao { - + + /** + * @param customerId + * @return + * @Author sun + * @Description 根据客户Id查询客户已经配置的功能列表 + **/ + List selectCustomerFunctionList(@Param("customerId") String customerId); + + /** + * @param customerId + * @return + * @Author sun + * @Description 根据客户Id逻辑删除客户功能关联数据 + **/ + void updateByCustomerId(String customerId); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java index dbc72d12dd..0ad172a342 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java @@ -40,4 +40,12 @@ public interface FunctionDao extends BaseDao { * @Date 2020/3/23 22:15 **/ List selectFunctionList(); + + /** + * @param shoppingStatus + * @return + * @Author sun + * @Description 查询所有已上架功能列表(默认、定制功能) + **/ + List selectShopFunctionList(int shoppingStatus); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java new file mode 100644 index 0000000000..410157471c --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java @@ -0,0 +1,29 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.CustomerDTO; +import com.epmet.dto.result.ValidCustomerResultDTO; +import com.epmet.feign.fallback.OperCrmFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description 运营端客户管理服务 + * @Author sun + */ +@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmFeignClientFallBack.class,url="localhost:8090") +public interface OperCrmFeignClient { + + /** + * @param id + * @return + * @Author sun + * @Description 根据客户Id查询客户基本信息 + **/ + @GetMapping("/oper/crm/customer/{id}") + Result queryCustomerInfo(@PathVariable("id") String id); +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/fallback/OperCrmFeignClientFallBack.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/fallback/OperCrmFeignClientFallBack.java new file mode 100644 index 0000000000..4d6431248b --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/fallback/OperCrmFeignClientFallBack.java @@ -0,0 +1,24 @@ +package com.epmet.feign.fallback; + +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.CustomerDTO; +import com.epmet.dto.result.ValidCustomerResultDTO; +import com.epmet.feign.OperCrmFeignClient; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Description 运营端客户管理服务 + * @Author sun + */ +@Component +public class OperCrmFeignClientFallBack implements OperCrmFeignClient { + + @Override + public Result queryCustomerInfo(String id) { + return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "get",id); + } +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java index ac77813dbe..91c1e3eb1b 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java @@ -20,6 +20,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.CustomerFunctionDTO; +import com.epmet.dto.form.CustomerFunctionListFormDTO; +import com.epmet.dto.form.SaveCustomerFunctionFormDTO; +import com.epmet.dto.result.CustomerFunctionListResultDTO; import com.epmet.entity.CustomerFunctionEntity; import java.util.List; @@ -92,4 +95,20 @@ public interface CustomerFunctionService extends BaseService page(Map params) { @@ -101,4 +119,95 @@ public class CustomerFunctionServiceImpl extends BaseServiceImpl result = operCrmFeignClient.queryCustomerInfo(formDTO.getCustomerId()); + if (!result.success() || null == result.getData()) { + throw new RenException(CustomerFunctionConstant.SELECT_CUSTOMER_EXCEPTION); + } + CustomerDTO customerDTO = result.getData(); + resultDTO.setCustomerId(customerDTO.getId()); + resultDTO.setCustomerName(customerDTO.getCustomerName()); + resultDTO.setLogo(customerDTO.getLogo()); + + //2:查询所有已上架功能列表(默认、定制功能) + List funList = functionDao.selectShopFunctionList(NumConstant.ONE); + if(null==funList||funList.size() csList = baseDao.selectCustomerFunctionList(formDTO.getCustomerId()); + + //4:封装数据,客户已拥有但已下架的功能不展示 + List defaultFunctionList = new ArrayList<>(); + List customizedFunctionList = new ArrayList<>(); + funList.forEach(fun -> { + //默认功能 + if (fun.getFunctionGroup() == NumConstant.ZERO) { + DefaultFunctionListResultDTO df = new DefaultFunctionListResultDTO(); + df.setFunctionId(fun.getId()); + df.setFunctionName(fun.getFunctionName()); + csList.forEach(cs -> { + if (fun.getId().equals(cs.getFunctionId())) { + df.setFlag(true); + } + }); + defaultFunctionList.add(df); + } + //定制功能 + if (fun.getFunctionGroup() == NumConstant.ONE) { + CustomizedFunctionListResultDTO cf = new CustomizedFunctionListResultDTO(); + cf.setFunctionId(fun.getId()); + cf.setFunctionName(fun.getFunctionName()); + csList.forEach(cs -> { + if (fun.getId().equals(cs.getFunctionId())) { + cf.setFlag(true); + } + }); + customizedFunctionList.add(cf); + } + }); + resultDTO.setDefaultFunctionList(defaultFunctionList); + resultDTO.setCustomizedFunctionList(customizedFunctionList); + return resultDTO; + } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 运营端-保存客户功能关系数据 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void saveCustomerFunction(SaveCustomerFunctionFormDTO formDTO) { + //1:逻辑删除旧的客户功能关联数据 + baseDao.updateByCustomerId(formDTO.getCustomerId()); + + //2:批量新增新的客户功能关系数据 + List entityList = new ArrayList<>(); + formDTO.getDefaultFunctionList().forEach(dfId -> { + CustomerFunctionEntity entity = new CustomerFunctionEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setFunctionId(dfId); + entityList.add(entity); + }); + formDTO.getCustomizedFunctionList().forEach(cfId -> { + CustomerFunctionEntity entity = new CustomerFunctionEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setFunctionId(cfId); + entityList.add(entity); + }); + insertBatch(entityList); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml index 8cce9528a8..c3cc02e213 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml @@ -3,17 +3,27 @@ - - - - - - - - - - - + + + UPDATE + customer_function + SET + del_flag = '1' + WHERE + del_flag = '0' + AND + customer_id = #{customerId} + \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml index 5ca6510ae7..0a158f9cb4 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml @@ -28,4 +28,14 @@ f.DEL_FLAG = '0' AND f.SHOPPING_STATUS = '1' + From 930e2504ee7c31f470549311a7b8e69bf1ac22a5 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 26 May 2020 16:59:44 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=A4=9A=E6=8F=90=E4=BA=A4=E4=BA=86url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/feign/OperCrmFeignClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java index 410157471c..e187779806 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java @@ -15,7 +15,7 @@ import java.util.List; * @Description 运营端客户管理服务 * @Author sun */ -@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmFeignClientFallBack.class,url="localhost:8090") +@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmFeignClientFallBack.class) public interface OperCrmFeignClient { /** From 8275d5b1755a68fd532bc46e1137f9e053c465d1 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 26 May 2020 17:07:46 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=A1=88?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E4=BA=BA=E5=91=98=E5=8E=BB?= =?UTF-8?q?=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/ProjectRelatedPersonnelDao.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml index 9b8a16d319..18257b67f4 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml @@ -17,8 +17,10 @@