Browse Source

Merge branches 'dev' and 'dev_issue_project' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_issue_project

dev_shibei_match
yinzuomei 5 years ago
parent
commit
a69d82c781
  1. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenExceptionHandler.java
  2. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java
  3. 6
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml
  4. 33
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/form/PageQueryFormDTO.java
  5. 27
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java
  6. 17
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
  7. 9
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/dao/CustomerDao.java
  8. 9
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
  9. 21
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
  10. 14
      epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml
  11. 16
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionListFormDTO.java
  12. 25
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionFormDTO.java
  13. 42
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionListResultDTO.java
  14. 30
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomizedFunctionListResultDTO.java
  15. 30
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/DefaultFunctionListResultDTO.java
  16. 6
      epmet-module/oper-customize/oper-customize-server/pom.xml
  17. 27
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/CustomerFunctionConstant.java
  18. 37
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java
  19. 21
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDao.java
  20. 8
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java
  21. 29
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/OperCrmFeignClient.java
  22. 24
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/feign/fallback/OperCrmFeignClientFallBack.java
  23. 19
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java
  24. 113
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionServiceImpl.java
  25. 32
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml
  26. 10
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml

4
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenExceptionHandler.java

@ -33,11 +33,11 @@ import java.util.Map;
/**
* 异常处理器
*
* 暂停使用,改用BaseRequestLogAspect
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@RestControllerAdvice
//@RestControllerAdvice
public class RenExceptionHandler {
private static final Logger logger = LoggerFactory.getLogger(RenExceptionHandler.class);
@Autowired

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java

@ -152,7 +152,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl<CustomerGridDao, Cu
Map<String,Object> map = new HashMap<>();
map.put("areaCode",areaCode);
map.put("cityCode",areaCode.substring(0,areaCode.length()-2));
map.put("cityCode",areaCode.substring(0,areaCode.length()-NumConstant.FOUR));
map.put("pageSize",listCustomerGridFormDTO.getPageSize());
map.put("pageNo",listCustomerGridFormDTO.getPageNo());

6
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml

@ -17,8 +17,10 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectPersonnelListByProjectId" resultType="com.epmet.dto.ProjectRelatedPersonnelDTO">
SELECT
*
SELECT DISTINCT
APP,
GRID_ID,
USER_ID
FROM
project_related_personnel
WHERE

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

27
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 = "";
}

17
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<PageData> pageQuery(@LoginUser TokenDto tokenDTO, @RequestBody PageQueryFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<PageData>().ok(customerService.pageQuery(formDTO));
}
}

9
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<CustomerEntity> {
* @return
*/
CustomerDTO selectByCustomerName(@Param("customerName") String customerName);
/**
* @param customerName
* @return
* @Author sun
* @Description 查询有效客户数据(不区分是否在有效期内)按名称模糊查询
**/
List<CustomerResultDTO> selectCustomerList(@Param("customerName") String customerName);
}

9
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<CustomerEntity> {
void addManager(CustomerManagerFormDTO form);
CustomerDetailResultDTO getcustomerDetail(String customerId);
/**
* @param formDTO
* @return
* @Author sun
* @Description 运营端-客户列表查询
**/
PageData pageQuery(PageQueryFormDTO formDTO);
}

21
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<CustomerDao, CustomerEn
return new Date(new Date().getTime() + Long.valueOf(life));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 运营端-客户列表查询
**/
@Override
public PageData pageQuery(PageQueryFormDTO formDTO) {
//1:查询有效客户数据(不区分是否在有效期内)
PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize());
List<CustomerResultDTO> list = baseDao.selectCustomerList(formDTO.getCustomerName());
//PageInfo<CustomerResultDTO> pi = new PageInfo<>(list);
PageData resultDTO = new PageData(list,list.size());
return resultDTO;
}
}

14
epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml

@ -56,4 +56,18 @@
FROM customer
WHERE CUSTOMER_NAME = #{customerName}
</select>
<select id="selectCustomerList" resultType="com.epmet.dto.result.CustomerResultDTO">
SELECT
id AS "customerId",
customer_name AS "customerName",
IFNULL(logo,"") AS "logo"
FROM
customer
WHERE
del_flag = '0'
<if test='customerName != "" and customerName != null'>
AND customer_name LIKE concat('%', trim(#{customerName}), '%')
</if>
</select>
</mapper>

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

25
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<String> defaultFunctionList;
/**
* 勾选的定制功能列表Id集合
*/
private List<String> customizedFunctionList;
}

42
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<DefaultFunctionListResultDTO> defaultFunctionList = new ArrayList<>();
/**
* 定制功能列表
*/
private List<CustomizedFunctionListResultDTO> customizedFunctionList = new ArrayList<>();
}

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

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

6
epmet-module/oper-customize/oper-customize-server/pom.xml

@ -58,6 +58,12 @@
<artifactId>feign-httpclient</artifactId>
<version>10.3.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-crm-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

27
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.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
package com.epmet.constant;
/**
* 常量
* @author sun
* @since 1.0.0
*/
public interface CustomerFunctionConstant {
/**
* 调用opr-crm服务查询客户基本信息失败
*/
String SELECT_CUSTOMER_EXCEPTION = "获取客户基本信息失败";
/**
* 既没有勾选默认功能有没有勾选定制功能
*/
String PARAMETER_EXCEPTION = "请至少勾选一条默认功能或定制功能数据";
}

