Browse Source

功能提交,客户产品相关 客户接入,文件上传

杨六六 4 năm trước cách đây
mục cha
commit
e037a7ba02
34 tập tin đã thay đổi với 584 bổ sung108 xóa
  1. 2 1
      common/fire-dto/src/main/java/com/fire/dto/CustomerInfo.java
  2. 7 1
      common/fire-dto/src/main/java/com/fire/dto/CustomerProduct.java
  3. 1 2
      common/fire-dto/src/main/java/com/fire/dto/FireProductInfo.java
  4. 1 1
      common/fire-dto/src/main/java/com/fire/dto/FlowAppInfo.java
  5. 1 0
      common/fire-dto/src/main/java/com/fire/dto/enums/Status.java
  6. 4 1
      modules/admin/pom.xml
  7. 25 0
      modules/admin/src/main/java/com/fire/admin/dto/ConstantProperties.java
  8. 7 4
      modules/admin/src/main/java/com/fire/admin/dto/CustomerDto.java
  9. 3 1
      modules/admin/src/main/java/com/fire/admin/dto/CustomerProductDto.java
  10. 4 0
      modules/admin/src/main/java/com/fire/admin/dto/FireProductInfoDto.java
  11. 1 1
      modules/admin/src/main/java/com/fire/admin/dto/FlowAppInfoDto.java
  12. 17 1
      modules/admin/src/main/java/com/fire/admin/rest/CustomerController.java
  13. 28 3
      modules/admin/src/main/java/com/fire/admin/rest/CustomerProductInfoController.java
  14. 16 4
      modules/admin/src/main/java/com/fire/admin/rest/FireProductController.java
  15. 9 5
      modules/admin/src/main/java/com/fire/admin/rest/FlowAppInfoController.java
  16. 20 9
      modules/admin/src/main/java/com/fire/admin/rest/TestController.java
  17. 40 0
      modules/admin/src/main/java/com/fire/admin/service/CustomerProductInfoService.java
  18. 20 0
      modules/admin/src/main/java/com/fire/admin/service/CustomerService.java
  19. 11 1
      modules/admin/src/main/java/com/fire/admin/service/FireProductService.java
  20. 82 1
      modules/admin/src/main/java/com/fire/admin/service/impl/CustomerProductInfoServiceImpl.java
  21. 48 5
      modules/admin/src/main/java/com/fire/admin/service/impl/CustomerServiceImpl.java
  22. 91 18
      modules/admin/src/main/java/com/fire/admin/service/impl/FireProductServiceImpl.java
  23. 1 1
      modules/admin/src/main/java/com/fire/admin/service/impl/FlowAppInfoServiceImpl.java
  24. 92 0
      modules/admin/src/main/java/com/fire/admin/util/AliyunOSSUtil.java
  25. 3 3
      modules/admin/src/main/java/com/fire/admin/vo/CustomerInfoVo.java
  26. 9 1
      modules/admin/src/main/java/com/fire/admin/vo/CustomerProductInfoVo.java
  27. 2 2
      modules/admin/src/main/java/com/fire/admin/vo/FireProductInfoVo.java
  28. 1 2
      modules/admin/src/main/java/com/fire/admin/vo/FlowAppInfoVo.java
  29. 18 1
      modules/admin/src/main/resources/bootstrap.yml
  30. 4 34
      modules/admin/src/main/resources/mapper/CustomerMapper.xml
  31. 7 3
      modules/admin/src/main/resources/mapper/CustomerProductInfoMapper.xml
  32. 1 0
      modules/admin/src/main/resources/mapper/FireProductMapper.xml
  33. 2 1
      modules/admin/src/main/resources/mapper/FlowAppInfoMapper.xml
  34. 6 1
      pom.xml

+ 2 - 1
common/fire-dto/src/main/java/com/fire/dto/CustomerInfo.java

