|
@@ -7,18 +7,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fire.admin.dto.FireProductInfoDto;
|
|
|
import com.fire.admin.mapper.FireProductMapper;
|
|
|
+import com.fire.admin.service.CustomerProductInfoService;
|
|
|
import com.fire.admin.service.FireProductService;
|
|
|
import com.fire.admin.util.EnumUtils;
|
|
|
import com.fire.admin.util.SecurityUtil;
|
|
|
import com.fire.admin.vo.FireProductInfoVo;
|
|
|
import com.fire.common.exception.BaseException;
|
|
|
+import com.fire.dto.CustomerProduct;
|
|
|
import com.fire.dto.FireProductInfo;
|
|
|
import com.fire.dto.enums.Status;
|
|
|
import com.fire.utils.date.DateUtils;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author: liuliu
|
|
@@ -31,6 +37,9 @@ import java.util.List;
|
|
|
public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireProductInfo> implements FireProductService {
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CustomerProductInfoService customerProductInfoService;
|
|
|
+
|
|
|
/***
|
|
|
* @Description: TODO 分页获取产品对象
|
|
|
* @Param: [page, fireProductInfoDto]
|
|
@@ -53,18 +62,18 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
|
|
|
@Override
|
|
|
public void insertProductInfo(FireProductInfoDto fireProductInfoDto) {
|
|
|
String packageId = fireProductInfoDto.getPackageId();
|
|
|
- if(!fireProductInfoDto.getAreaName().equals("全国")){
|
|
|
- packageId=packageId.concat("_").concat(EnumUtils.convert(fireProductInfoDto.getAreaName()));
|
|
|
+ if (!fireProductInfoDto.getAreaName().equals("全国")) {
|
|
|
+ packageId = packageId.concat("_").concat(EnumUtils.convert(fireProductInfoDto.getAreaName()));
|
|
|
}
|
|
|
|
|
|
LambdaQueryWrapper<FireProductInfo> query = new LambdaQueryWrapper<FireProductInfo>();
|
|
|
- query.select(FireProductInfo::getPackageId,FireProductInfo::getProductId)
|
|
|
- .eq(FireProductInfo::getPackageId,packageId).
|
|
|
- eq(FireProductInfo::getIsDelete,0);
|
|
|
+ query.select(FireProductInfo::getPackageId, FireProductInfo::getProductId)
|
|
|
+ .eq(FireProductInfo::getPackageId, packageId).
|
|
|
+ eq(FireProductInfo::getIsDelete, 0);
|
|
|
|
|
|
List<FireProductInfo> productInfos = baseMapper.selectList(query);
|
|
|
|
|
|
- if(ObjectUtil.hasEmpty(productInfos)){
|
|
|
+ if (ObjectUtil.hasEmpty(productInfos)) {
|
|
|
FireProductInfo productInfo = FireProductInfo.builder().packageId(packageId)
|
|
|
.productName(fireProductInfoDto.getProductName())
|
|
|
.productType(fireProductInfoDto.getProductType())
|
|
@@ -76,13 +85,13 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
|
|
|
.operator(fireProductInfoDto.getOperator()).build();
|
|
|
|
|
|
log.info("新增产品,产品适用于客户和通道。产品信息为:【{}】", productInfo.toString());
|
|
|
- int count =baseMapper.insert(productInfo);
|
|
|
- if (count>0) {
|
|
|
+ int count = baseMapper.insert(productInfo);
|
|
|
+ if (count > 0) {
|
|
|
// TODO 发送消息到 产品的 TOPIC
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
log.info("-------- 产品信息已经存在,添加产品失败 -----------------");
|
|
|
- throw new BaseException(Status.RECORDING_EXISTS.status(),Status.RECORDING_EXISTS.message());
|
|
|
+ throw new BaseException(Status.RECORDING_EXISTS.status(), Status.RECORDING_EXISTS.message());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -126,10 +135,22 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
|
|
|
public boolean updateProductInfo(FireProductInfoDto fireProductInfoDto) {
|
|
|
|
|
|
String packageId = fireProductInfoDto.getPackageId();
|
|
|
- if(!fireProductInfoDto.getAreaName().equals("全国")){
|
|
|
- packageId=packageId.concat("_").concat(EnumUtils.convert(fireProductInfoDto.getAreaName()));
|
|
|
+ if (packageId.contains("_")) {
|
|
|
+ packageId = packageId.substring(0, fireProductInfoDto.getPackageId().indexOf("_"));
|
|
|
+ }
|
|
|
+ if (!fireProductInfoDto.getAreaName().equals("全国")) {
|
|
|
+ packageId = packageId.concat("_").concat(EnumUtils.convert(fireProductInfoDto.getAreaName()));
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<FireProductInfo> query = new LambdaQueryWrapper<FireProductInfo>();
|
|
|
+ query.select(FireProductInfo::getPackageId, FireProductInfo::getProductId)
|
|
|
+ .eq(FireProductInfo::getPackageId, packageId)
|
|
|
+ .eq(FireProductInfo::getIsDelete, 0);
|
|
|
+ FireProductInfo info = baseMapper.selectOne(query);
|
|
|
+ if (!ObjectUtil.hasEmpty(info)) {
|
|
|
+ log.info("-------- 产品已经存在,修改产品失败 -----------------");
|
|
|
+ throw new BaseException(Status.RECORDING_EXISTS.status(), Status.RECORDING_EXISTS.message());
|
|
|
}
|
|
|
-
|
|
|
FireProductInfo productInfo = FireProductInfo.builder()
|
|
|
.productId(fireProductInfoDto.getProductId())
|
|
|
.packageId(packageId)
|
|
@@ -144,8 +165,8 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
|
|
|
.operator(fireProductInfoDto.getOperator()).build();
|
|
|
|
|
|
log.info("产品修改的对象为:【{}】", productInfo.toString());
|
|
|
- boolean flag=this.saveOrUpdate(productInfo);
|
|
|
- if (flag ) {
|
|
|
+ boolean flag = this.saveOrUpdate(productInfo);
|
|
|
+ if (flag) {
|
|
|
// TODO 发送消息到topic
|
|
|
}
|
|
|
return flag;
|
|
@@ -153,15 +174,67 @@ public class FireProductServiceImpl extends ServiceImpl<FireProductMapper, FireP
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * @Description: TODO 获取所有的产品,用于客户和通道添加
|
|
|
+ * @Description: TODO 获取所有的产品,用于客户和通道添加
|
|
|
* @Param:
|
|
|
* @return:
|
|
|
* @Author: liuliu
|
|
|
* @Date: 2021/5/28 17:49
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<FireProductInfoVo> getProductAll(Integer operator) {
|
|
|
- return baseMapper.selectProductAll(operator);
|
|
|
+ public List<FireProductInfoVo> getProductAll(Integer operator, Integer customerId) {
|
|
|
+
|
|
|
+ // TODO 构建返回的对象
|
|
|
+ List<FireProductInfoVo> ProductVolist = Lists.newArrayList();
|
|
|
+ // TODO 首先获取所有的产品
|
|
|
+ List<FireProductInfoVo> fireProductInfoVos = baseMapper.selectProductAll(operator);
|
|
|
+ log.info("所有产品的个数:【{}】", fireProductInfoVos.size());
|
|
|
+ List<String> packageList = customerProductInfoService.getCuProByCustomerId(customerId, this.getOpertor(operator));
|
|
|
+ log.info("客户已经有的产品个数:【{}】", packageList.size());
|
|
|
+ if (!ObjectUtil.hasEmpty(packageList)) {
|
|
|
+ List<FireProductInfoVo> list = fireProductInfoVos.stream().filter((FireProductInfoVo pro) -> packageList.contains(pro.getPackageId()) == false).collect(Collectors.toList());
|
|
|
+ ProductVolist.addAll(list);
|
|
|
+ } else {
|
|
|
+ ProductVolist.addAll(fireProductInfoVos);
|
|
|
+ }
|
|
|
+ log.info("客户最终返回的产品个数为:【{}】", ProductVolist.size());
|
|
|
+ return ProductVolist;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Description: TODO 根据运营商编号获取构建 packageId 前缀
|
|
|
+ * @Param: [operator]
|
|
|
+ * @return: java.lang.String
|
|
|
+ * @Author: liuliu
|
|
|
+ * @Date: 2021/6/1 15:57
|
|
|
+ */
|
|
|
+ public String getOpertor(int operator) {
|
|
|
+ switch (operator) {
|
|
|
+ case 1:
|
|
|
+ return "YDHF";
|
|
|
+ case 2:
|
|
|
+ return "DXHF";
|
|
|
+ case 3:
|
|
|
+ return "LTHF";
|
|
|
+ default:
|
|
|
+ throw new BaseException(Status.PACKAGEERROR.status(), Status.PACKAGEERROR.message());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Description: TODO 逻辑删除产品
|
|
|
+ * @Param: [productId]
|
|
|
+ * @return: void
|
|
|
+ * @Author: liuliu
|
|
|
+ * @Date: 2021/5/31 11:13
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteProductByProductId(Integer productId) {
|
|
|
+ FireProductInfo productInfo = FireProductInfo.builder().productId(productId)
|
|
|
+ .isDelete(1).build();
|
|
|
+ baseMapper.updateById(productInfo);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|