37
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<CustomerFunctionListResultDTO> customerFunctionList(@LoginUser TokenDto tokenDTO, @RequestBody CustomerFunctionListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<CustomerFunctionListResultDTO>().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();
}
}

21
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<CustomerFunctionEntity> {
/**
* @param customerId
* @return
* @Author sun
* @Description 根据客户Id查询客户已经配置的功能列表
**/
List<CustomerFunctionDTO> selectCustomerFunctionList(@Param("customerId") String customerId);
/**
* @param customerId
* @return
* @Author sun
* @Description 根据客户Id逻辑删除客户功能关联数据
**/
void updateByCustomerId(String customerId);
}

8
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java

@ -40,4 +40,12 @@ public interface FunctionDao extends BaseDao<FunctionEntity> {
* @Date 2020/3/23 22:15
**/
List<FunctionDTO> selectFunctionList();
/**
* @param shoppingStatus
* @return
* @Author sun
* @Description 查询所有已上架功能列表(默认定制功能)
**/
List<FunctionDTO> selectShopFunctionList(int shoppingStatus);
}

29
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)
public interface OperCrmFeignClient {
/**
* @param id
* @return
* @Author sun
* @Description 根据客户Id查询客户基本信息
**/
@GetMapping("/oper/crm/customer/{id}")
Result<CustomerDTO> queryCustomerInfo(@PathVariable("id") String id);
}

24
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<CustomerDTO> queryCustomerInfo(String id) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "get",id);
}
}

19
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<CustomerFunctionEnt
* @date 2020-03-10
*/
void delete(String[] ids);
/**
* @param formDTO
* @return
* @Author sun
* @Description 运营端-获取客户功能(已勾选未勾选)详情列表
**/
CustomerFunctionListResultDTO customerFunctionList(CustomerFunctionListFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 运营端-保存客户功能关系数据
**/
void saveCustomerFunction(SaveCustomerFunctionFormDTO formDTO);
}

113
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionServiceImpl.java

@ -20,12 +20,25 @@ 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.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.CustomerFunctionConstant;
import com.epmet.dao.CustomerFunctionDao;
import com.epmet.dao.FunctionDao;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.CustomerFunctionDTO;
import com.epmet.dto.FunctionDTO;
import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.form.SaveCustomerFunctionFormDTO;
import com.epmet.dto.result.CustomerFunctionListResultDTO;
import com.epmet.dto.result.CustomizedFunctionListResultDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.entity.CustomerFunctionEntity;
import com.epmet.feign.OperCrmFeignClient;
import com.epmet.redis.CustomerFunctionRedis;
import com.epmet.service.CustomerFunctionService;
import org.apache.commons.lang3.StringUtils;
@ -33,12 +46,13 @@ 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;
/**
* 客户功能权限表
* 客户功能权限表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-10
@ -48,6 +62,10 @@ public class CustomerFunctionServiceImpl extends BaseServiceImpl<CustomerFunctio
@Autowired
private CustomerFunctionRedis customerFunctionRedis;
@Autowired
private FunctionDao functionDao;
@Autowired
private OperCrmFeignClient operCrmFeignClient;
@Override
public PageData<CustomerFunctionDTO> page(Map<String, Object> params) {
@ -101,4 +119,95 @@ public class CustomerFunctionServiceImpl extends BaseServiceImpl<CustomerFunctio
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 运营端-获取客户功能(已勾选未勾选)详情列表
**/
@Override
public CustomerFunctionListResultDTO customerFunctionList(CustomerFunctionListFormDTO formDTO) {
CustomerFunctionListResultDTO resultDTO = new CustomerFunctionListResultDTO();
//1:调用oper-crm服务。查询客户基本信息
Result<CustomerDTO> 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<FunctionDTO> funList = functionDao.selectShopFunctionList(NumConstant.ONE);
if(null==funList||funList.size()<NumConstant.ONE){
return resultDTO;
}
//3:查询当前客户已拥有的功能
List<CustomerFunctionDTO> csList = baseDao.selectCustomerFunctionList(formDTO.getCustomerId());
//4:封装数据,客户已拥有但已下架的功能不展示
List<DefaultFunctionListResultDTO> defaultFunctionList = new ArrayList<>();
List<CustomizedFunctionListResultDTO> 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<CustomerFunctionEntity> 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);
}
}

32
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDao.xml

@ -3,17 +3,27 @@
<mapper namespace="com.epmet.dao.CustomerFunctionDao">
<resultMap type="com.epmet.entity.CustomerFunctionEntity" id="customerFunctionMap">
<result property="id" column="ID"/>
<result property="functionId" column="FUNCTION_ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectCustomerFunctionList" resultType="com.epmet.dto.CustomerFunctionDTO">
SELECT
id,
function_id,
customer_id
FROM
customer_function
WHERE
del_flag = '0'
AND customer_id = #{customerId}
</select>
<update id="updateByCustomerId" parameterType="string">
UPDATE
customer_function
SET
del_flag = '1'
WHERE
del_flag = '0'
AND
customer_id = #{customerId}
</update>
</mapper>

10
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'
</select>
<select id="selectShopFunctionList" resultType="com.epmet.dto.FunctionDTO">
SELECT
*
FROM
function
WHERE
del_flag = '0'
AND
shopping_status = #{shoppingStatus}
</select>
</mapper>

Loading…
Cancel
Save