@@ -46,7 +46,7 @@ public class CustomerInfo {
     @ApiModelProperty(value = "联系人地址")
     private String address;
 
-    @ApiModelProperty(value = "状态, 1:有效2:无效 3:暂停")
+    @ApiModelProperty(value = "状态,1:正常 2:暂停")
     private Integer status;
 
     @ApiModelProperty(value = "帐号余额")
@@ -61,6 +61,7 @@ public class CustomerInfo {
     @ApiModelProperty(value = "是否第一次登录,1:不是0:是")
     private Integer isFirstLogin;
 
+
     @ApiModelProperty(value = "删除标识,1:已删除0:未删除")
     private Integer isDeleted;
 

+ 7 - 1
common/fire-dto/src/main/java/com/fire/dto/CustomerProduct.java

@@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 
@@ -18,6 +21,9 @@ import java.math.BigDecimal;
 @Data
 @ApiModel(value = "客户产品表实体")
 @TableName("customer_product")
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class CustomerProduct {
 
     @ApiModelProperty(value = "主键")
@@ -43,7 +49,7 @@ public class CustomerProduct {
     private Integer facePrice;
 
     @ApiModelProperty(value = "是否有效 (1:有效 0:无效)")
-    private Integer isValid;
+    private Integer isEffective;
 
     @ApiModelProperty(value = "客户结算价格折扣")
     private BigDecimal disCount;

+ 1 - 2
common/fire-dto/src/main/java/com/fire/dto/FireProductInfo.java

@@ -8,9 +8,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 import lombok.experimental.Accessors;
-
 import java.math.BigDecimal;
-import java.math.BigInteger;
+
 
 
 /**

+ 1 - 1
common/fire-dto/src/main/java/com/fire/dto/FlowAppInfo.java

@@ -41,7 +41,7 @@ public class FlowAppInfo {
     @ApiModelProperty(value = "结束日期")
     private String endDate;
 
-    @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
+    @ApiModelProperty(value = "0-无效 1-有效")
     private Integer status;
 
     @ApiModelProperty(value = "APP名称")

+ 1 - 0
common/fire-dto/src/main/java/com/fire/dto/enums/Status.java

@@ -32,6 +32,7 @@ public enum Status {
     PRODUCT_MAINTAIN("205", "产品维护"),
     BALANCE_NOT_ENOUGH("301", "可用余额不足"),
     RECORDING_EXISTS("410", "记录已经存在"),
+    PACKAGEERROR("411","产品查询运营商参数错误,1 : 移动  2 : 电信  3 : 联通"),
     PARAM_ERROR("306", "参数不合法");
 
     private final String status;

+ 4 - 1
modules/admin/pom.xml

@@ -67,7 +67,10 @@
             <artifactId>activation</artifactId>
         </dependency>
 
-
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 25 - 0
modules/admin/src/main/java/com/fire/admin/dto/ConstantProperties.java

@@ -0,0 +1,25 @@
+package com.fire.admin.dto;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author: liuliu
+ * @ClassName: ConstantProperties
+ * @Description: TODO
+ * @date: 2021-06-02 11:56
+ */
+@Component
+@Data
+@ConfigurationProperties(prefix = "oos")
+public class ConstantProperties {
+
+    private String endpoint;
+    private String keyid;
+    private String keysecret;
+    private String bucketname;
+    private String filehost;
+    private String finalUrl;
+
+}

+ 7 - 4
modules/admin/src/main/java/com/fire/admin/dto/CustomerDto.java

@@ -40,21 +40,22 @@ public class CustomerDto {
     @ApiModelProperty(value = "联系人地址")
     private String address;
 
-    @ApiModelProperty(value = "状态, 1:有效2:无效 3:暂停")
+    @ApiModelProperty(value = "状态,1:正常 2:暂停")
     private Integer status;
 
     @ApiModelProperty(value = "帐号余额")
-    private BigInteger balance;
+    private Long balance;
 
     @ApiModelProperty(value = "授信额度")
-    private BigInteger  creditAmount;
+    private Long  creditAmount;
 
     @ApiModelProperty(value = "当前费用")
-    private BigInteger currentAmount;
+    private Long currentAmount;
 
     @ApiModelProperty(value = "是否第一次登录,1:不是0:是")
     private Integer isFirstLogin;
 
+
     @ApiModelProperty(value = "删除标识,1:已删除0:未删除")
     private Integer isDeleted;
 
@@ -79,4 +80,6 @@ public class CustomerDto {
     @ApiModelProperty(value = "价格校验")
     private Integer priceCheck;
 
+
+
 }

+ 3 - 1
modules/admin/src/main/java/com/fire/admin/dto/CustomerProductDto.java

@@ -16,6 +16,8 @@ import java.math.BigInteger;
 @Builder
 public class CustomerProductDto {
 
+ private Integer customerProductId;
+
    @ApiModelProperty(value = "客户ID")
     private Long customerId;
 
@@ -53,7 +55,7 @@ public class CustomerProductDto {
     private Integer operator;
 
     @ApiModelProperty(value = "是否有效 (1:有效 0:无效)")
-    private Integer isValid;
+    private Integer isEffective;
 
 
 

+ 4 - 0
modules/admin/src/main/java/com/fire/admin/dto/FireProductInfoDto.java

@@ -3,8 +3,10 @@ package com.fire.admin.dto;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -17,6 +19,8 @@ import java.math.BigInteger;
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
 public class FireProductInfoDto {
 
 

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/dto/FlowAppInfoDto.java

@@ -21,7 +21,7 @@ public class FlowAppInfoDto {
     @ApiModelProperty(value = "应用Key")
     private String appKey;
 
-    @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
+    @ApiModelProperty(value = "0-无效 1-有效")
     private Integer status;
 
     @ApiModelProperty(value = "APP名称")

+ 17 - 1
modules/admin/src/main/java/com/fire/admin/rest/CustomerController.java

@@ -36,9 +36,25 @@ public class CustomerController {
 
     @ApiOperation(value = "客户新增")
     @PostMapping("/add")
-    public BaseResponse makeAddCustomerInfo(@RequestBody CustomerDto customerDto){
+    public BaseResponse makeAddCustomerInfo(@RequestBody CustomerDto customerDto) {
         customerService.insertCustomer(customerDto);
         return new BaseResponse();
     }
 
+/*    @ApiOperation("客户逻辑删除")
+    @PutMapping("/del/{customerId}")
+    public BaseResponse delCustomerInfo(@PathVariable Long customerId) {
+        customerService.deleteCustomerInfo(customerId);
+        return new BaseResponse();
+    }*/
+
+
+    @ApiOperation("客户修改(包含逻辑删除)")
+    @PutMapping("/update")
+    public BaseResponse updCustomer(@RequestBody CustomerDto customerDto) {
+        customerService.updateCustomerInfo(customerDto);
+        return new BaseResponse();
+    }
+
+
 }

+ 28 - 3
modules/admin/src/main/java/com/fire/admin/rest/CustomerProductInfoController.java

@@ -1,13 +1,15 @@
 package com.fire.admin.rest;
 
+import com.fire.admin.dto.CustomerProductDto;
 import com.fire.admin.service.CustomerProductInfoService;
+import com.fire.dto.response.BaseResponse;
 import com.fire.dto.response.BaseRestResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author: liuliu
@@ -34,4 +36,27 @@ public class CustomerProductInfoController {
     public BaseRestResponse getCustomerProductInfo(Integer customerId, Integer type){
         return new BaseRestResponse<>(customerProductInfoService.getCustomerProductByCustomerId(customerId,type));
     }
+
+
+    @ApiOperation(value = "客户产品物理删除")
+    @DeleteMapping("/{customerProductId}")
+    public BaseResponse delCustomerProduct(@PathVariable("customerProductId") Integer customerProductId){
+        customerProductInfoService.deleteCustomerProduct(customerProductId);
+        return new BaseResponse();
+    }
+
+    @ApiOperation(value = "客户产品置无效")
+    @PutMapping("/{customerProductId}")
+    public BaseResponse makeValidCustomerProduct(@PathVariable("customerProductId" ) Integer customerProductId){
+        customerProductInfoService.validCustomerProduct(customerProductId);
+        return new BaseResponse();
+    }
+
+
+    @ApiOperation(value = "客户产品新增或修改")
+    @PostMapping("/add")
+    public  BaseRestResponse upAddCustomerProduct(@RequestBody List<CustomerProductDto> list){
+        customerProductInfoService.saveOrUpdate(list);
+        return new BaseRestResponse();
+    }
 }

+ 16 - 4
modules/admin/src/main/java/com/fire/admin/rest/FireProductController.java

@@ -78,13 +78,21 @@ public class FireProductController {
      * @Author: liuliu
      * @Date: 2021/5/26 11:10
      */
-    @ApiOperation(value = "修改产品信息(和逻辑删除)")
+    @ApiOperation(value = "修改产品信息")
     @PutMapping
     public BaseRestResponse updateProductInfo(@RequestBody FireProductInfoDto fireProductInfoDto) {
         return new BaseRestResponse<>(fireProductService.updateProductInfo(fireProductInfoDto));
     }
 
 
+
+    @ApiOperation(value = "删除产品")
+    @PutMapping("/del/{productId}")
+    public BaseResponse delProductInfo(@PathVariable Integer productId){
+        fireProductService.deleteProductByProductId(productId);
+        return new BaseResponse();
+    }
+
     /**
      * @Description:  TODO 获取所有的产品,用于客户和通道添加
      * @Param:
@@ -93,9 +101,13 @@ public class FireProductController {
      * @Date: 2021/5/28 17:51
      */
     @ApiOperation(value = "获取所有产品,用于通道和客户产品的添加")
-    @GetMapping("/all/{operator}")
-    public BaseRestResponse makeProductAll( @PathVariable("operator") Integer operator ) {
-        return new BaseRestResponse<>(fireProductService.getProductAll(operator));
+    @GetMapping("/all/{operator}/{customerId}")
+    public BaseRestResponse makeProductAll( @PathVariable("operator") Integer operator,@PathVariable("customerId") Integer customerId ) {
+        return new BaseRestResponse<>(fireProductService.getProductAll(operator,customerId));
     }
 
+
+
+
+
 }

+ 9 - 5
modules/admin/src/main/java/com/fire/admin/rest/FlowAppInfoController.java

@@ -1,14 +1,14 @@
 package com.fire.admin.rest;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fire.admin.dto.FlowAppInfoDto;
 import com.fire.admin.service.FlowAppInfoService;
+import com.fire.dto.response.BaseResponse;
 import com.fire.dto.response.BaseRestResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author: liuliu
@@ -35,8 +35,12 @@ public class FlowAppInfoController {
     }
 
 
-
-
+    @ApiOperation("修改客户接入信息")
+    @PutMapping
+    public BaseResponse updFlowAppInfo(@RequestBody FlowAppInfoDto flowAppInfoDto) {
+        flowAppInfoService.updateFlowAppInfo(flowAppInfoDto);
+        return new BaseResponse();
+    }
 
 
 }

+ 20 - 9
modules/admin/src/main/java/com/fire/admin/rest/TestController.java

@@ -3,13 +3,17 @@ package com.fire.admin.rest;
 import cn.hutool.core.util.RandomUtil;
 import com.fire.admin.dto.CustomerProductDto;
 import com.fire.admin.mapper.CustomerProductInfoMapper;
+import com.fire.admin.util.AliyunOSSUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -25,20 +29,27 @@ public class TestController {
 
 
     @Autowired
-   private CustomerProductInfoMapper customerProductMapper;
-
+    private CustomerProductInfoMapper customerProductMapper;
 
 
+    @Autowired
+    private AliyunOSSUtil aliyunOSSUtil;
 
+    @CrossOrigin
+    @ApiOperation("文件上传测试")
+    @PostMapping("/1")
+    public String testUpload(MultipartFile file) {
+        return aliyunOSSUtil.upload2(file);
+    }
 
 
 
     public static void main(String[] args) {
-        int i = RandomUtil.randomInt();
-        String string = RandomUtil.randomString(32);
 
-        System.out.println("i = " + i);
-        System.out.println("string = " + string);
+
     }
 
 }
+
+
+

+ 40 - 0
modules/admin/src/main/java/com/fire/admin/service/CustomerProductInfoService.java

@@ -1,6 +1,7 @@
 package com.fire.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fire.admin.dto.CustomerProductDto;
 import com.fire.admin.vo.CustomerProductInfoVo;
 import com.fire.dto.CustomerProduct;
 
@@ -24,4 +25,43 @@ public interface CustomerProductInfoService extends IService<CustomerProduct> {
     */
     List<CustomerProductInfoVo> getCustomerProductByCustomerId(Integer customerId, Integer type);
 
+
+    /**
+    * @Description:  TODO  删除客户产品
+    * @Param:  客户产品主键
+    * @return: void
+    * @Author: liuliu
+    * @Date: 2021/6/1 11:02
+    */
+    void deleteCustomerProduct(Integer customerProductId);
+
+    /**
+    * @Description:  TODO  把客户单个产品置无效
+    * @Param:
+    * @return:
+    * @Author: liuliu
+    * @Date: 2021/6/1 11:46
+    */
+    void validCustomerProduct(Integer customerProductId);
+
+    
+    /**
+    * @Description:  TODO  批量新增或者修改客户产品
+    * @Param: [productDtoList]
+    * @return: boolean
+    * @Author: liuliu
+    * @Date: 2021/6/1 12:24
+    */
+    void saveOrUpdate(List<CustomerProductDto> productDtoList);
+
+
+    /**
+    * @Description:  TODO  获取当前客户的所有产品,用于做过滤条件
+    * @Param: [customerId]
+    * @return: java.util.List<com.fire.dto.CustomerProduct>
+    * @Author: liuliu
+    * @Date: 2021/6/1 14:57
+    */
+    List<String> getCuProByCustomerId(Integer customerId,String packageId);
+
 }

+ 20 - 0
modules/admin/src/main/java/com/fire/admin/service/CustomerService.java

@@ -34,4 +34,24 @@ public interface CustomerService extends IService<CustomerInfo> {
     void  insertCustomer(CustomerDto customerDto);
     
 
+
+    /**
+    * @Description:  TODO 逻辑删除客户信息
+    * @Param:
+    * @return:
+    * @Author: liuliu
+    * @Date: 2021/5/31 14:09
+    */
+    void deleteCustomerInfo(Long customerId);
+
+
+    /**
+    * @Description:  TODO 客户修改
+    * @Param: [customerDto]
+    * @return: void
+    * @Author: liuliu
+    * @Date: 2021/5/31 18:03
+    */
+    void updateCustomerInfo(CustomerDto customerDto);
+    
 }

+ 11 - 1
modules/admin/src/main/java/com/fire/admin/service/FireProductService.java

@@ -63,5 +63,15 @@ public interface FireProductService extends IService<FireProductInfo> {
     * @Author: liuliu
     * @Date: 2021/5/28 17:48
     */
-    List<FireProductInfoVo> getProductAll(Integer operator);
+    List<FireProductInfoVo> getProductAll(Integer operator,Integer customerId);
+    
+    /**
+    * @Description:  TODO 逻辑删除产品
+    * @Param: [productId]
+    * @return: void
+    * @Author: liuliu
+    * @Date: 2021/5/31 11:29
+    */
+    void deleteProductByProductId(Integer productId);
+    
 }

+ 82 - 1
modules/admin/src/main/java/com/fire/admin/service/impl/CustomerProductInfoServiceImpl.java

@@ -1,15 +1,19 @@
 package com.fire.admin.service.impl;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fire.admin.dto.CustomerProductDto;
 import com.fire.admin.mapper.CustomerProductInfoMapper;
 import com.fire.admin.service.CustomerProductInfoService;
 import com.fire.admin.vo.CustomerProductInfoVo;
 import com.fire.dto.CustomerProduct;
+import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author: liuliu
@@ -32,4 +36,81 @@ public class CustomerProductInfoServiceImpl extends ServiceImpl<CustomerProductI
     public List<CustomerProductInfoVo> getCustomerProductByCustomerId(Integer customerId, Integer type) {
         return baseMapper.queryCustomerProductByCustomerId(customerId, type);
     }
+
+    /**
+     * @Description: TODO 客户产品删除
+     * @Param: 客户产品id
+     * @return:
+     * @Author: liuliu
+     * @Date: 2021/6/1 11:02
+     */
+    @Override
+    public void deleteCustomerProduct(Integer customerProductId) {
+        int i = baseMapper.deleteById(customerProductId);
+        if (i > 0) {
+            log.info("-------------------------------- 客户产品删除成功,客户产品编号为:【{}】 ----------------------------------", customerProductId);
+            // TODO 发送消息到客户产品topic
+        }
+
+    }
+
+    /**
+    * @Description:  TODO 把客户单个产品置无效
+    * @Param: [customerProductId]
+    * @return: void
+    * @Author: liuliu
+    * @Date: 2021/6/1 11:47
+    */
+    @Override
+    public void validCustomerProduct(Integer customerProductId) {
+        CustomerProduct product = CustomerProduct.builder().customerProductId(customerProductId)
+                .isEffective(0).build();
+        int count = baseMapper.updateById(product);
+        if (count> 0) {
+            log.info("-------------------------------- 客户产品置无效成功,客户产品编号为:【{}】 ----------------------------------", customerProductId);
+            // TODO 发送消息到客户产品topic
+        }
+    }
+
+    /**
+    * @Description:  TODO  批量修改和删除客户产品对象
+    * @Param: [productDtoList]
+    * @return: boolean
+    * @Author: liuliu
+    * @Date: 2021/6/1 12:25
+    */
+    @Override
+    public void saveOrUpdate(List<CustomerProductDto> productDtoList) {
+
+        List<CustomerProduct> productList = Lists.newArrayList();
+
+        productDtoList.forEach(dto->{
+            CustomerProduct product = CustomerProduct.builder().customerProductId(dto.getCustomerProductId())
+                    .customerId(dto.getCustomerId())
+                    .packageId(dto.getPackageId())
+                    .type(dto.getType())
+                    .price(Integer.parseInt(String.valueOf(new BigDecimal(dto.getPrice()).multiply(new BigDecimal(10000)))))
+                    .facePrice(Integer.parseInt(String.valueOf(new BigDecimal(dto.getFacePrice()).multiply(new BigDecimal(10000)))))
+                    .isEffective(dto.getIsEffective())
+                    .disCount(new BigDecimal(dto.getPrice()).divide(new BigDecimal(dto.getFacePrice()))).build();
+            productList.add(product);
+        });
+        boolean flag = this.saveOrUpdateBatch(productList);
+        if(flag){
+            //TODO 发送消息到topic
+
+        }
+
+    }
+
+    @Override
+    public List<String> getCuProByCustomerId(Integer customerId,String packageId) {
+
+        LambdaQueryWrapper<CustomerProduct> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(CustomerProduct::getCustomerProductId,CustomerProduct::getPackageId)
+                .eq(CustomerProduct::getCustomerId,customerId)
+                .like(CustomerProduct::getPackageId,packageId);
+        List<CustomerProduct> productList = baseMapper.selectList(queryWrapper);
+        return productList.stream().map(CustomerProduct::getPackageId).collect(Collectors.toList());
+    }
 }

+ 48 - 5
modules/admin/src/main/java/com/fire/admin/service/impl/CustomerServiceImpl.java

@@ -16,6 +16,7 @@ import com.fire.utils.date.DateUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import redis.clients.jedis.JedisCluster;
 
 import javax.annotation.Resource;
@@ -59,12 +60,13 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
      * @Author: liuliu
      * @Date: 2021/5/21 15:14
      */
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void insertCustomer(CustomerDto customerDto) {
         // TODO   新增客户
         CustomerInfo customerInfo = CustomerInfo.builder().partnerId(customerDto.getPartnerId())
-                .customerName(customerDto.getCustomerName())
-                .shorterName(customerDto.getShorterName())
+                .customerName(customerDto.getCustomerName().trim())
+                .shorterName(customerDto.getShorterName().trim())
                 .linkmanName(customerDto.getLinkmanName())
                 .linkmanMobile(customerDto.getLinkmanMobile())
                 .linkmanEmail(customerDto.getLinkmanEmail())
@@ -72,8 +74,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
                 .status(1)
                 .isFirstLogin(0)
                 .isDeleted(0)
-                // .creator(SecurityUtil.getUser().getUsername())
-                .creator("唐僧")
+                .creator(SecurityUtil.getUser().getUsername())
                 .createTime(DateUtils.strformatDatetime(LocalDateTime.now()))
                 .partnerCommission(customerDto.getPartnerCommission())
                 .userId(customerDto.getUserId())
@@ -85,7 +86,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
                 .appKey(RandomUtil.randomString(32))
                 .startDate(DateUtils.strformatDatetime(LocalDateTime.now()))
                 .status(1)
-                .appName(customerInfo.getCustomerName().concat("话费包接入"))
+                .appName(customerInfo.getCustomerName().concat("接入"))
                 .totalCount(1)
                 .time(7200).build();
         int count2 = flowAppMapper.insert(appInfo);
@@ -98,5 +99,47 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, CustomerInf
         jedisCluster.hset(CUSTOMER_AMOUNT.key(), CUSTOMER_AMOUNT.key().concat(customerInfo.getCustomerId().toString()), "0");
     }
 
+    /**
+     * @Description: TODO  逻辑删除客户信息
+     * @Param: [customerId]
+     * @return: void
+     * @Author: liuliu
+     * @Date: 2021/5/31 14:11
+     */
+    @Override
+    public void deleteCustomerInfo(Long customerId) {
+        CustomerInfo info = CustomerInfo.builder().customerId(customerId)
+                .isDeleted(1).build();
+        baseMapper.updateById(info);
+    }
+
+    @Override
+    public void updateCustomerInfo(CustomerDto customerDto) {
+        CustomerInfo customerInfo = CustomerInfo.builder().customerId(customerDto.getCustomerId())
+                .partnerId(customerDto.getPartnerId())
+                .customerName(customerDto.getCustomerName())
+                .shorterName(customerDto.getShorterName())
+                .linkmanName(customerDto.getLinkmanName())
+                .linkmanMobile(customerDto.getLinkmanMobile())
+                .linkmanEmail(customerDto.getLinkmanEmail())
+                .address(customerDto.getAddress())
+                .status(customerDto.getStatus())
+                .balance(customerDto.getBalance())
+                .creditAmount(customerDto.getCreditAmount())
+                .currentAmount(customerDto.getCurrentAmount())
+                .isFirstLogin(customerDto.getIsFirstLogin())
+                .isDeleted(customerDto.getIsDeleted())
+                .updator(SecurityUtil.getUser().getUsername())
+                .updateTime(DateUtils.strformatDatetime(LocalDateTime.now()))
+                .partnerCommission(customerDto.getPartnerCommission())
+                .priceCheck(customerDto.getPriceCheck()).build();
+
+        int count = baseMapper.updateById(customerInfo);
+        if(count>0){
+            log.info("------------------------- 客户修改成功,发送消息到相应的topic --------------------------------");
+        }
+
+    }
+
 
 }

+ 91 - 18
modules/admin/src/main/java/com/fire/admin/service/impl/FireProductServiceImpl.java

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

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/service/impl/FlowAppInfoServiceImpl.java

@@ -55,7 +55,7 @@ public class FlowAppInfoServiceImpl extends ServiceImpl<FlowAppMapper, FlowAppIn
                 .totalCount(flowAppInfoDto.getTotalCount())
                 .time(flowAppInfoDto.getTime())
                 .channelId(flowAppInfoDto.getChannelId()).build();
-        int count = baseMapper.insert(appInfo);
+        int count = baseMapper.updateById(appInfo);
         if(count>0){
             log.info("客户接入信息修改,修改信息为:【{}】",appInfo.toString());
             // TODO 发送消息到 客户接入 topic

+ 92 - 0
modules/admin/src/main/java/com/fire/admin/util/AliyunOSSUtil.java

@@ -0,0 +1,92 @@
+package com.fire.admin.util;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.RandomUtil;
+import com.aliyun.oss.*;
+import com.aliyun.oss.model.CannedAccessControlList;
+import com.aliyun.oss.model.CreateBucketRequest;
+import com.aliyun.oss.model.PutObjectRequest;
+import com.aliyun.oss.model.PutObjectResult;
+import com.fire.admin.dto.ConstantProperties;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.*;
+
+
+/**
+ * @author: liuliu
+ * @ClassName: AliyunOSSUtil
+ * @Description: TODO 阿里云 OSSUtil
+ * @date: 2021-06-02 11:55
+ */
+@Service
+@Slf4j
+public class AliyunOSSUtil {
+
+    @Resource
+    private ConstantProperties constantProperties;
+
+
+
+    /**
+     * @Description: TODO  阿里云oss 文件上传
+     * @Param: [file]
+     * @return: java.lang.String
+     * @Author: liuliu
+     * @Date: 2021/6/2 12:23
+     */
+    public String upload2(MultipartFile multipartFile) {
+        String endpoint = constantProperties.getEndpoint();
+        String accessKeyId = constantProperties.getKeyid();
+        String accessKeySecret = constantProperties.getKeysecret();
+        String bucketName = constantProperties.getBucketname();
+        String fileHost = constantProperties.getFilehost();
+        log.info("oss 配置信息为:【{}】", constantProperties.toString());
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        try {
+            // TODO 假如容器不存在,就创建
+            if (!ossClient.doesBucketExist(bucketName)) {
+                ossClient.createBucket(bucketName);
+                CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
+                createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
+                ossClient.createBucket(createBucketRequest);
+            }
+            log.info("======= getOriginalFilename : {} ======",multipartFile.getOriginalFilename());
+            String fileUrl = fileHost.concat("/".concat(RandomUtil.randomString(16)).concat(multipartFile.getOriginalFilename()));
+
+            if (multipartFile.getSize() != 0 && ObjectUtil.isNotEmpty(multipartFile.getName())) {
+                //上传文件
+                PutObjectResult result = null;
+                try {
+                    result = ossClient.putObject(new PutObjectRequest(bucketName, fileUrl, multipartFile.getInputStream()));
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                //设置权限 这里是公开读
+                ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);
+                if (null != result) {
+                    log.info("==========>OSS文件上传成功,OSS地址:================>" + constantProperties.getFinalUrl().concat(fileUrl));
+                    return constantProperties.getFinalUrl().concat(fileUrl);
+                }
+            }
+
+        } catch (OSSException oe) {
+            log.error(oe.getMessage());
+        } catch (ClientException ce) {
+            log.error(ce.getMessage());
+        } finally {
+            //关闭
+            ossClient.shutdown();
+        }
+        return null;
+    }
+
+
+
+
+
+}

+ 3 - 3
modules/admin/src/main/java/com/fire/admin/vo/CustomerInfoVo.java

@@ -51,7 +51,7 @@ public class CustomerInfoVo {
     @ApiModelProperty(value = "联系人地址")
     private String address;
 
-    @ApiModelProperty(value = "状态, 1:有效2:无效 3:暂停")
+    @ApiModelProperty(value = "状态, 1:正常 2:暂停")
     private Integer status;
 
     @ApiModelProperty(value = "帐号余额")
@@ -114,8 +114,8 @@ public class CustomerInfoVo {
     @ApiModelProperty(value = "通道ID(关联的通道组id)")
     private  Integer channelId;
 
-       @ApiModelProperty(value = "客户接入的产品")
- private List<CustomerProductDto> customerProductList;
+    @ApiModelProperty(value = "价格校验")
+    private Integer priceCheck;
 
 
 }

+ 9 - 1
modules/admin/src/main/java/com/fire/admin/vo/CustomerProductInfoVo.java

@@ -1,8 +1,10 @@
 package com.fire.admin.vo;
 
+import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.math.BigInteger;
 
 /**
@@ -14,6 +16,9 @@ import java.math.BigInteger;
 @Data
 public class CustomerProductInfoVo {
 
+    @ApiModelProperty(value = "主键")
+    private Integer customerProductId;
+
     @ApiModelProperty(value = "客户ID")
     private Long customerId;
 
@@ -44,6 +49,9 @@ public class CustomerProductInfoVo {
     private Integer operator;
 
     @ApiModelProperty(value = "是否有效 (1:有效 0:无效)")
-    private Integer isValid;
+    private Integer isEffective;
+
+    @ApiModelProperty(value = "客户结算价格折扣")
+    private BigDecimal disCount;
 
 }

+ 2 - 2
modules/admin/src/main/java/com/fire/admin/vo/FireProductInfoVo.java

@@ -8,7 +8,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
-import java.math.BigInteger;
+
 
 /**
  * @author: liuliu
@@ -19,8 +19,8 @@ import java.math.BigInteger;
 @Data
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
 @Builder
-@AllArgsConstructor
 @NoArgsConstructor
+@AllArgsConstructor
 public class FireProductInfoVo   {
 
 

+ 1 - 2
modules/admin/src/main/java/com/fire/admin/vo/FlowAppInfoVo.java

@@ -14,7 +14,6 @@ import lombok.Data;
  * @date: 2021-05-25 17:59
  */
 @Data
-@JsonInclude(JsonInclude.Include.NON_EMPTY)
 @Builder
 public class FlowAppInfoVo {
 
@@ -36,7 +35,7 @@ public class FlowAppInfoVo {
     @ApiModelProperty(value = "结束日期")
     private String endDate;
 
-    @ApiModelProperty(value = "1-有效 2-暂停 3-无效")
+    @ApiModelProperty(value = "0-无效 1-有效")
     private Integer status;
 
     @ApiModelProperty(value = "APP名称")

+ 18 - 1
modules/admin/src/main/resources/bootstrap.yml

@@ -27,6 +27,15 @@ spring:
         namespace: fire
         service: admin
 
+
+oos:
+  endpoint: http://oss-cn-chengdu.aliyuncs.com
+  keyid: LTAI4FyxwFmsGEESaa7tiB6z # 填写刚刚生成的AccessKey
+  keysecret: dG701ohwFU28pT84ZpEmIn7EcLOzzu  # 填写刚刚生成的Accesssecret
+  bucketname: bluefire # bucket名称
+  filehost: bluefire    #bucket下文件夹的路径
+  finalUrl: https://bluefire.oss-cn-chengdu.aliyuncs.com/
+
 ---
 server:
   port: 8082
@@ -49,4 +58,12 @@ spring:
       discovery:
         server-addr: 192.168.2.114:8848
         namespace: fire
-        service: admin
+        service: admin
+
+
+oos:
+  endpoint: http://oss-cn-chengdu.aliyuncs.com
+  keyid: LTAI4FyxwFmsGEESaa7tiB6z # 填写刚刚生成的AccessKey
+  keysecret: dG701ohwFU28pT84ZpEmIn7EcLOzzu  # 填写刚刚生成的Accesssecret
+  bucketname: bluefire # bucket名称
+  filehost: bluefire    #bucket下文件夹的路径

+ 4 - 34
modules/admin/src/main/resources/mapper/CustomerMapper.xml

@@ -57,42 +57,9 @@
         <result column="total_count" property="totalCount"/>
         <result column="time" property="time"/>
         <result column="channel_id" property="channelId"/>
+        <result column="price_check" property="priceCheck"/>
     </resultMap>
 
-    <resultMap id="ResultMapCustomer" type="com.fire.admin.vo.CustomerInfoVo">
-        <result column="customer_id" property="customerId"/>
-        <result column="partner_name" property="partnerName"/>
-        <result column="customer_name" property="customerName"/>
-        <result column="shorter_name" property="shorterName"/>
-        <result column="linkman_name" property="linkmanName"/>
-        <result column="linkman_mobile" property="linkmanMobile"/>
-        <result column="linkman_email" property="linkmanEmail"/>
-        <result column="address" property="address"/>
-        <result column="status" property="status"/>
-        <result column="balance" property="balance"/>
-        <result column="credit_amount" property="creditAmount"/>
-        <result column="current_amount" property="currentAmount"/>
-        <result column="creator" property="creator"/>
-        <result column="create_time" property="createTime"/>
-        <result column="updator" property="updator"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="partner_commission" property="partnerCommission"/>
-        <result column="flow_app_id" property="flowAppId"/>
-        <result column="app_id" property="appId"/>
-        <result column="app_key" property="appKey"/>
-        <result column="start_date" property="startDate"/>
-        <result column="status" property="status"/>
-        <result column="callback_url" property="callbackUrl"/>
-        <result column="ip_address" property="ipAddress"/>
-        <result column="dispatch_channel" property="dispatchChannel"/>
-        <result column="total_count" property="totalCount"/>
-        <result column="time" property="time"/>
-        <result column="channel_id" property="channelId"/>
-        <collection property="customerProductList" ofType="com.fire.admin.dto.CustomerProductDto"
-                    select="com.fire.admin.mapper.CustomerProductInfoMapper.queryCustomerProductByCustomerId"
-                    column="{customerId=customerId,type=type}" >
-        </collection>
-    </resultMap>
 
     <sql id="selectCustomerInfoPage">
         c.customer_id ,
@@ -112,6 +79,7 @@
         c.updator,
         c.update_time,
         c.partner_commission,
+        c.price_check,
         app.flow_app_id,
         app.app_id,
         app.app_key,
@@ -136,7 +104,9 @@
             <if test="query.customerName !=null and query.customerName!='' ">
                 and c.customer_name LIKE CONCAT('%',#{query.customerName},'%')
             </if>
+                and c.is_deleted=0
         </where>
+        ORDER BY   c.create_time DESC
     </select>
 
 </mapper>

+ 7 - 3
modules/admin/src/main/resources/mapper/CustomerProductInfoMapper.xml

@@ -10,11 +10,12 @@
         <result column="type" property="type"/>
         <result column="price" property="price"/>
         <result column="face_price" property="facePrice"/>
-        <result column="is_valid" property="isValid"/>
+        <result column="is_effective" property="isEffective"/>
         <result column="discount" property="disCount"/>
     </resultMap>
 
     <resultMap id="ResultMap" type="com.fire.admin.vo.CustomerProductInfoVo">
+        <result column="customer_product_id" property="customerProductId"/>
         <result column="customer_id" property="customerId"/>
         <result column="package_id" property="packageId"/>
         <result column="product_name" property="productName"/>
@@ -23,10 +24,12 @@
         <result column="face_price" property="facePrice"/>
         <result column="area_name" property="areaName"/>
         <result column="operator" property="operator"/>
-        <result column="is_valid" property="isValid"/>
+        <result column="is_effective" property="isEffective"/>
+        <result column="discount" property="disCount"/>
     </resultMap>
 
     <sql id="selectCustomerProductByCustomerId" >
+        cp.customer_product_id,
         cp.customer_id,
         p.package_id,
         p.product_name,
@@ -35,7 +38,8 @@
         cp.face_price,
         p.area_name,
         p.operator,
-        cp.is_valid
+        cp.is_effective,
+        FORMAT(cp.discount * 100,2) as discount
     </sql>
 
     <select id="queryCustomerProductByCustomerId" resultMap="ResultMap">

+ 1 - 0
modules/admin/src/main/resources/mapper/FireProductMapper.xml

@@ -76,6 +76,7 @@
 
     <select id="selectProductAll" resultMap="ResultMap">
         SELECT
+        product_id,
         package_id,
         product_name,
         product_price

+ 2 - 1
modules/admin/src/main/resources/mapper/FlowAppInfoMapper.xml

@@ -61,8 +61,9 @@
             <if test="customerName !=null and customerName !=''">
                 AND cu.customer_name LIKE CONCAT('%',#{customerName},'%')
             </if>
+            and cu.is_deleted=0
         </where>
-
+        ORDER BY f.start_date DESC
     </select>
 
 </mapper>

+ 6 - 1
pom.xml

@@ -118,7 +118,12 @@
                 <artifactId>activation</artifactId>
                 <version>1.1.1</version>
             </dependency>
-
+            <!-- 阿里云oss-->
+            <dependency>
+                <groupId>com.aliyun.oss</groupId>
+                <artifactId>aliyun-sdk-oss</artifactId>
+                <version>3.10.2</version>
+            </dependency>
         </dependencies>
 
     </dependencyManagement>