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