Browse Source

Merge remote-tracking branch 'origin/developer' into developerD

huangzhiguo 1 year ago
parent
commit
0c9a6534aa
32 changed files with 5666 additions and 14 deletions
  1. 11 12
      src/main/java/com/caimei365/commodity/components/PriceUtilService.java
  2. 292 0
      src/main/java/com/caimei365/commodity/controller/ReportingClubApi.java
  3. 113 0
      src/main/java/com/caimei365/commodity/mapper/CmDistributionMapper.java
  4. 169 0
      src/main/java/com/caimei365/commodity/mapper/CmDistributionProductMapper.java
  5. 108 0
      src/main/java/com/caimei365/commodity/mapper/CmDistributionSkuMapper.java
  6. 113 0
      src/main/java/com/caimei365/commodity/mapper/CmRelatedImageMapper.java
  7. 116 0
      src/main/java/com/caimei365/commodity/mapper/CmReportingClubMapper.java
  8. 145 0
      src/main/java/com/caimei365/commodity/mapper/CmReportingMemberMapper.java
  9. 11 0
      src/main/java/com/caimei365/commodity/mapper/PriceMapper.java
  10. 221 0
      src/main/java/com/caimei365/commodity/model/po/CmDistribution.java
  11. 213 0
      src/main/java/com/caimei365/commodity/model/po/CmDistributionProduct.java
  12. 140 0
      src/main/java/com/caimei365/commodity/model/po/CmDistributionSku.java
  13. 117 0
      src/main/java/com/caimei365/commodity/model/po/CmDistributionTeamProduct.java
  14. 103 0
      src/main/java/com/caimei365/commodity/model/po/CmRelatedImage.java
  15. 326 0
      src/main/java/com/caimei365/commodity/model/po/CmReportingClub.java
  16. 235 0
      src/main/java/com/caimei365/commodity/model/po/CmReportingMember.java
  17. 72 0
      src/main/java/com/caimei365/commodity/model/vo/CmDistributionProductVO.java
  18. 104 0
      src/main/java/com/caimei365/commodity/model/vo/CmDistributionVO.java
  19. 62 0
      src/main/java/com/caimei365/commodity/model/vo/CmRelatedImageVO.java
  20. 158 0
      src/main/java/com/caimei365/commodity/model/vo/CmReportingClubVO.java
  21. 91 0
      src/main/java/com/caimei365/commodity/model/vo/CmReportingMemberVO.java
  22. 82 0
      src/main/java/com/caimei365/commodity/service/CmReportingClubService.java
  23. 224 0
      src/main/java/com/caimei365/commodity/service/impl/CmReportingClubServiceImpl.java
  24. 31 2
      src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java
  25. 5 0
      src/main/resources/bootstrap.yml
  26. 357 0
      src/main/resources/mapper/CmDistributionMapper.xml
  27. 613 0
      src/main/resources/mapper/CmDistributionProductMapper.xml
  28. 269 0
      src/main/resources/mapper/CmDistributionSkuMapper.xml
  29. 320 0
      src/main/resources/mapper/CmRelatedImageMapper.xml
  30. 368 0
      src/main/resources/mapper/CmReportingClubMapper.xml
  31. 436 0
      src/main/resources/mapper/CmReportingMemberMapper.xml
  32. 41 0
      src/main/resources/mapper/PriceMapper.xml

+ 11 - 12
src/main/java/com/caimei365/commodity/components/PriceUtilService.java

@@ -4,11 +4,9 @@ package com.caimei365.commodity.components;
 import com.caimei365.commodity.mapper.PriceMapper;
 import com.caimei365.commodity.mapper.PromotionsMapper;
 import com.caimei365.commodity.model.dto.Sku;
-import com.caimei365.commodity.model.dto.VipSkuPriceDto;
 import com.caimei365.commodity.model.vo.*;
 import com.caimei365.commodity.utils.ImageUtils;
 import com.caimei365.commodity.utils.MathUtil;
-import com.google.common.util.concurrent.AtomicDouble;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
@@ -17,12 +15,7 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
 /**
@@ -96,11 +89,12 @@ public class PriceUtilService {
      * @param userId 用户Id
      */
     public void setPriceByUserId(PriceVo price, Integer userId, Integer ind) {
-        // 根据用户Id查询用户身份: 0个人,1协销,2会员机构,3供应商,4普通机构
+        // 根据用户Id查询用户身份: 0个人,1协销,7外部协销,2会员机构,3供应商,4普通机构
         Integer identity = priceMapper.getIdentityByUserId(userId);
         if (null == identity) {
             identity = 0;
         }
+
         // priceFlag: 0公开价格,1不公开价格,2仅对会员机构公开,3仅对医美机构公开
         Integer priceFlag = null != price.getPriceFlag() ? price.getPriceFlag() : 0;
         // 会员机构类型:1医美,2生美
@@ -129,10 +123,14 @@ public class PriceUtilService {
                 isShopOwn = true;
             }
         }
-        // 设置价格标志(协销|价格公开|仅对医美机构公开|仅对会员机构公开|供应商自己的商品)
-        boolean setFlag = identity == 1 || priceFlag == 0 || (priceFlag == 3 && clubType == 1) || (priceFlag == 2 && (identity == 2 || isSuperVip)) || isShopOwn;
-
-        List<Sku> skus = priceMapper.findSkus(price.getProductId());
+        // 设置价格标志(协销|价格公开|外部协销|价格公开|仅对医美机构公开|仅对会员机构公开|供应商自己的商品)
+        boolean setFlag = identity == 1 || identity == 7 || priceFlag == 0 || (priceFlag == 3 && clubType == 1) || (priceFlag == 2 && (identity == 2 || isSuperVip)) || isShopOwn;
+        List<Sku> skus = null;
+        if (identity == 7) {
+            skus = priceMapper.findDistributionSkus(price.getProductId());
+        } else {
+            skus = priceMapper.findSkus(price.getProductId());
+        }
         int size = skus.size();
         //税费标志
         boolean taxFlag = "0".equals(price.getIncludedTax()) && ("1".equals(price.getInvoiceType()) || "2".equals(price.getInvoiceType()));
@@ -143,6 +141,7 @@ public class PriceUtilService {
         price.setMinBuyNumber(skus.get(0).getMinBuyNumber());
         price.setUnit(skus.get(0).getUnit());
         price.setStock(skus.get(0).getStock());
+        Integer finalIdentity = identity;
         skus.forEach(s -> {
             s.setOriginalPrice(s.getPrice());
             s.setPriceGrade(getPriceGrade(s.getPrice()));

+ 292 - 0
src/main/java/com/caimei365/commodity/controller/ReportingClubApi.java

@@ -0,0 +1,292 @@
+package com.caimei365.commodity.controller;
+
+import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.po.CmDistribution;
+import com.caimei365.commodity.model.po.CmDistributionTeamProduct;
+import com.caimei365.commodity.model.po.CmReportingClub;
+import com.caimei365.commodity.model.po.CmReportingMember;
+import com.caimei365.commodity.model.vo.ArchiveVo;
+import com.caimei365.commodity.model.vo.CmDistributionVO;
+import com.caimei365.commodity.model.vo.CmReportingMemberVO;
+import com.caimei365.commodity.model.vo.PaginationVo;
+import com.caimei365.commodity.service.CmReportingClubService;
+import com.github.pagehelper.PageHelper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @创建人 hzg
+ * @创建时间 2022/8/30
+ * @描述
+ */
+@RequestMapping("/commodity/reportingClub")
+@RequiredArgsConstructor
+@RestController
+public class ReportingClubApi {
+
+    private final CmReportingClubService cmReportingClubService;
+
+
+    @ApiOperation("机构意向订单报备列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(readOnly = true, name = "pageNo", value = "页面页数"),
+            @ApiImplicitParam(readOnly = true, name = "pageSize", value = "页面数据量"),
+            @ApiImplicitParam(readOnly = true, name = "id", value = "用户Id"),
+            @ApiImplicitParam(readOnly = true, name = "parentId", value = "父级Id"),
+            @ApiImplicitParam(readOnly = true, name = "clubName", value = "机构名称"),
+    })
+    @GetMapping("/list")
+    public ResponseJson list(CmDistribution cmDistribution,String clubName,
+                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        if (StringUtils.isBlank(cmDistribution.getId()) && null == cmDistribution.getParentId()) {
+            return ResponseJson.error("参数异常", null);
+        }
+        List<CmReportingMember> cmReportingClubList = cmReportingClubService.getCmReportingClubList(new CmDistribution()
+                        .id(cmDistribution.id())
+                        .parentId(cmDistribution.getParentId())
+                , clubName, null, null, null, null, null, null);
+        PaginationVo<CmReportingMemberVO> paginationVo = new PaginationVo(CmReportingMemberVO.setValues(cmReportingClubList));
+        return ResponseJson.success(paginationVo);
+    }
+
+    /**
+     * 报备佣金列表
+     */
+    @GetMapping("/reportingDistributionList")
+    public ResponseJson reportingDistributionList(CmDistribution cmDistribution, Integer settleStatus) {
+        if (null == cmDistribution.parentId()||null==settleStatus) {
+            return ResponseJson.error("参数异常!", null);
+        }
+        Map<String, Object> map = new HashMap<>();
+        List<CmDistribution> cmDistributionList = cmReportingClubService.getCmDistributionList(new CmDistribution()
+                .linkMan(cmDistribution.linkMan())
+                .mobile(cmDistribution.mobile())
+                .status(90)
+                .parentId(cmDistribution.parentId()));
+        List<CmDistributionVO> cmDistributionVOS = CmDistributionVO.setValues(cmDistributionList);
+        cmDistributionVOS.forEach(s -> {
+            s.setOrderCount(cmReportingClubService.getCmReportingMemberCount(s.getId(), null, cmDistribution.linkMan(), cmDistribution.mobile(), settleStatus));
+            s.setCommission(cmReportingClubService.getCmReportingMemberCommission(s.getId(), null, cmDistribution.linkMan(), cmDistribution.mobile(), settleStatus));
+        });
+        map.put("orderCount", cmReportingClubService.getCmReportingMemberCount(null, cmDistribution.parentId(), cmDistribution.linkMan(), cmDistribution.mobile(), settleStatus));
+        map.put("commission", cmReportingClubService.getCmReportingMemberCommission(null, cmDistribution.parentId(), cmDistribution.linkMan(), cmDistribution.mobile(), settleStatus));
+        map.put("cmDistributionList", cmDistributionVOS);
+        return ResponseJson.success(map);
+    }
+
+    @GetMapping("/reportingDistributionFrom")
+    public ResponseJson reportingDistributionFrom(CmDistribution cmDistribution, String clubName, Integer settleStatus,
+                                                  @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        if (StringUtils.isBlank(cmDistribution.getId())||null==settleStatus) {
+            return ResponseJson.error("参数异常", null);
+        }
+        Map<String, Object> map = new HashMap<>();
+        CmDistributionVO cmDistributionVO = CmDistributionVO.setValue(cmReportingClubService.getCmDistributionById(cmDistribution.id()));
+        cmDistributionVO.setOrderCount(cmReportingClubService.getCmReportingMemberCount(cmDistributionVO.getId(), null, null, null, settleStatus));
+        cmDistributionVO.setCommission(cmReportingClubService.getCmReportingMemberCommission(cmDistributionVO.getId(), null, null, null, settleStatus));
+
+        List<CmReportingMember> cmReportingClubList = cmReportingClubService.getCmReportingClubList(new CmDistribution()
+                        .id(cmDistribution.id())
+                , clubName, settleStatus, null, null, null, null, null);
+        PaginationVo<CmReportingMemberVO> paginationVo = new PaginationVo(CmReportingMemberVO.setValues(cmReportingClubList));
+        map.put("cmDistribution", cmDistributionVO);
+        map.put("paginationVo", paginationVo);
+        return ResponseJson.success(map);
+    }
+
+    /**
+     * 销售佣金列表
+     */
+    @GetMapping("/splitReportingDistributionList")
+    public ResponseJson splitReportingDistributionList(CmDistribution cmDistribution, Integer splitSettleStatus, Integer payWay) {
+        if (null == cmDistribution.parentId()||null==splitSettleStatus||null==payWay) {
+            return ResponseJson.error("参数异常!", null);
+        }
+        Map<String, Object> map = new HashMap<>();
+        List<CmDistribution> cmDistributionList = cmReportingClubService.getCmDistributionList(new CmDistribution()
+                .linkMan(cmDistribution.linkMan())
+                .mobile(cmDistribution.mobile())
+                .status(90)
+                .parentId(cmDistribution.parentId()));
+        List<CmDistributionVO> cmDistributionVOS = CmDistributionVO.setValues(cmDistributionList);
+        cmDistributionVOS.forEach(s -> {
+            s.setOrderCount(cmReportingClubService.getCmReportingMemberSplitCount(s.getId(), null, cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay));
+            s.setCommission(cmReportingClubService.getCmReportingMemberSplitCommission(s.getId(), null, cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay,null));
+        });
+        map.put("orderCount", cmReportingClubService.getCmReportingMemberSplitCount(null, cmDistribution.parentId(), cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay));
+        map.put("commission", cmReportingClubService.getCmReportingMemberSplitCommission(null, cmDistribution.parentId(), cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay,null));
+        map.put("cmDistributionList", cmDistributionVOS);
+        return ResponseJson.success(map);
+    }
+
+    @GetMapping("/splitReportingDistributionFrom")
+    public ResponseJson splitReportingDistributionFrom(CmDistribution cmDistribution, Integer splitSettleStatus, Integer payWay, String shopOrderNo, String startTime, String entTime,
+                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        if (StringUtils.isBlank(cmDistribution.getId())||null==splitSettleStatus||null==payWay) {
+            return ResponseJson.error("参数异常", null);
+        }
+        Map<String, Object> map = new HashMap<>();
+        CmDistributionVO cmDistributionVO = CmDistributionVO.setValue(cmReportingClubService.getCmDistributionById(cmDistribution.id()));
+        cmDistributionVO.setOrderCount(cmReportingClubService.getCmReportingMemberSplitCount(cmDistributionVO.getId(), null, null, null, splitSettleStatus, payWay));
+        cmDistributionVO.setCommission(cmReportingClubService.getCmReportingMemberSplitCommission(cmDistributionVO.getId(), null, null, null, splitSettleStatus, payWay,null));
+
+        List<CmReportingMember> cmReportingClubList = cmReportingClubService.getCmReportingClubList(new CmDistribution()
+                        .id(cmDistribution.id())
+                , null, null, payWay, splitSettleStatus, shopOrderNo, startTime, entTime);
+        cmReportingClubList.forEach(s -> {
+            s.setSplitCommission(cmReportingClubService.getCmReportingMemberSplitCommission(String.valueOf(s.getDistributionId()), null, cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay,s.cmReportingClub().orderId()));
+        });
+        PaginationVo<CmReportingMemberVO> paginationVo = new PaginationVo(CmReportingMemberVO.setValues(cmReportingClubList));
+        map.put("cmDistribution", cmDistributionVO);
+        map.put("paginationVo", paginationVo);
+        return ResponseJson.success(map);
+    }
+
+    @ApiOperation("分销团队商品列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(readOnly = true, name = "pageNo", value = "页面页数"),
+            @ApiImplicitParam(readOnly = true, name = "pageSize", value = "页面数据量"),
+            @ApiImplicitParam(readOnly = true, name = "id", value = "父级Id"),
+            @ApiImplicitParam(readOnly = true, name = "name", value = "商品名称"),
+    })
+    @GetMapping("/productList")
+    public ResponseJson productList(CmDistribution cmDistribution,
+                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        if (StringUtils.isBlank(cmDistribution.getId())) {
+            return ResponseJson.error("参数异常", null);
+        }
+        List<CmDistributionTeamProduct> cmDistributionTeamProducts = cmReportingClubService.getCmDistributionTeamProductList(cmDistribution);
+        PaginationVo<CmDistributionTeamProduct> paginationVo = new PaginationVo(cmDistributionTeamProducts);
+        return ResponseJson.success(paginationVo);
+    }
+
+    @ApiOperation("分销团队商品资料列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(readOnly = true, name = "pageNo", value = "页面页数"),
+            @ApiImplicitParam(readOnly = true, name = "pageSize", value = "页面数据量"),
+            @ApiImplicitParam(readOnly = true, name = "id", value = "团队管理员Id"),
+            @ApiImplicitParam(readOnly = true, name = "productName", value = "商品名称"),
+    })
+    @GetMapping("/archiveList")
+    public ResponseJson getProductArchiveList(Integer id, String productName,
+                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        if (null==id) {
+            return ResponseJson.error("参数异常", null);
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        List<ArchiveVo> archiveList = cmReportingClubService.getProductArchiveList(id, productName);
+        PaginationVo<ArchiveVo> paginationVo = new PaginationVo(archiveList);
+        return ResponseJson.success(paginationVo);
+    }
+
+
+    @ApiOperation("机构意向订单报备成员记录详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(readOnly = true, name = "id", value = "机构意向订单报备成员记录Id"),
+    })
+    @GetMapping("/details")
+    public ResponseJson list(String id) {
+        if (StringUtils.isBlank(id)) {
+            return ResponseJson.error("参数异常", null);
+        }
+        CmReportingMember cmReportingMember = cmReportingClubService.getCmReportingMemberById(id);
+        return ResponseJson.success(CmReportingMemberVO.setValue(cmReportingMember));
+    }
+
+    @ApiOperation("新增机构意向订单")
+    @ApiImplicitParams({
+    })
+    @PostMapping("/add")
+    public ResponseJson add(CmReportingClub cmReportingClub) {
+        return cmReportingClubService.addCmReportingClub(cmReportingClub);
+    }
+
+    @ApiOperation("锁定机构意向订单")
+    @ApiImplicitParams({
+    })
+    @GetMapping("/updateReportingClub")
+    public ResponseJson updateCmReportingClub(CmReportingClub cmReportingClub) {
+        if (StringUtils.isBlank(cmReportingClub.id()) && null == cmReportingClub.distributionId()) {
+            return ResponseJson.error("参数异常!", null);
+        }
+        cmReportingClubService.updateCmReportingClub(new CmReportingClub()
+                .id(cmReportingClub.id())
+                .distributionId(cmReportingClub.distributionId())
+                .lockStatus(1)
+                .lockTime(new Date())
+        );
+        return ResponseJson.success("确认成功!", null);
+    }
+
+    @ApiOperation("确认结算机构意向订单")
+    @ApiImplicitParams({
+    })
+    @GetMapping("/updateSettleStatus")
+    public ResponseJson updateSettleStatus(CmReportingMember cmReportingMember) {
+        if (StringUtils.isBlank(cmReportingMember.id())) {
+            return ResponseJson.error("参数异常!", null);
+        }
+        CmReportingMember cmReportingMemberById = cmReportingClubService.getCmReportingMemberById(cmReportingMember.id());
+        if (null != cmReportingMemberById &&cmReportingMemberById.auditStatus().equals("2")) {
+            cmReportingClubService.updateCmReportingMember(new CmReportingMember()
+                    .id(cmReportingMember.id())
+                    .settleStatus(3)
+                    .settleTime(new Date())
+            );
+            Integer count = cmReportingClubService.getCount(new CmReportingMember()
+                    .clubReportingId(cmReportingMemberById.getClubReportingId())
+                    .auditStatus("2")
+                    .settleStatus(3));
+            if(count==0){
+                cmReportingClubService.updateCmReportingClub(new CmReportingClub()
+                        .id(String.valueOf(cmReportingMemberById.getClubReportingId()))
+                        .settleStatus(1)
+                        .settleTime(new Date()));
+            }
+        } else {
+            return ResponseJson.error("订单异常!", null);
+        }
+
+        return ResponseJson.success("确认成功!", null);
+    }
+
+    @ApiOperation("确认分账结算机构意向订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(readOnly = true, name = "id", value = "机构意向订单报备记录Id"),
+    })
+    @PostMapping("/updateSplitSettleStatus")
+    public ResponseJson updateSplitSettleStatus(String [] ids) {
+        if (null==ids||ids.length==0) {
+            return ResponseJson.error("参数异常!", null);
+        }
+        for (String id : ids) {
+            if(StringUtils.isNotBlank(id)){
+                CmReportingClub cmReportingClubById = cmReportingClubService.getCmReportingClubById(id);
+                if (null != cmReportingClubById && cmReportingClubById.orderStatus() == 1) {
+                    cmReportingClubService.updateCmReportingClub(new CmReportingClub()
+                            .id(id)
+                            .splitSettleStatus(3)
+                            .splitSettleTime(new Date())
+                    );
+                } else {
+                    return ResponseJson.error("订单异常!", null);
+                }
+            }
+        }
+        return ResponseJson.success("确认成功!", null);
+    }
+
+}

+ 113 - 0
src/main/java/com/caimei365/commodity/mapper/CmDistributionMapper.java

@@ -0,0 +1,113 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmDistribution;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-15
+ */
+@Mapper
+public interface CmDistributionMapper
+{
+    /**
+     * 通过对象查询列表
+     *
+     * @param cmDistribution
+     * @return 集合
+     */
+    public List<CmDistribution> getCmDistributionList(CmDistribution cmDistribution);
+
+    /**
+     * 通过Id查询对象
+     *
+     * @param id 主键
+     * @return
+     */
+    public CmDistribution getCmDistributionById(String id);
+
+    /**
+     * 通过对象查询对象
+     *
+     * @param cmDistribution
+     * @return
+     */
+    public CmDistribution getByCmDistribution(CmDistribution cmDistribution);
+
+    /**
+     * 通过对象查询Id
+     *
+     * @param cmDistribution
+     * @return String
+     */
+    public String getById(CmDistribution cmDistribution);
+
+    /**
+     * 通过对象查询Ids
+     *
+     * @param cmDistribution
+     * @return List<String>
+     */
+    public List<String> getByIds(CmDistribution cmDistribution);
+
+    /**
+     * 通过对象查询记录总数
+     *
+     * @param cmDistribution
+     * @return Integer
+     */
+    public int getCmDistributionCount(CmDistribution cmDistribution);
+
+    /**
+     * 新增
+     *
+     * @param cmDistribution
+     * @return 结果
+     */
+    public int addCmDistribution(CmDistribution cmDistribution);
+
+    /**
+     * 修改
+     *
+     * @param cmDistribution
+     * @return 结果
+     */
+    public int updateCmDistribution(CmDistribution cmDistribution);
+
+    /**
+     * 删除
+     *
+     * @param id 主键
+     * @return 结果
+     */
+    public int delCmDistributionById(String id);
+
+    /**
+     * 批量删除
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistribution(CmDistribution cmDistribution);
+
+    /**
+     * 批量删除
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistributionByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmDistributionByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 169 - 0
src/main/java/com/caimei365/commodity/mapper/CmDistributionProductMapper.java

@@ -0,0 +1,169 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmDistributionProduct;
+import com.caimei365.commodity.model.po.CmDistributionTeamProduct;
+import com.caimei365.commodity.model.vo.ArchiveVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-18
+ */
+@Mapper
+public interface CmDistributionProductMapper
+{
+    /**
+     * 通过对象查询列表
+     *
+     * @param cmDistributionProduct
+     * @return 集合
+     */
+    public List<CmDistributionProduct> getCmDistributionProductList(CmDistributionProduct cmDistributionProduct);
+    /**
+     * 通过对象查询列表
+     *
+     * @param cmDistributionTeamProduct
+     * @return 集合
+     */
+    public List<CmDistributionTeamProduct> getCmDistributionTeamProductList(CmDistributionTeamProduct cmDistributionTeamProduct);
+
+    /**
+     * 查询分销商品资料列表
+     *
+     * @param productName     搜索关键词
+     * @return
+     */
+    List<ArchiveVo> getProductArchiveList( @Param("id") Integer id,@Param("productName") String productName);
+
+    /**
+     * 通过对象查询分销团队商品列表
+     *
+     * @param cmDistributionProduct
+     * @return 集合
+     */
+    public List<CmDistributionProduct> findTeamProductPage(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过Id查询对象
+     *
+     * @param id 主键
+     * @return
+     */
+    public CmDistributionProduct getCmDistributionProductById(String id);
+
+    /**
+     * 通过对象查询对象
+     *
+     * @param cmDistributionProduct
+     * @return
+     */
+    public CmDistributionProduct getByCmDistributionProduct(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过对象查询Id
+     *
+     * @param cmDistributionProduct
+     * @return String
+     */
+    public String getById(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过对象查询Ids
+     *
+     * @param cmDistributionProduct
+     * @return List<String>
+     */
+    public List<String> getByIds(CmDistributionProduct cmDistributionProduct);
+    /**
+     * 通过对象查询商品Ids
+     *
+     * @param cmDistributionProduct
+     * @return List<String>
+     */
+    public List<Integer> getByProductIds(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过对象查询分销团队商品Ids
+     *
+     * @param cmDistributionProduct
+     * @return List<String>
+     */
+    public List<Integer> getByTeamProductIds(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过对象查询记录总数
+     *
+     * @param cmDistributionProduct
+     * @return Integer
+     */
+    public int getCmDistributionProductCount(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 通过对象查询记录总数
+     *
+     * @param cmDistributionTeamProduct
+     * @return Integer
+     */
+    public int getCmDistributionTeamProductCount(CmDistributionTeamProduct cmDistributionTeamProduct);
+    /**
+     * 新增
+     *
+     * @param cmDistributionProduct
+     * @return 结果
+     */
+    public int addCmDistributionProduct(CmDistributionProduct cmDistributionProduct);
+    /**
+     * 新增
+     *
+     * @param cmDistributionTeamProduct
+     * @return 结果
+     */
+    public int addCmDistributionTeamProduct(CmDistributionTeamProduct cmDistributionTeamProduct);
+    /**
+     * 修改
+     *
+     * @param cmDistributionProduct
+     * @return 结果
+     */
+    public int updateCmDistributionProduct(CmDistributionProduct cmDistributionProduct);
+
+
+
+    /**
+     * 批量删除
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistributionProduct(CmDistributionProduct cmDistributionProduct);
+
+    /**
+     * 批量删除
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistributionProductByIds(@Param("ids") String[] ids);
+
+
+
+    /**
+     * 修改
+     *
+     * @param cmDistributionTeamProduct
+     * @return 结果
+     */
+    public int updateCmDistributionTeamProduct(CmDistributionTeamProduct cmDistributionTeamProduct);
+
+
+    /**
+     * 批量删除
+     * @return 结果
+     */
+    public int delCmDistributionTeamProduct(CmDistributionTeamProduct cmDistributionTeamProduct);
+}

+ 108 - 0
src/main/java/com/caimei365/commodity/mapper/CmDistributionSkuMapper.java

@@ -0,0 +1,108 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmDistributionSku;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-18
+ */
+@Mapper
+public interface CmDistributionSkuMapper
+{
+    /**
+     * 通过对象查询列表
+     *
+     * @param cmDistributionSku
+     * @return 集合
+     */
+    public List<CmDistributionSku> getCmDistributionSkuList(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 通过Id查询对象
+     *
+     * @param skuId 主键
+     * @return
+     */
+    public CmDistributionSku getCmDistributionSkuBySkuId(String skuId);
+
+    /**
+     * 通过对象查询对象
+     *
+     * @param cmDistributionSku
+     * @return
+     */
+    public CmDistributionSku getByCmDistributionSku(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 通过对象查询Id
+     *
+     * @param cmDistributionSku
+     * @return String
+     */
+    public String getById(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 通过对象查询Ids
+     *
+     * @param cmDistributionSku
+     * @return List<String>
+     */
+    public List<String> getByIds(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 通过对象查询记录总数
+     *
+     * @param cmDistributionSku
+     * @return Integer
+     */
+    public int getCmDistributionSkuCount(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 新增
+     *
+     * @param cmDistributionSku
+     * @return 结果
+     */
+    public int addCmDistributionSku(CmDistributionSku cmDistributionSku);
+
+
+
+    /**
+     * 修改
+     *
+     * @param cmDistributionSku
+     * @return 结果
+     */
+    public int updateCmDistributionSku(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 删除
+     *
+     * @param skuId 主键
+     * @return 结果
+     */
+    public int delCmDistributionSkuBySkuId(String skuId);
+
+    /**
+     * 批量删除
+     *
+     * @param skuIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistributionSku(CmDistributionSku cmDistributionSku);
+
+    /**
+     * 批量删除
+     *
+     * @param skuIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmDistributionSkuBySkuIds(@Param("skuIds") String[] skuIds);
+
+}

+ 113 - 0
src/main/java/com/caimei365/commodity/mapper/CmRelatedImageMapper.java

@@ -0,0 +1,113 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmRelatedImage;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 相关图片Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Mapper
+public interface CmRelatedImageMapper
+{
+    /**
+     * 通过对象查询相关图片列表
+     *
+     * @param cmRelatedImage 相关图片
+     * @return 相关图片集合
+     */
+    public List<CmRelatedImage> getCmRelatedImageList(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 通过Id查询相关图片对象
+     *
+     * @param id 相关图片主键
+     * @return 相关图片
+     */
+    public CmRelatedImage getCmRelatedImageById(String id);
+
+    /**
+     * 通过对象查询相关图片对象
+     *
+     * @param cmRelatedImage 相关图片
+     * @return 相关图片
+     */
+    public CmRelatedImage getByCmRelatedImage(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 通过对象查询相关图片Id
+     *
+     * @param cmRelatedImage 相关图片
+     * @return String
+     */
+    public String getById(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 通过对象查询相关图片Ids
+     *
+     * @param cmRelatedImage 相关图片
+     * @return List<String>
+     */
+    public List<String> getByIds(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 通过对象查询相关图片记录总数
+     *
+     * @param cmRelatedImage 相关图片
+     * @return 相关图片Integer
+     */
+    public int getCmRelatedImageCount(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 新增相关图片
+     *
+     * @param cmRelatedImage 相关图片
+     * @return 结果
+     */
+    public int addCmRelatedImage(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 修改相关图片
+     *
+     * @param cmRelatedImage 相关图片
+     * @return 结果
+     */
+    public int updateCmRelatedImage(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 删除相关图片
+     *
+     * @param id 相关图片主键
+     * @return 结果
+     */
+    public int delCmRelatedImageById(String id);
+
+    /**
+     * 批量删除相关图片
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmRelatedImage(CmRelatedImage cmRelatedImage);
+
+    /**
+     * 批量删除相关图片
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmRelatedImageByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除相关图片
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmRelatedImageByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 116 - 0
src/main/java/com/caimei365/commodity/mapper/CmReportingClubMapper.java

@@ -0,0 +1,116 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmReportingClub;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 机构报备Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Mapper
+public interface CmReportingClubMapper
+{
+    /**
+     * 通过对象查询机构报备列表
+     *
+     * @param cmReportingClub 机构报备
+     * @return 机构报备集合
+     */
+    public List<CmReportingClub> getCmReportingClubList(CmReportingClub cmReportingClub);
+
+    /**
+     * 通过Id查询机构报备对象
+     *
+     * @param id 机构报备主键
+     * @return 机构报备
+     */
+    public CmReportingClub getCmReportingClubById(String id);
+
+    /**
+     * 通过对象查询机构报备对象
+     *
+     * @param cmReportingClub 机构报备
+     * @return 机构报备
+     */
+    public CmReportingClub getByCmReportingClub(CmReportingClub cmReportingClub);
+
+    /**
+     * 通过对象查询机构报备Id
+     *
+     * @param cmReportingClub 机构报备
+     * @return String
+     */
+    public String getById(CmReportingClub cmReportingClub);
+
+
+    /**
+     * 通过对象查询机构报备Ids
+     *
+     * @param cmReportingClub 机构报备
+     * @return List<String>
+     */
+    public List<String> getByIds(CmReportingClub cmReportingClub);
+
+    /**
+     * 通过对象查询机构报备记录总数
+     *
+     * @param cmReportingClub 机构报备
+     * @return 机构报备Integer
+     */
+    public int getCmReportingClubCount(CmReportingClub cmReportingClub);
+
+    int findUserByMobile(@Param("mobile") String mobile, @Param("oldUserId") Integer oldUserId, @Param("userIdentity") Integer userIdentity);
+
+    /**
+     * 新增机构报备
+     *
+     * @param cmReportingClub 机构报备
+     * @return 结果
+     */
+    public int addCmReportingClub(CmReportingClub cmReportingClub);
+
+    /**
+     * 修改机构报备
+     *
+     * @param cmReportingClub 机构报备
+     * @return 结果
+     */
+    public int updateCmReportingClub(CmReportingClub cmReportingClub);
+
+    /**
+     * 删除机构报备
+     *
+     * @param id 机构报备主键
+     * @return 结果
+     */
+    public int delCmReportingClubById(String id);
+
+    /**
+     * 批量删除机构报备
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmReportingClub(CmReportingClub cmReportingClub);
+
+    /**
+     * 批量删除机构报备
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmReportingClubByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除机构报备
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmReportingClubByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 145 - 0
src/main/java/com/caimei365/commodity/mapper/CmReportingMemberMapper.java

@@ -0,0 +1,145 @@
+package com.caimei365.commodity.mapper;
+
+import com.caimei365.commodity.model.po.CmDistribution;
+import com.caimei365.commodity.model.po.CmReportingMember;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 分销报备成员Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Mapper
+public interface CmReportingMemberMapper
+{
+    /**
+     * 通过对象查询分销报备成员列表
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return 分销报备成员集合
+     */
+    public List<CmReportingMember> getCmReportingMemberList(CmReportingMember cmReportingMember);
+    /**
+     * 通过对象查询分销报备成员列表
+     *
+     * @param cmDistribution 分销报备成员
+     * @return 分销报备成员集合
+     */
+    public List<CmReportingMember> getCmDistributionMemberList(@Param("cmDistribution")CmDistribution cmDistribution,@Param("clubName") String clubName,@Param("settleStatus") Integer settleStatus,@Param("payWay") Integer payWay,@Param("splitSettleStatus") Integer splitSettleStatus,@Param("shopOrderNo") String shopOrderNo,@Param("startTime") String startTime,@Param("endTime") String endTime);
+
+    /**
+     * 通过Id查询分销报备成员对象
+     *
+     * @param id 分销报备成员主键
+     * @return 分销报备成员
+     */
+    public CmReportingMember getCmReportingMemberById(String id);
+
+    /**
+     * 通过对象查询分销报备成员对象
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return 分销报备成员
+     */
+    public CmReportingMember getByCmReportingMember(CmReportingMember cmReportingMember);
+
+    /**
+     * 通过对象查询分销报备成员Id
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return String
+     */
+    public String getById(CmReportingMember cmReportingMember);
+
+    /**
+     * 通过对象查询分销报备成员Ids
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return List<String>
+     */
+    public List<String> getByIds(CmReportingMember cmReportingMember);
+
+    /**
+     * 通过对象查询分销报备成员记录总数
+     */
+    public Integer getCount(CmReportingMember cmReportingMember);
+
+    /**
+     * 通过对象查询分销报备成员记录总数
+     *
+     * @return 分销报备成员Integer
+     */
+    public  Integer getCmReportingMemberCount(@Param("distributionId") String distributionId,@Param("parentId") Integer parentId,@Param("linkMan") String linkMan,@Param("mobile") String mobile,@Param("settleStatus") Integer settleStatus);
+
+    /**
+     * 通过对象查询分销报备佣金
+     *
+     * @return 分销报备成员Integer
+     */
+    public  BigDecimal getCmReportingMemberCommission(@Param("distributionId") String distributionId, @Param("parentId") Integer parentId, @Param("linkMan") String linkMan, @Param("mobile") String mobile, @Param("settleStatus") Integer settleStatus);
+    /**
+     * 通过对象查询分销订单佣金
+     *
+     * @return 分销报备成员Integer
+     */
+    public  BigDecimal getCmReportingMemberSplitCommission(@Param("distributionId") String distributionId, @Param("parentId") Integer parentId, @Param("linkMan") String linkMan, @Param("mobile") String mobile, @Param("splitSettleStatus") Integer settleStatus,@Param("payWay") Integer payWay,@Param("orderID") Integer orderID);
+    /**
+     * 通过对象查询分销订单记录总数
+     *
+     * @return 分销报备成员Integer
+     */
+    public  Integer getCmReportingMemberSplitCount(@Param("distributionId") String distributionId, @Param("parentId") Integer parentId, @Param("linkMan") String linkMan, @Param("mobile") String mobile, @Param("splitSettleStatus") Integer settleStatus,@Param("payWay") Integer payWay);
+
+    /**
+     * 新增分销报备成员
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return 结果
+     */
+    public int addCmReportingMember(CmReportingMember cmReportingMember);
+
+    /**
+     * 修改分销报备成员
+     *
+     * @param cmReportingMember 分销报备成员
+     * @return 结果
+     */
+    public int updateCmReportingMember(CmReportingMember cmReportingMember);
+
+    /**
+     * 删除分销报备成员
+     *
+     * @param id 分销报备成员主键
+     * @return 结果
+     */
+    public int delCmReportingMemberById(String id);
+
+    /**
+     * 批量删除分销报备成员
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmReportingMember(CmReportingMember cmReportingMember);
+
+    /**
+     * 批量删除分销报备成员
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmReportingMemberByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除分销报备成员
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmReportingMemberByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 11 - 0
src/main/java/com/caimei365/commodity/mapper/PriceMapper.java

@@ -25,6 +25,10 @@ public interface PriceMapper {
      */
     PriceVo getDetailPrice(Integer productId);
 
+    /**
+     * 根据商品id查找价格
+     */
+    PriceVo getDistributionDetailPrice(Integer productId);
     /**
      * 采美sku最低价
      * @param productId
@@ -118,6 +122,13 @@ public interface PriceMapper {
      */
     List<Sku> findSkus(Integer productId);
 
+    /**
+     * 分销人员skus
+     * @param productId
+     * @return
+     */
+    List<Sku> findDistributionSkus(Integer productId);
+
     /**
      * skus
      * @param productId

+ 221 - 0
src/main/java/com/caimei365/commodity/model/po/CmDistribution.java

@@ -0,0 +1,221 @@
+package com.caimei365.commodity.model.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 对象 cm_distribution
+ *
+ * @author Kaick
+ * @date 2023-09-15
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmDistribution")
+public class CmDistribution  implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 用户id */
+    private Integer userId;
+
+    /** 名称 */
+    private String name;
+
+    /** 联系人 */
+    private String linkMan;
+    /** 手机号 */
+    private String mobile;
+    /** 密码 */
+    private String password;
+
+    /** 公司名称 */
+    private String corporateName;
+
+    /** 分账号 */
+    private String splitCode;
+
+    /** 所属银行 */
+    private String bankName;
+
+    /** 银行卡号 */
+    private String bankAccount;
+
+    /** 状态:90上线,91下线 */
+    private Integer status;
+
+    /** 分销二维码 */
+    private String qrCode;
+
+    /** 头像 */
+    private String image;
+    /** 父级团队Id:0表示团队 */
+    private Integer parentId;
+
+    /** 父级团队Id集合 */
+    private String parentIds;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date addTime;
+
+    /** 删除状态 0正常,其他删除 */
+    private String delFlag;
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLinkMan() {
+        return linkMan;
+    }
+
+    public void setLinkMan(String linkMan) {
+        this.linkMan = linkMan;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getCorporateName() {
+        return corporateName;
+    }
+
+    public void setCorporateName(String corporateName) {
+        this.corporateName = corporateName;
+    }
+
+    public String getSplitCode() {
+        return splitCode;
+    }
+
+    public void setSplitCode(String splitCode) {
+        this.splitCode = splitCode;
+    }
+
+    public String getBankName() {
+        return bankName;
+    }
+
+    public void setBankName(String bankName) {
+        this.bankName = bankName;
+    }
+
+    public String getBankAccount() {
+        return bankAccount;
+    }
+
+    public void setBankAccount(String bankAccount) {
+        this.bankAccount = bankAccount;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getQrCode() {
+        return qrCode;
+    }
+
+    public void setQrCode(String qrCode) {
+        this.qrCode = qrCode;
+    }
+
+    public Integer getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Integer parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getParentIds() {
+        return parentIds;
+    }
+
+    public void setParentIds(String parentIds) {
+        this.parentIds = parentIds;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+}
+

+ 213 - 0
src/main/java/com/caimei365/commodity/model/po/CmDistributionProduct.java

@@ -0,0 +1,213 @@
+package com.caimei365.commodity.model.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 对象 cm_distribution_product
+ *
+ * @author Kaick
+ * @date 2023-09-18
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmDistributionProduct")
+public class CmDistributionProduct  implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String id;
+
+    /** 对应采美商品id */
+    private Integer productId;
+
+    /** 上架状态:1上架,2下架 */
+    private String validFlag;
+
+    /** 是否含税 0不含税,1含税 */
+    private String includedTax;
+
+    /** 发票类型(基于是否含税基础) 1增值税专用发票,2增值税普通发票, 3不能开票 */
+    private String invoiceType;
+
+    /** 机构税率 :增值税默认13%,普通票6%取值范围[0-100] */
+    private BigDecimal clubTaxPoint;
+
+    /** 供应商税率:增值专用发票默认13%,增值税普通发票6%取值范围[0-100] */
+    private BigDecimal shopTaxPoint;
+
+    /** 报备佣金 */
+    private BigDecimal commission;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date addTime;
+
+
+
+    /** 团队Id */
+    private Integer distributionId;
+
+    /** 商品名称 */
+    private String name;
+    /** 供应商Id */
+    private String shopID;
+    /** 供应商名称 */
+    private String shopName;
+    /** mainImage */
+    private String mainImage;
+
+
+
+    /** skuId */
+    private String skuId;
+    /** 机构价格(同为二手商品的交易价) */
+    private BigDecimal price;
+
+    /** skus */
+    private List<CmDistributionSku> skus;
+
+    public Integer getDistributionId() {
+        return distributionId;
+    }
+
+    public void setDistributionId(Integer distributionId) {
+        this.distributionId = distributionId;
+    }
+
+    public List<CmDistributionSku> getSkus() {
+        return skus;
+    }
+
+    public void setSkus(List<CmDistributionSku> skus) {
+        this.skus = skus;
+    }
+
+    public String getSkuId() {
+        return skuId;
+    }
+
+    public void setSkuId(String skuId) {
+        this.skuId = skuId;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getShopID() {
+        return shopID;
+    }
+
+    public void setShopID(String shopID) {
+        this.shopID = shopID;
+    }
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    public String getMainImage() {
+        return mainImage;
+    }
+
+    public void setMainImage(String mainImage) {
+        this.mainImage = mainImage;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Integer productId) {
+        this.productId = productId;
+    }
+
+    public String getValidFlag() {
+        return validFlag;
+    }
+
+    public void setValidFlag(String validFlag) {
+        this.validFlag = validFlag;
+    }
+
+    public String getIncludedTax() {
+        return includedTax;
+    }
+
+    public void setIncludedTax(String includedTax) {
+        this.includedTax = includedTax;
+    }
+
+    public String getInvoiceType() {
+        return invoiceType;
+    }
+
+    public void setInvoiceType(String invoiceType) {
+        this.invoiceType = invoiceType;
+    }
+
+    public BigDecimal getClubTaxPoint() {
+        return clubTaxPoint;
+    }
+
+    public void setClubTaxPoint(BigDecimal clubTaxPoint) {
+        this.clubTaxPoint = clubTaxPoint;
+    }
+
+    public BigDecimal getShopTaxPoint() {
+        return shopTaxPoint;
+    }
+
+    public void setShopTaxPoint(BigDecimal shopTaxPoint) {
+        this.shopTaxPoint = shopTaxPoint;
+    }
+
+    public BigDecimal getCommission() {
+        return commission;
+    }
+
+    public void setCommission(BigDecimal commission) {
+        this.commission = commission;
+    }
+
+    public Date getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(Date addTime) {
+        this.addTime = addTime;
+    }
+}

+ 140 - 0
src/main/java/com/caimei365/commodity/model/po/CmDistributionSku.java

@@ -0,0 +1,140 @@
+package com.caimei365.commodity.model.po;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 对象 cm_distribution_sku
+ *
+ * @author Kaick
+ * @date 2023-09-18
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmDistributionSku")
+public class CmDistributionSku  implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** skuId */
+    private String skuId;
+
+    /** 商品Id */
+    private Integer productId;
+
+    /** 机构价格(同为二手商品的交易价) */
+    private BigDecimal price;
+
+    /** 分账供应商成本比例 */
+    private Integer shopPercent;
+
+    /** 分账组织佣金比例 */
+    private Integer organizePercent;
+
+    /** 分账采美佣金比例 */
+    private Integer cmPercent;
+
+    /** 成本类型:1固定成本 2比例成本 */
+    private String costCheckFlag;
+    /** 规格 */
+    private String unit;
+
+    /** 成本价 */
+    private BigDecimal costPrice;
+    /** 采美成本 */
+    private BigDecimal cmCostPrice;
+    /** 集团成本 */
+    private BigDecimal organizeCostPrice;
+
+    public BigDecimal getCostPrice() {
+        return costPrice;
+    }
+
+    public void setCostPrice(BigDecimal costPrice) {
+        this.costPrice = costPrice;
+    }
+
+    public BigDecimal getCmCostPrice() {
+        return cmCostPrice;
+    }
+
+    public void setCmCostPrice(BigDecimal cmCostPrice) {
+        this.cmCostPrice = cmCostPrice;
+    }
+
+    public BigDecimal getOrganizeCostPrice() {
+        return organizeCostPrice;
+    }
+
+    public void setOrganizeCostPrice(BigDecimal organizeCostPrice) {
+        this.organizeCostPrice = organizeCostPrice;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getSkuId() {
+        return skuId;
+    }
+
+    public void setSkuId(String skuId) {
+        this.skuId = skuId;
+    }
+
+    public Integer getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Integer productId) {
+        this.productId = productId;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public Integer getShopPercent() {
+        return shopPercent;
+    }
+
+    public void setShopPercent(Integer shopPercent) {
+        this.shopPercent = shopPercent;
+    }
+
+    public Integer getOrganizePercent() {
+        return organizePercent;
+    }
+
+    public void setOrganizePercent(Integer organizePercent) {
+        this.organizePercent = organizePercent;
+    }
+
+    public Integer getCmPercent() {
+        return cmPercent;
+    }
+
+    public void setCmPercent(Integer cmPercent) {
+        this.cmPercent = cmPercent;
+    }
+
+    public String getCostCheckFlag() {
+        return costCheckFlag;
+    }
+
+    public void setCostCheckFlag(String costCheckFlag) {
+        this.costCheckFlag = costCheckFlag;
+    }
+}

+ 117 - 0
src/main/java/com/caimei365/commodity/model/po/CmDistributionTeamProduct.java

@@ -0,0 +1,117 @@
+package com.caimei365.commodity.model.po;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 对象 cm_distribution_team_product
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmDistributionTeamProduct")
+public class CmDistributionTeamProduct  implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** cm_distribution表id */
+    private Integer distributionId;
+
+    /** cm_distribution_product表商品id */
+    private Integer productId;
+
+    /** 上架状态:1上架,2下架 */
+    private String validFlag;
+
+    /** 商品名称 */
+    private String name;
+    /** 供应商Id */
+    private String shopID;
+    /** 供应商名称 */
+    private String shopName;
+    /** mainImage */
+    private String mainImage;
+    private BigDecimal price;
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getShopID() {
+        return shopID;
+    }
+
+    public void setShopID(String shopID) {
+        this.shopID = shopID;
+    }
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    public String getMainImage() {
+        return mainImage;
+    }
+
+    public void setMainImage(String mainImage) {
+        this.mainImage = mainImage;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getDistributionId() {
+        return distributionId;
+    }
+
+    public void setDistributionId(Integer distributionId) {
+        this.distributionId = distributionId;
+    }
+
+    public Integer getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Integer productId) {
+        this.productId = productId;
+    }
+
+    public String getValidFlag() {
+        return validFlag;
+    }
+
+    public void setValidFlag(String validFlag) {
+        this.validFlag = validFlag;
+    }
+}
+

+ 103 - 0
src/main/java/com/caimei365/commodity/model/po/CmRelatedImage.java

@@ -0,0 +1,103 @@
+package com.caimei365.commodity.model.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 相关图片对象 cm_related_image
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmRelatedImage")
+public class CmRelatedImage implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 分类:1分销报备凭证图片(cm_reporting_member) */
+    private String type;
+
+    /** 归属者Id(type字段表Id) */
+    private String authorId;
+
+    /** 图片 */
+    private String image;
+
+    /** 删除状态 0正常,其他删除 */
+    private Integer delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getAuthorId() {
+        return authorId;
+    }
+
+    public void setAuthorId(String authorId) {
+        this.authorId = authorId;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public Integer getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
+

+ 326 - 0
src/main/java/com/caimei365/commodity/model/po/CmReportingClub.java

@@ -0,0 +1,326 @@
+package com.caimei365.commodity.model.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 机构报备对象 cm_reporting_club
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmReportingClub")
+public class CmReportingClub implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 机构名称 */
+    private String clubName;
+
+    /** 联系人 */
+    private String linkMan;
+
+    /** 手机号 */
+    private String mobile;
+
+    /** 商品id */
+    private Integer productId;
+
+    /** 商品名称 */
+    private String productName;
+
+    /** 商品图片 */
+    private String productImage;
+
+    /** 备注 */
+    private String remarks;
+    /** 订单id */
+    private Integer orderId;
+    /** 订单状态 :1已成交,0未成交 */
+    private Integer orderStatus;
+
+    /** 锁定状态 :1锁定,0未锁定 */
+    private Integer lockStatus;
+
+    /** 锁定时间 */
+    private Date lockTime;
+
+    /** 分销报备人数量 */
+    private Integer distributionCount;
+
+    /** 分销报备锁定人id */
+    private Integer distributionId;
+
+    /** 分销报备锁定人id */
+    private String distributionName;
+
+    /** 删除状态 0正常,其他删除 */
+    private String delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 商品总佣金 */
+    private BigDecimal commission;
+
+    /** 结算状态: 1已完结 ,0未完结 */
+    private Integer settleStatus;
+
+    /** 结算时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date settleTime;
+
+    /** 分账结算状态: 0待确认 1待手动分账 ,2待手动结算,3已结算 */
+    private Integer splitSettleStatus;
+
+    /** 分账结算时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date splitSettleTime;
+
+    /** 子订单编号 */
+    private String shopOrderNo;
+
+    /** 下单时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date orderTime;
+
+    /** 报备成员 */
+    private CmReportingMember cmReportingMember;
+
+    /** 商品详情 */
+    private CmDistributionProduct distributionProduct;
+
+    public CmDistributionProduct getDistributionProduct() {
+        return distributionProduct;
+    }
+
+    public String getShopOrderNo() {
+        return shopOrderNo;
+    }
+
+    public Integer getSplitSettleStatus() {
+        return splitSettleStatus;
+    }
+
+    public void setSplitSettleStatus(Integer splitSettleStatus) {
+        this.splitSettleStatus = splitSettleStatus;
+    }
+
+    public Date getSplitSettleTime() {
+        return splitSettleTime;
+    }
+
+    public void setSplitSettleTime(Date splitSettleTime) {
+        this.splitSettleTime = splitSettleTime;
+    }
+
+    public void setShopOrderNo(String shopOrderNo) {
+        this.shopOrderNo = shopOrderNo;
+    }
+
+    public Date getOrderTime() {
+        return orderTime;
+    }
+
+    public void setOrderTime(Date orderTime) {
+        this.orderTime = orderTime;
+    }
+
+    public void setDistributionProduct(CmDistributionProduct distributionProduct) {
+        this.distributionProduct = distributionProduct;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getCommission() {
+        return commission;
+    }
+
+    public void setCommission(BigDecimal commission) {
+        this.commission = commission;
+    }
+
+    public Integer getSettleStatus() {
+        return settleStatus;
+    }
+
+    public void setSettleStatus(Integer settleStatus) {
+        this.settleStatus = settleStatus;
+    }
+
+    public Date getSettleTime() {
+        return settleTime;
+    }
+
+    public void setSettleTime(Date settleTime) {
+        this.settleTime = settleTime;
+    }
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    public String getProductImage() {
+        return productImage;
+    }
+
+    public void setProductImage(String productImage) {
+        this.productImage = productImage;
+    }
+
+    public Date getLockTime() {
+        return lockTime;
+    }
+
+    public void setLockTime(Date lockTime) {
+        this.lockTime = lockTime;
+    }
+
+    public Integer getDistributionCount() {
+        return distributionCount;
+    }
+
+    public void setDistributionCount(Integer distributionCount) {
+        this.distributionCount = distributionCount;
+    }
+
+    public String getDistributionName() {
+        return distributionName;
+    }
+
+    public void setDistributionName(String distributionName) {
+        this.distributionName = distributionName;
+    }
+
+    public CmReportingMember getCmReportingMember() {
+        return cmReportingMember;
+    }
+
+    public void setCmReportingMember(CmReportingMember cmReportingMember) {
+        this.cmReportingMember = cmReportingMember;
+    }
+
+
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getClubName() {
+        return clubName;
+    }
+
+    public void setClubName(String clubName) {
+        this.clubName = clubName;
+    }
+
+    public String getLinkMan() {
+        return linkMan;
+    }
+
+    public void setLinkMan(String linkMan) {
+        this.linkMan = linkMan;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Integer getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Integer productId) {
+        this.productId = productId;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public Integer getOrderStatus() {
+        return orderStatus;
+    }
+
+    public void setOrderStatus(Integer orderStatus) {
+        this.orderStatus = orderStatus;
+    }
+
+    public Integer getLockStatus() {
+        return lockStatus;
+    }
+
+    public void setLockStatus(Integer lockStatus) {
+        this.lockStatus = lockStatus;
+    }
+
+    public Integer getDistributionId() {
+        return distributionId;
+    }
+
+    public void setDistributionId(Integer distributionId) {
+        this.distributionId = distributionId;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
+

+ 235 - 0
src/main/java/com/caimei365/commodity/model/po/CmReportingMember.java

@@ -0,0 +1,235 @@
+package com.caimei365.commodity.model.po;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 分销报备成员对象 cm_reporting_member
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Accessors(fluent  = true )
+@Data
+@Alias("CmReportingMember")
+public class CmReportingMember implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 分销报备人id */
+    private Integer distributionId;
+
+    /** 报备机构id */
+    private Integer clubReportingId;
+
+    /** 审核人用户id */
+    private Integer auditBy;
+
+    /** 审核人用户名称 */
+    private Integer auditName;
+
+    /** 审核状态:1待审核,2审核通过,3审核失败 */
+    private String auditStatus;
+
+    /** 审核备注 */
+    private String auditText;
+
+    /** 审核时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditTime;
+
+    /**备注 */
+    private String remarks;
+
+    /** 删除状态 0正常,其他删除 */
+    private String delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+
+    /** 商品佣金 */
+    private BigDecimal commission;
+
+    /** 分账佣金 */
+    private BigDecimal splitCommission;
+
+    /** 结算状态: 1已完结 ,0未完结 */
+    private Integer settleStatus;
+
+    /** 结算时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date settleTime;
+    /** 报备人详情 */
+    private CmDistribution cmDistribution;
+    /** 报备机构详情 */
+    private CmReportingClub cmReportingClub;
+    /** 凭证图片集合 */
+    private List<CmRelatedImage> cmRelatedImageList;
+
+    public BigDecimal getSplitCommission() {
+        return splitCommission;
+    }
+
+    public void setSplitCommission(BigDecimal splitCommission) {
+        this.splitCommission = splitCommission;
+    }
+
+    public CmReportingClub getCmReportingClub() {
+        return cmReportingClub;
+    }
+
+    public void setCmReportingClub(CmReportingClub cmReportingClub) {
+        this.cmReportingClub = cmReportingClub;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public BigDecimal getCommission() {
+        return commission;
+    }
+
+    public void setCommission(BigDecimal commission) {
+        this.commission = commission;
+    }
+
+    public Integer getSettleStatus() {
+        return settleStatus;
+    }
+
+    public void setSettleStatus(Integer settleStatus) {
+        this.settleStatus = settleStatus;
+    }
+
+    public Date getSettleTime() {
+        return settleTime;
+    }
+
+    public void setSettleTime(Date settleTime) {
+        this.settleTime = settleTime;
+    }
+
+    public Integer getAuditBy() {
+        return auditBy;
+    }
+
+    public void setAuditBy(Integer auditBy) {
+        this.auditBy = auditBy;
+    }
+
+    public Integer getAuditName() {
+        return auditName;
+    }
+
+    public void setAuditName(Integer auditName) {
+        this.auditName = auditName;
+    }
+
+    public CmDistribution getCmDistribution() {
+        return cmDistribution;
+    }
+
+    public void setCmDistribution(CmDistribution cmDistribution) {
+        this.cmDistribution = cmDistribution;
+    }
+
+    public List<CmRelatedImage> getCmRelatedImageList() {
+        return cmRelatedImageList;
+    }
+
+    public void setCmRelatedImageList(List<CmRelatedImage> cmRelatedImageList) {
+        this.cmRelatedImageList = cmRelatedImageList;
+    }
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getDistributionId() {
+        return distributionId;
+    }
+
+    public void setDistributionId(Integer distributionId) {
+        this.distributionId = distributionId;
+    }
+
+    public Integer getClubReportingId() {
+        return clubReportingId;
+    }
+
+    public void setClubReportingId(Integer clubReportingId) {
+        this.clubReportingId = clubReportingId;
+    }
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public String getAuditText() {
+        return auditText;
+    }
+
+    public void setAuditText(String auditText) {
+        this.auditText = auditText;
+    }
+
+    public Date getAuditTime() {
+        return auditTime;
+    }
+
+    public void setAuditTime(Date auditTime) {
+        this.auditTime = auditTime;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}
+

+ 72 - 0
src/main/java/com/caimei365/commodity/model/vo/CmDistributionProductVO.java

@@ -0,0 +1,72 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.CmDistributionProduct;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 对象 cm_distribution_product
+ *
+ * @author Kaick
+ * @date 2023-09-18
+ */
+@Data
+@Alias("CmDistributionProductVO")
+public class CmDistributionProductVO  implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String id;
+
+    /** 对应采美商品id */
+    private Integer productId;
+
+    /** 商品名称 */
+    private String name;
+    /** 供应商Id */
+    private String shopID;
+    /** 供应商名称 */
+    private String shopName;
+    /** mainImage */
+    private String mainImage;
+    /** skuId */
+    private String skuId;
+    /** 机构价格(同为二手商品的交易价) */
+    private BigDecimal price;
+
+    /** 上架状态:1上架,2下架 */
+    private String validFlag;
+
+    public static List<CmDistributionProductVO> setValues(List<CmDistributionProduct> cmDistributionProductList) {
+        List<CmDistributionProductVO> cmDistributionProductVOList = new ArrayList<>();
+        if(null!=cmDistributionProductList) {
+            cmDistributionProductList.forEach(cmDistributionProduct -> {
+                cmDistributionProductVOList.add(setValue(cmDistributionProduct));
+            });
+        }
+        return cmDistributionProductVOList;
+    }
+
+    public static CmDistributionProductVO setValue(CmDistributionProduct cmDistributionProduct) {
+
+        CmDistributionProductVO cmDistributionProductVO = new CmDistributionProductVO();
+        if(null!=cmDistributionProduct) {
+            cmDistributionProductVO.setId(cmDistributionProduct.getId());
+            cmDistributionProductVO.setProductId(cmDistributionProduct.getProductId());
+            cmDistributionProductVO.setName(cmDistributionProduct.getName());
+            cmDistributionProductVO.setMainImage(cmDistributionProduct.getMainImage());
+            cmDistributionProductVO.setShopID(cmDistributionProduct.getShopID());
+            cmDistributionProductVO.setShopName(cmDistributionProduct.getShopName());
+            cmDistributionProductVO.setSkuId(cmDistributionProduct.getSkuId());
+            cmDistributionProductVO.setPrice(cmDistributionProduct.getPrice());
+            cmDistributionProductVO.setValidFlag(cmDistributionProduct.getValidFlag());
+        }
+        return cmDistributionProductVO;
+    }
+}

+ 104 - 0
src/main/java/com/caimei365/commodity/model/vo/CmDistributionVO.java

@@ -0,0 +1,104 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.CmDistribution;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * distribution对象 cm_distribution
+ *
+ * @author Kaick
+ * @date 2023-09-25
+ */
+@Data
+@Alias("CmDistributionVO")
+public class CmDistributionVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 用户id
+     */
+    private Integer userId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 联系人
+     */
+    private String linkMan;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 状态:90上线,91下线
+     */
+    private Integer status;
+
+    /**
+     * 分销二维码
+     */
+    private String qrCode;
+
+    /**
+     * 头像
+     */
+    private String image;
+
+    /**
+     * 父级团队Id:0表示团队
+     */
+    private Integer parentId;
+
+    /**
+     * 订单数量
+     */
+    private Integer orderCount;
+
+    /**
+     * 佣金
+     */
+    private BigDecimal commission;
+
+
+    public static List<CmDistributionVO> setValues(List<CmDistribution> cmDistributionList) {
+        List<CmDistributionVO> cmDistributionVOList = new ArrayList<>();
+        if(null!=cmDistributionList) {
+            cmDistributionList.forEach(cmDistribution -> {
+                cmDistributionVOList.add(setValue(cmDistribution));
+            });
+        }
+        return cmDistributionVOList;
+    }
+
+    public static CmDistributionVO setValue(CmDistribution cmDistribution) {
+            CmDistributionVO cmDistributionVO = new CmDistributionVO();
+            if(null!=cmDistribution) {
+                cmDistributionVO.setId(cmDistribution.getId());
+                cmDistributionVO.setUserId(cmDistribution.getUserId());
+                cmDistributionVO.setName(cmDistribution.getName());
+                cmDistributionVO.setLinkMan(cmDistribution.getLinkMan());
+                cmDistributionVO.setMobile(cmDistribution.getMobile());
+                cmDistributionVO.setStatus(cmDistribution.getStatus());
+                cmDistributionVO.setQrCode(cmDistribution.getQrCode());
+                cmDistributionVO.setImage(cmDistribution.getImage());
+                cmDistributionVO.setParentId(cmDistribution.getParentId());
+            }
+        return cmDistributionVO;
+    }
+}

+ 62 - 0
src/main/java/com/caimei365/commodity/model/vo/CmRelatedImageVO.java

@@ -0,0 +1,62 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.CmRelatedImage;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 相关图片对象 cm_related_image
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Data
+@Alias("CmRelatedImageVO")
+public class CmRelatedImageVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 分类:1分销报备凭证图片(cm_reporting_member)
+     */
+    private String type;
+
+    /**
+     * 归属者Id(type字段表Id)
+     */
+    private String authorId;
+    /**
+     * 图片
+     */
+    private String image;
+
+    public static List<CmRelatedImageVO> setValues(List<CmRelatedImage> cmRelatedImageList) {
+        List<CmRelatedImageVO> cmRelatedImageVOList = new ArrayList<>();
+        if(null!=cmRelatedImageList) {
+            cmRelatedImageList.forEach(cmRelatedImage -> {
+                cmRelatedImageVOList.add(setValue(cmRelatedImage));
+            });
+        }
+        return cmRelatedImageVOList;
+    }
+
+    public static CmRelatedImageVO setValue(CmRelatedImage cmRelatedImage) {
+        CmRelatedImageVO cmRelatedImageVO = new CmRelatedImageVO();
+        if (null != cmRelatedImage) {
+            cmRelatedImageVO.setId(cmRelatedImage.getId());
+            cmRelatedImageVO.setType(cmRelatedImage.getType());
+            cmRelatedImageVO.setAuthorId(cmRelatedImage.getAuthorId());
+            cmRelatedImageVO.setImage(cmRelatedImage.getImage());
+        }
+        return cmRelatedImageVO;
+    }
+}
+

+ 158 - 0
src/main/java/com/caimei365/commodity/model/vo/CmReportingClubVO.java

@@ -0,0 +1,158 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.CmReportingClub;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 机构报备对象 cm_reporting_club
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Data
+@Alias("CmReportingClubVO")
+public class CmReportingClubVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 机构名称
+     */
+    private String clubName;
+
+    /**
+     * 联系人
+     */
+    private String linkMan;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 商品id
+     */
+    private Integer productId;
+
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    /**
+     * 商品图片
+     */
+    private String productImage;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 订单id
+     */
+    private Integer orderId;
+    /**
+     * 订单状态 :1已成交,0未成交
+     */
+    private Integer orderStatus;
+
+    /**
+     * 锁定状态 :1锁定,0未锁定
+     */
+    private Integer lockStatus;
+
+
+    /**
+     * 分销报备人数量
+     */
+    private Integer distributionCount;
+
+    /**
+     * 分销报备锁定人id
+     */
+    private Integer distributionId;
+
+    /**
+     * 分销报备锁定人id
+     */
+    private String distributionName;
+
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+     * 商品总佣金
+     */
+    private BigDecimal commission;
+
+    /**
+     * 结算状态: 1已完结 ,0未完结
+     */
+    private Integer settleStatus;
+
+    /** 子订单编号 */
+    private String shopOrderNo;
+
+    /** 下单时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date orderTime;
+    /**
+     * 报备成员
+     */
+    private CmDistributionProductVO distributionProduct;
+
+
+    public static List<CmReportingClubVO> setValues(List<CmReportingClub> cmReportingClubList) {
+        List<CmReportingClubVO> cmReportingClubVOList = new ArrayList<>();
+        if (null != cmReportingClubList) {
+            cmReportingClubList.forEach(cmReportingMember -> {
+                cmReportingClubVOList.add(setValue(cmReportingMember));
+            });
+        }
+        return cmReportingClubVOList;
+    }
+
+    public static CmReportingClubVO setValue(CmReportingClub cmReportingClub) {
+        CmReportingClubVO cmReportingClubVO = new CmReportingClubVO();
+        if (null != cmReportingClub) {
+            cmReportingClubVO.setId(cmReportingClub.getId());
+            cmReportingClubVO.setClubName(cmReportingClub.getClubName());
+            cmReportingClubVO.setLinkMan(cmReportingClub.getLinkMan());
+            cmReportingClubVO.setMobile(cmReportingClub.getMobile());
+            cmReportingClubVO.setProductId(cmReportingClub.getProductId());
+            cmReportingClubVO.setProductName(cmReportingClub.getProductName());
+            cmReportingClubVO.setProductImage(cmReportingClub.getProductImage());
+            cmReportingClubVO.setRemarks(cmReportingClub.getRemarks());
+            cmReportingClubVO.setOrderId(cmReportingClub.getOrderId());
+            cmReportingClubVO.setOrderStatus(cmReportingClub.getOrderStatus());
+            cmReportingClubVO.setLockStatus(cmReportingClub.getLockStatus());
+            cmReportingClubVO.setDistributionCount(cmReportingClub.getDistributionCount());
+            cmReportingClubVO.setDistributionId(cmReportingClub.getDistributionId());
+            cmReportingClubVO.setDistributionName(cmReportingClub.getDistributionName());
+            cmReportingClubVO.setCreateTime(cmReportingClub.getCreateTime());
+            cmReportingClubVO.setCommission(cmReportingClub.getCommission());
+            cmReportingClubVO.setSettleStatus(cmReportingClub.getSettleStatus());
+            cmReportingClubVO.setShopOrderNo(cmReportingClub.getShopOrderNo());
+            cmReportingClubVO.setOrderTime(cmReportingClub.getOrderTime());
+            cmReportingClubVO.setDistributionProduct(CmDistributionProductVO.setValue(cmReportingClub.getDistributionProduct()));
+        }
+        return cmReportingClubVO;
+    }
+
+}

+ 91 - 0
src/main/java/com/caimei365/commodity/model/vo/CmReportingMemberVO.java

@@ -0,0 +1,91 @@
+package com.caimei365.commodity.model.vo;
+
+import com.caimei365.commodity.model.po.CmReportingMember;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.ibatis.type.Alias;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 分销报备成员对象 cm_reporting_member
+ *
+ * @author Kaick
+ * @date 2023-09-20
+ */
+@Data
+@Alias("CmReportingMemberVO")
+public class CmReportingMemberVO implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private String id;
+
+    /** 分销报备人id */
+    private Integer distributionId;
+
+    /** 报备机构id */
+    private Integer clubReportingId;
+
+    /** 审核状态:1待审核,2审核通过,3审核失败 */
+    private String auditStatus;
+
+    /** 审核备注 */
+    private String auditText;
+    /**备注 */
+    private String remarks;
+    /** 添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /** 商品佣金 */
+    private BigDecimal commission;
+    /** 分账佣金 */
+    private BigDecimal splitCommission;
+    /** 结算状态: 1待确认,2待结算,3已结算 */
+    private Integer settleStatus;
+
+    /** 结算时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date settleTime;
+    /** 报备机构详情 */
+    private CmReportingClubVO cmReportingClub;
+    /** 凭证图片集合 */
+    private List<CmRelatedImageVO> cmRelatedImageList;
+
+    public static List<CmReportingMemberVO> setValues(List<CmReportingMember> cmReportingMemberList) {
+        List<CmReportingMemberVO> cmDistributionVOList = new ArrayList<>();
+        if(null!=cmReportingMemberList) {
+            cmReportingMemberList.forEach(cmReportingMember -> {
+                cmDistributionVOList.add(setValue(cmReportingMember));
+            });
+        }
+        return cmDistributionVOList;
+    }
+
+    public static CmReportingMemberVO setValue(CmReportingMember cmReportingMember) {
+
+        CmReportingMemberVO cmReportingMemberVO = new CmReportingMemberVO();
+        if(null!=cmReportingMember) {
+            cmReportingMemberVO.setId(cmReportingMember.getId());
+            cmReportingMemberVO.setDistributionId(cmReportingMember.getDistributionId());
+            cmReportingMemberVO.setClubReportingId(cmReportingMember.getClubReportingId());
+            cmReportingMemberVO.setAuditStatus(cmReportingMember.getAuditStatus());
+            cmReportingMemberVO.setAuditText(cmReportingMember.getAuditText());
+            cmReportingMemberVO.setRemarks(cmReportingMember.getRemarks());
+            cmReportingMemberVO.setCreateTime(cmReportingMember.getCreateTime());
+            cmReportingMemberVO.setCommission(cmReportingMember.getCommission());
+            cmReportingMemberVO.setSplitCommission(cmReportingMember.getSplitCommission());
+            cmReportingMemberVO.setSettleStatus(cmReportingMember.getSettleStatus());
+            cmReportingMemberVO.setSettleTime(cmReportingMember.getSettleTime());
+            cmReportingMemberVO.setCmReportingClub(CmReportingClubVO.setValue(cmReportingMember.getCmReportingClub()));
+            cmReportingMemberVO.setCmRelatedImageList(CmRelatedImageVO.setValues(cmReportingMember.getCmRelatedImageList()));
+        }
+        return cmReportingMemberVO;
+    }
+}
+

+ 82 - 0
src/main/java/com/caimei365/commodity/service/CmReportingClubService.java

@@ -0,0 +1,82 @@
+package com.caimei365.commodity.service;
+
+import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.po.CmDistribution;
+import com.caimei365.commodity.model.po.CmDistributionTeamProduct;
+import com.caimei365.commodity.model.po.CmReportingClub;
+import com.caimei365.commodity.model.po.CmReportingMember;
+import com.caimei365.commodity.model.vo.ArchiveVo;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 机构报备Service接口
+ *
+ * @author Kaick
+ * @date 2023-09-26
+ */
+public interface CmReportingClubService {
+    /**
+     * 通过对象查询机构报备列表
+     *
+     * @param cmReportingClub 机构报备
+     * @return 机构报备集合
+     */
+    public List<CmReportingMember> getCmReportingClubList(CmDistribution cmDistribution, String clubName, Integer settleStatus, Integer payWay, Integer splitSettleStatus, String shopOrderNo, String startTime, String entTime);
+
+    /**
+     * 功能描述: 分销团队商品列表
+     *
+     * @param cmDistribution
+     * @return [cmDistribution]
+     * @auther: Kaick
+     * @date: 2023/9/26 13:39
+     */
+
+    public List<CmDistributionTeamProduct> getCmDistributionTeamProductList(CmDistribution cmDistribution);
+
+    /**
+     * 查询分销商品资料列表
+     *
+     * @param productName 搜索关键词
+     * @return
+     */
+    List<ArchiveVo> getProductArchiveList(Integer id, String productName);
+
+    /**
+     * 通过Id查询机构报备
+     *
+     * @param id 机构报备主键
+     * @return 机构报备
+     */
+    public CmReportingMember getCmReportingMemberById(String id);
+
+    public CmDistribution getCmDistributionById(String id);
+
+    public CmReportingClub getCmReportingClubById(String id);
+
+    public List<CmDistribution> getCmDistributionList(CmDistribution cmDistribution);
+
+    Integer getCount(CmReportingMember cmReportingMember);
+
+    public Integer getCmReportingMemberCount(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus);
+
+    public BigDecimal getCmReportingMemberCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus);
+
+    public Integer getCmReportingMemberSplitCount(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay);
+
+    public BigDecimal getCmReportingMemberSplitCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay,Integer orderID);
+
+    public void updateCmReportingClub(CmReportingClub cmReportingClub);
+
+    public void updateCmReportingMember(CmReportingMember cmReportingMember);
+
+    /**
+     * 新增机构报备
+     */
+    public ResponseJson addCmReportingClub(CmReportingClub cmReportingClub);
+
+}
+
+

+ 224 - 0
src/main/java/com/caimei365/commodity/service/impl/CmReportingClubServiceImpl.java

@@ -0,0 +1,224 @@
+package com.caimei365.commodity.service.impl;
+
+import com.caimei365.commodity.mapper.*;
+import com.caimei365.commodity.model.ResponseJson;
+import com.caimei365.commodity.model.po.*;
+import com.caimei365.commodity.model.vo.ArchiveVo;
+import com.caimei365.commodity.service.CmReportingClubService;
+import com.caimei365.commodity.utils.MathUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 机构报备Service业务层处理
+ *
+ * @author Kaick
+ * @date 2023-09-26
+ */
+@Service
+public class CmReportingClubServiceImpl implements CmReportingClubService {
+    @Resource
+    private CmReportingClubMapper cmReportingClubMapper;
+    @Resource
+    private CmReportingMemberMapper cmReportingMemberMapper;
+    @Resource
+    private CmRelatedImageMapper cmRelatedImageMapper;
+    @Resource
+    private CmDistributionMapper cmDistributionMapper;
+    @Resource
+    private CmDistributionProductMapper cmDistributionProductMapper;
+
+    /**
+     * 通过对象查询机构报备列表
+     *
+     * @param cmDistribution 机构报备
+     * @return 机构报备
+     */
+    @Override
+    public List<CmReportingMember> getCmReportingClubList(CmDistribution cmDistribution, String clubName, Integer settleStatus, Integer payWay, Integer splitSettleStatus, String shopOrderNo, String startTime, String entTime) {
+        List<CmReportingMember> cmReportingMemberList = cmReportingMemberMapper.getCmDistributionMemberList(cmDistribution, clubName, settleStatus, payWay, splitSettleStatus, shopOrderNo, startTime, entTime);
+       if(cmReportingMemberList.size()>0){
+           cmReportingMemberList.forEach(s -> {
+               s.cmReportingClub(cmReportingClubMapper.getCmReportingClubById(String.valueOf(s.clubReportingId())));
+               s.cmReportingClub().distributionProduct(cmDistributionProductMapper.getByCmDistributionProduct(new CmDistributionProduct().productId(s.cmReportingClub().productId())));
+               s.cmReportingClub().distributionProduct().price(setDistributionProductPrice(s.cmReportingClub().productId()));
+           });
+       }
+
+        return cmReportingMemberList;
+    }
+
+    /**
+     * 通过对象查询分销团队商品列表
+     *
+     * @param cmDistribution 机构报备
+     * @return 机构报备
+     */
+    @Override
+    public List<CmDistributionTeamProduct> getCmDistributionTeamProductList(CmDistribution cmDistribution) {
+        List<CmDistributionTeamProduct> cmDistributionTeamProductList = cmDistributionProductMapper.getCmDistributionTeamProductList(new CmDistributionTeamProduct().distributionId(Integer.valueOf(cmDistribution.id())));
+        if(cmDistributionTeamProductList.size()>0) {
+            cmDistributionTeamProductList.forEach(s -> {
+                s.setPrice(setDistributionProductPrice(s.productId()));
+            });
+        }
+        return cmDistributionTeamProductList;
+    }
+
+    @Override
+    public List<ArchiveVo> getProductArchiveList(Integer id, String productName) {
+        return cmDistributionProductMapper.getProductArchiveList(id, productName);
+    }
+
+    @Override
+    public CmDistribution getCmDistributionById(String id) {
+        return cmDistributionMapper.getCmDistributionById(id);
+    }
+
+    @Override
+    public CmReportingClub getCmReportingClubById(String id) {
+        return cmReportingClubMapper.getCmReportingClubById(id);
+    }
+
+    @Override
+    public List<CmDistribution> getCmDistributionList(CmDistribution cmDistribution) {
+        return cmDistributionMapper.getCmDistributionList(cmDistribution);
+    }
+
+    @Override
+    public Integer getCount(CmReportingMember cmReportingMember) {
+        Integer cmReportingMemberCount = cmReportingMemberMapper.getCount(cmReportingMember);
+        return cmReportingMemberCount == null ? 0 : cmReportingMemberCount;
+    }
+
+    @Override
+    public Integer getCmReportingMemberCount(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus) {
+        Integer cmReportingMemberCount = cmReportingMemberMapper.getCmReportingMemberCount(distributionId, parentId, linkMan, mobile, settleStatus);
+        return cmReportingMemberCount == null ? 0 : cmReportingMemberCount;
+    }
+
+    @Override
+    public BigDecimal getCmReportingMemberCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus) {
+        BigDecimal cmReportingMemberCommission = cmReportingMemberMapper.getCmReportingMemberCommission(distributionId, parentId, linkMan, mobile, settleStatus);
+        return cmReportingMemberCommission == null ? new BigDecimal(0) : cmReportingMemberCommission;
+    }
+
+    @Override
+    public Integer getCmReportingMemberSplitCount(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay) {
+        Integer cmReportingMemberSplitCount = cmReportingMemberMapper.getCmReportingMemberSplitCount(distributionId, parentId, linkMan, mobile, settleStatus, payWay);
+        return cmReportingMemberSplitCount == null ? 0 : cmReportingMemberSplitCount;
+    }
+
+    @Override
+    public BigDecimal getCmReportingMemberSplitCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay,Integer orderID) {
+        BigDecimal cmReportingMemberSplitCommission = cmReportingMemberMapper.getCmReportingMemberSplitCommission(distributionId, parentId, linkMan, mobile, settleStatus, payWay,orderID);
+        return cmReportingMemberSplitCommission == null ? new BigDecimal(0) : cmReportingMemberSplitCommission;
+    }
+
+    /**
+     * 通过Id查询机构报备
+     *
+     * @param id 机构报备主键
+     * @return 机构报备
+     */
+    @Override
+    public CmReportingMember getCmReportingMemberById(String id) {
+        CmReportingMember cmReportingMemberById = cmReportingMemberMapper.getCmReportingMemberById(id);
+        if (null != cmReportingMemberById) {
+            cmReportingMemberById.cmReportingClub(cmReportingClubMapper.getCmReportingClubById(String.valueOf(cmReportingMemberById.clubReportingId())));
+            //机构订单已报备人数
+            Integer count = cmReportingMemberMapper.getCount(new CmReportingMember().clubReportingId(cmReportingMemberById.clubReportingId()).auditStatus("2"));
+            cmReportingMemberById.cmReportingClub().distributionCount(count == null ? 0 : count);
+            cmReportingMemberById.cmReportingClub().distributionProduct(cmDistributionProductMapper.getByCmDistributionProduct(new CmDistributionProduct().productId(cmReportingMemberById.cmReportingClub().productId())));
+            cmReportingMemberById.cmRelatedImageList(cmRelatedImageMapper.getCmRelatedImageList(new CmRelatedImage().type("1").authorId(cmReportingMemberById.id())));
+        }
+        return cmReportingMemberById;
+    }
+
+    /**
+     * 修改机构报备
+     *
+     * @return 机构报备
+     */
+    @Override
+    public void updateCmReportingClub(CmReportingClub cmReportingClub) {
+        cmReportingClubMapper.updateCmReportingClub(cmReportingClub);
+    }
+
+    /**
+     * 修改机构报备
+     *
+     * @return 机构报备
+     */
+    @Override
+    public void updateCmReportingMember(CmReportingMember cmReportingMember) {
+        cmReportingMemberMapper.updateCmReportingMember(cmReportingMember);
+    }
+
+    /**
+     * 新增机构报备
+     */
+    @Override
+    public ResponseJson addCmReportingClub(CmReportingClub cmReportingClub) {
+        int userByMobile = cmReportingClubMapper.findUserByMobile(cmReportingClub.mobile(), null, null);
+        if (userByMobile >0) {
+            return ResponseJson.error("抱歉,该手机号已注册!");
+        }
+        CmReportingClub byCmReportingClub = cmReportingClubMapper.getByCmReportingClub(new CmReportingClub()
+                .mobile(cmReportingClub.mobile())
+                .productId(cmReportingClub.productId())
+                .lockStatus(1)
+        );
+        if (null == byCmReportingClub) {
+            byCmReportingClub = cmReportingClubMapper.getByCmReportingClub(new CmReportingClub()
+                    .mobile(cmReportingClub.mobile())
+                    .productId(cmReportingClub.productId())
+                    .lockStatus(0)
+            );
+            if (null == byCmReportingClub) {
+                cmReportingClub.lockStatus(0).createTime(new Date());
+                cmReportingClubMapper.addCmReportingClub(cmReportingClub);
+            }
+            String byId = cmReportingClubMapper.getById(new CmReportingClub()
+                    .mobile(cmReportingClub.mobile())
+                    .productId(cmReportingClub.productId())
+                    .lockStatus(0)
+            );
+            CmReportingMember cmReportingMember = cmReportingClub.cmReportingMember()
+                    .clubReportingId(Integer.valueOf(byId));
+            if(null!=cmReportingMemberMapper.getByCmReportingMember(cmReportingMember)){
+                return ResponseJson.error("该机构您已报备,请勿重复报备!");
+            }
+            cmReportingMember.auditStatus("1").createTime(new Date());
+            cmReportingMemberMapper.addCmReportingMember(cmReportingMember);
+            if (null != cmReportingMember.cmRelatedImageList()) {
+                cmReportingMember.cmRelatedImageList().forEach(s -> {
+                    s.type("1");
+                    s.authorId(cmReportingMember.id())
+                            .createTime(new Date());
+                    cmRelatedImageMapper.addCmRelatedImage(s);
+                });
+            }
+            return ResponseJson.success("报备成功!", null);
+        } else {
+            return ResponseJson.error("抱歉,该机构已被其他人锁定,目前暂无法进行报备!");
+        }
+    }
+    public BigDecimal setDistributionProductPrice(Integer productId) {
+        CmDistributionProduct price = cmDistributionProductMapper.getByCmDistributionProduct(new CmDistributionProduct().productId(productId));
+        boolean taxFlag = "0".equals(price.getIncludedTax()) && ("1".equals(price.getInvoiceType()) || "2".equals(price.getInvoiceType()));
+        //添加税费
+        if (taxFlag) {
+            BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(price.getPrice(), price.getClubTaxPoint()), 100, 2);
+            price.setPrice(MathUtil.add(price.getPrice(), thisTaxFee));
+        }
+        return price.getPrice().setScale(2, RoundingMode.HALF_UP);
+    }
+}
+
+

+ 31 - 2
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -57,6 +57,10 @@ public class PageServiceImpl implements PageService {
     private PageService pageService;
     @Resource
     private CouponMapper couponMapper;
+    @Resource
+    private CmDistributionMapper cmDistributionMapper;
+    @Resource
+    private CmDistributionProductMapper cmDistributionProductMapper;
     @Value("${spring.cloud.config.profile}")
     private String active;
 
@@ -567,6 +571,12 @@ public class PageServiceImpl implements PageService {
      */
     @Override
     public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId) {
+        Integer identity =0;
+        if (null != userId && userId > 0) {
+            // 用户身份:0个人,1协销,2会员机构,3供应商,4普通机构
+            identity = priceMapper.getIdentityByUserId(userId);
+            identity = null == identity ? 0 : identity;
+        }
         // 商品详情页
         ProductDetailVo product = pageMapper.getProductDetails(productId);
         //当该商品的“能否退货”字段的值是“不能”时,新增特殊商品退货须知提示
@@ -644,7 +654,12 @@ public class PageServiceImpl implements PageService {
         // 商品不处于已删除/待审核/审核未通过的状态
         if (0 != product.getValidFlag()) {
             // 数据库获取基本价格信息
-            PriceVo price = priceMapper.getDetailPrice(productId);
+            PriceVo price = null;
+            if (identity == 7) {
+                price = priceMapper.getDistributionDetailPrice(productId);
+            } else {
+                price = priceMapper.getDetailPrice(productId);
+            }
             // 根据用户id设置详细价格
             priceUtilService.setPriceByUserId(price, userId, 0);
             // 设置价格
@@ -1322,7 +1337,21 @@ public class PageServiceImpl implements PageService {
         if (null == identity) {
             // 未登录
             permission = 1;
-        } else if (1 == identity) {
+        } else if (1 == identity || 7 == identity) {
+            if(7 == identity){
+                //分销人员可查看团队所有资料
+                CmDistribution byCmDistribution = cmDistributionMapper.getByCmDistribution(new CmDistribution().userId(userId));
+                if(!byCmDistribution.parentId().equals("0")){
+                    byCmDistribution.id(String.valueOf(byCmDistribution.parentId()));
+                }
+                int productCount = cmDistributionProductMapper.getCmDistributionTeamProductCount(new CmDistributionTeamProduct()
+                        .distributionId(Integer.valueOf(byCmDistribution.id()))
+                        .productId(archive.getProductId())
+                );
+                if(productCount==0){
+                    permission = 5;
+                }
+            }
             //协销可查看所有资料
             permission = 0;
         } else if (4 == identity) {

+ 5 - 0
src/main/resources/bootstrap.yml

@@ -13,3 +13,8 @@ spring:
       # uri: http://47.119.112.46:18001          # 配置中心地址
       uri: http://120.79.162.1:18001     # 配置中心地址(正式环境)
       name: commodity                   # 配置文件名称
+mybatis:
+  # 扫描classpath中mapper目录下的映射配置文件,针对于映射文件放到了resources目录下
+  mapper-locations: classpath:/mapper/*.xml
+  # 定义包别名,使用pojo时可以直接使用pojo的类型名称不用加包名
+  type-aliases-package: com.caimei365.commodity.model

+ 357 - 0
src/main/resources/mapper/CmDistributionMapper.xml

@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmDistributionMapper">
+
+	<resultMap type="com.caimei365.commodity.model.po.CmDistribution" id="CmDistributionResult">
+		<result property="id"    column="id"    />
+		<result property="userId"    column="userId"    />
+		<result property="name"    column="name"    />
+		<result property="linkMan"    column="linkMan"    />
+		<result property="mobile"    column="mobile"    />
+		<result property="password"    column="password"    />
+		<result property="corporateName"    column="corporateName"    />
+		<result property="splitCode"    column="splitCode"    />
+		<result property="bankName"    column="bankName"    />
+		<result property="bankAccount"    column="bankAccount"    />
+		<result property="status"    column="status"    />
+		<result property="qrCode"    column="qrCode"    />
+		<result property="parentId"    column="parentId"    />
+		<result property="parentIds"    column="parentIds"    />
+		<result property="updateTime"    column="updateTime"    />
+		<result property="addTime"    column="addTime"    />
+		<result property="delFlag"    column="delFlag"    />
+	</resultMap>
+
+	<sql id="selectCmDistributionVo">
+		select
+			cm_distribution.id,
+			cm_distribution.userId,
+			cm_distribution.name,
+			cm_distribution.linkMan,
+			cm_distribution.mobile,
+			cm_distribution.password,
+			cm_distribution.corporateName,
+			cm_distribution.splitCode,
+			cm_distribution.bankName,
+			cm_distribution.bankAccount,
+			cm_distribution.status,
+			cm_distribution.qrCode,
+			cm_distribution.parentId,
+			cm_distribution.parentIds,
+			cm_distribution.updateTime,
+			cm_distribution.addTime,
+			cm_distribution.delFlag
+	</sql>
+
+
+
+
+	<select id="getByCmDistribution" parameterType="com.caimei365.commodity.model.po.CmDistribution" resultMap="CmDistributionResult">
+		<include refid="selectCmDistributionVo"/>
+		from cm_distribution AS cm_distribution
+		<where>  cm_distribution.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_distribution.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and cm_distribution.parentId = #{parentId}</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+		group by cm_distribution.id
+		order by cm_distribution.addTime desc
+		limit 0,1
+	</select>
+
+	<select id="getCmDistributionList" parameterType="com.caimei365.commodity.model.po.CmDistribution" resultMap="CmDistributionResult">
+		<include refid="selectCmDistributionVo"/>
+		from cm_distribution AS cm_distribution
+		<where>  cm_distribution.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_distribution.id= #{id}
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and (cm_distribution.id = #{parentId} or  cm_distribution.parentId = #{parentId})</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+		group by cm_distribution.id
+		order by cm_distribution.addTime desc
+	</select>
+
+
+	<select id="getCmDistributionCount" parameterType="com.caimei365.commodity.model.po.CmDistribution" resultType="String">
+		select count(1)
+		from cm_distribution AS cm_distribution
+		<where>  cm_distribution.delFlag = 0
+			<if test="id != null  and  id != ''">
+				and cm_distribution.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and cm_distribution.parentId = #{parentId}</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+		group by cm_distribution.id
+	</select>
+
+	<select id="getCmDistributionById" parameterType="String" resultMap="CmDistributionResult">
+		<include refid="selectCmDistributionVo"/>
+		from cm_distribution AS cm_distribution
+		where  cm_distribution.delFlag = 0 and cm_distribution.id = #{id}
+	</select>
+
+
+
+	<select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmDistribution" resultType="String">
+		select id
+		from cm_distribution AS cm_distribution
+		<where>  cm_distribution.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_distribution.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and cm_distribution.parentId = #{parentId}</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+		group by cm_distribution.id
+	</select>
+
+	<select id="getById" parameterType="com.caimei365.commodity.model.po.CmDistribution" resultType="String">
+		select id
+		from cm_distribution AS cm_distribution
+		<where>  cm_distribution.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_distribution.id
+				<if test="id.toString().toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toString().toUpperCase().indexOf('=')!=-1">
+					<if test="id.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.toString().substring(id.toString().toUpperCase().indexOf('=')+1,id.toString().length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and cm_distribution.parentId = #{parentId}</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+		group by cm_distribution.id
+		limit 0,1
+	</select>
+
+	<insert id="addCmDistribution" parameterType="com.caimei365.commodity.model.po.CmDistribution" useGeneratedKeys="true" keyProperty="id">
+		insert into cm_distribution
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">id,</if>
+			<if test="userId != null">userId,</if>
+			<if test="name != null and name != ''">name,</if>
+			<if test="linkMan != null and linkMan != ''">linkMan,</if>
+			<if test="mobile != null and mobile != ''">mobile,</if>
+			<if test="password != null and password != ''">password,</if>
+			<if test="corporateName != null and corporateName != ''">corporateName,</if>
+			<if test="splitCode != null and splitCode != ''">splitCode,</if>
+			<if test="bankName != null and bankName != ''">bankName,</if>
+			<if test="bankAccount != null and bankAccount != ''">bankAccount,</if>
+			<if test="status != null">status,</if>
+			<if test="qrCode != null and qrCode != ''">qrCode,</if>
+			<if test="parentId != null">parentId,</if>
+			<if test="parentIds != null and parentIds != ''">parentIds,</if>
+			<if test="updateTime != null">updateTime,</if>
+			<if test="addTime != null">addTime,</if>
+			<if test="delFlag != null">delFlag,</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">#{id},</if>
+			<if test="userId != null">#{userId},</if>
+			<if test="name != null and name != ''">#{name},</if>
+			<if test="linkMan != null and linkMan != ''">#{linkMan},</if>
+			<if test="mobile != null and mobile != ''">#{mobile},</if>
+			<if test="password != null and password != ''">#{password},</if>
+			<if test="corporateName != null and corporateName != ''">#{corporateName},</if>
+			<if test="splitCode != null and splitCode != ''">#{splitCode},</if>
+			<if test="bankName != null and bankName != ''">#{bankName},</if>
+			<if test="bankAccount != null and bankAccount != ''">#{bankAccount},</if>
+			<if test="status != null">#{status},</if>
+			<if test="qrCode != null and qrCode != ''">#{qrCode},</if>
+			<if test="parentId != null">#{parentId},</if>
+			<if test="parentIds != null and parentIds != ''">#{parentIds},</if>
+			<if test="updateTime != null">#{updateTime},</if>
+			<if test="addTime != null">#{addTime},</if>
+			<if test="delFlag != null">#{delFlag},</if>
+		</trim>
+	</insert>
+
+	<update id="updateCmDistribution" parameterType="com.caimei365.commodity.model.po.CmDistribution">
+		update cm_distribution
+		<trim prefix="SET" suffixOverrides=",">
+			<if test="userId != null">userId = #{userId},</if>
+			<if test="name != null and name != ''">name = #{name},</if>
+			<if test="linkMan != null and linkMan != ''">linkMan = #{linkMan},</if>
+			<if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
+			<if test="password != null and password != ''">password = #{password},</if>
+			<if test="corporateName != null and corporateName != ''">corporateName = #{corporateName},</if>
+			<if test="splitCode != null and splitCode != ''">splitCode = #{splitCode},</if>
+			<if test="bankName != null and bankName != ''">bankName = #{bankName},</if>
+			<if test="bankAccount != null and bankAccount != ''">bankAccount = #{bankAccount},</if>
+			<if test="status != null">status = #{status},</if>
+			<if test="qrCode != null and qrCode != ''">qrCode = #{qrCode},</if>
+			<if test="parentId != null">parentId = #{parentId},</if>
+			<if test="parentIds != null and parentIds != ''">parentIds = #{parentIds},</if>
+			<if test="updateTime != null">updateTime = #{updateTime},</if>
+			<if test="addTime != null">addTime = #{addTime},</if>
+			<if test="delFlag != null">delFlag = #{delFlag},</if>
+		</trim>
+		<where>
+			<if test="id != null  and id != ''"> and cm_distribution.id = #{id}</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+		</where>
+
+	</update>
+
+	<update id="updateDelCmDistributionByIds" parameterType="String">
+		update cm_distribution set delFlag=#{delFlag} where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
+
+	<delete id="delCmDistributionById" parameterType="String">
+		delete
+		from cm_distribution where id = #{id}
+	</delete>
+
+	<delete id="delCmDistribution" parameterType="com.caimei365.commodity.model.po.CmDistribution">
+		delete
+		from cm_distribution AS cm_distribution
+		<where>
+			<if test="id != null  and id != ''">
+				and cm_distribution.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="userId != null "> and cm_distribution.userId = #{userId}</if>
+			<if test="name != null  and name != ''"> and cm_distribution.name like concat('%', #{name}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+            <if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="password != null  and password != ''"> and cm_distribution.password = #{password}</if>
+			<if test="corporateName != null  and corporateName != ''"> and cm_distribution.corporateName like concat('%', #{corporateName}, '%')</if>
+			<if test="splitCode != null  and splitCode != ''"> and cm_distribution.splitCode = #{splitCode}</if>
+			<if test="bankName != null  and bankName != ''"> and cm_distribution.bankName like concat('%', #{bankName}, '%')</if>
+			<if test="bankAccount != null  and bankAccount != ''"> and cm_distribution.bankAccount = #{bankAccount}</if>
+			<if test="status != null "> and cm_distribution.status = #{status}</if>
+			<if test="qrCode != null  and qrCode != ''"> and cm_distribution.qrCode = #{qrCode}</if>
+			<if test="parentId != null "> and cm_distribution.parentId = #{parentId}</if>
+			<if test="parentIds != null  and parentIds != ''"> and cm_distribution.parentIds = #{parentIds}</if>
+			<if test="updateTime != null "> and cm_distribution.updateTime = #{updateTime}</if>
+			<if test="addTime != null "> and cm_distribution.addTime = #{addTime}</if>
+		</where>
+	</delete>
+
+	<delete id="delCmDistributionByIds" parameterType="String">
+		delete from cm_distribution where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 613 - 0
src/main/resources/mapper/CmDistributionProductMapper.xml

@@ -0,0 +1,613 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmDistributionProductMapper">
+
+    <resultMap type="com.caimei365.commodity.model.po.CmDistributionProduct" id="CmDistributionProductResult">
+        <result property="id"    column="id"    />
+        <result property="productId"    column="productId"    />
+        <result property="validFlag"    column="validFlag"    />
+        <result property="includedTax"    column="includedTax"    />
+        <result property="invoiceType"    column="invoiceType"    />
+        <result property="clubTaxPoint"    column="clubTaxPoint"    />
+        <result property="shopTaxPoint"    column="shopTaxPoint"    />
+        <result property="commission"    column="commission"    />
+        <result property="addTime"    column="addTime"    />
+        <result property="name"    column="name"    />
+        <result property="mainImage"    column="mainImage"    />
+        <result property="shopID"    column="shopID"    />
+        <result property="shopName"    column="shopName"    />
+        <result property="skuId"    column="skuId"    />
+        <result property="price"    column="price"    />
+    </resultMap>
+
+    <sql id="selectCmDistributionProductVo">
+        select
+            cm_distribution_product.id,
+            cm_distribution_product.productId,
+            cm_distribution_product.validFlag,
+            cm_distribution_product.includedTax,
+            cm_distribution_product.invoiceType,
+            ifnull(cm_distribution_product.clubTaxPoint,0) AS clubTaxPoint,
+            ifnull(cm_distribution_product.shopTaxPoint,0) AS shopTaxPoint,
+            ifnull(cm_distribution_product.commission,0) AS commission,
+            p.name,
+            p.mainImage,
+            p.shopID,
+            s.name AS shopName,
+            cm_distribution_product.addTime,
+            (select cds.skuId from cm_distribution_sku cds where cds.productId = p.productID order by cds.price asc limit 1) AS skuId,
+            ifnull((select cds.price from cm_distribution_sku cds where cds.productId = p.productID order by cds.price asc limit 1),0) AS price
+    </sql>
+
+    <select id="getByCmDistributionProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultMap="CmDistributionProductResult">
+        <include refid="selectCmDistributionProductVo"/>
+        from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+            <if test="name != null  and name != ''"> and p.name  LIKE concat('%',#{name},'%')</if>
+            <if test="shopName != null  and shopName != ''"> and s.name  LIKE concat('%',#{shopName},'%')</if>
+        </where>
+        group by cm_distribution_product.id
+        order by cm_distribution_product.addTime desc
+        limit 0,1
+    </select>
+
+
+
+    <select id="findTeamProductPage" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultMap="CmDistributionProductResult">
+        select
+        cm_distribution_product.id,
+        cm_distribution_product.productId,
+        cdtp.validFlag,
+        cm_distribution_product.includedTax,
+        cm_distribution_product.invoiceType,
+        ifnull(cm_distribution_product.clubTaxPoint,0) AS clubTaxPoint,
+        ifnull(cm_distribution_product.shopTaxPoint,0) AS shopTaxPoint,
+        ifnull(cm_distribution_product.commission,0) AS commission,
+        p.name,
+        p.mainImage,
+        p.shopID,
+        s.name AS shopName,
+        cm_distribution_product.addTime,
+        (select cds.skuId from cm_distribution_sku cds where cds.productId = p.productID order by cds.price asc limit 1) AS skuId,
+        ifnull((select cds.price from cm_distribution_sku cds where cds.productId = p.productID order by cds.price asc limit 1),0) AS price,
+        cdtp.distributionId
+       from cm_distribution_team_product AS cdtp
+        LEFT JOIN cm_distribution AS cm_distribution on cdtp.distributionId=cm_distribution.id
+        LEFT JOIN cm_distribution_product AS cm_distribution_product  on cdtp.productId=cm_distribution_product.productId
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cdtp.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+            <if test="name != null  and name != ''"> and p.name  LIKE concat('%',#{name},'%')</if>
+            <if test="shopName != null  and shopName != ''"> and s.name  LIKE concat('%',#{shopName},'%')</if>
+            <if test="distributionId != null "> and cdtp.distributionId = #{distributionId}</if>
+        </where>
+        group by cm_distribution_product.id
+        order by cm_distribution_product.addTime desc
+    </select>
+
+
+    <select id="getCmDistributionProductList" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultMap="CmDistributionProductResult">
+        <include refid="selectCmDistributionProductVo"/>
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+            <if test="name != null  and name != ''"> and p.name  LIKE concat('%',#{name},'%')</if>
+            <if test="shopName != null  and shopName != ''"> and s.name  LIKE concat('%',#{shopName},'%')</if>
+        </where>
+        group by cm_distribution_product.id
+        order by cm_distribution_product.addTime desc
+    </select>
+    <select id="getCmDistributionTeamProductList" parameterType="com.caimei365.commodity.model.po.CmDistributionTeamProduct" resultType="com.caimei365.commodity.model.po.CmDistributionTeamProduct">
+        SELECT
+        cm_distribution_team_product.id,
+        cm_distribution_team_product.distributionId,
+        cm_distribution_team_product.productId,
+        cm_distribution_team_product.validFlag,
+        p.name,
+        p.mainImage,
+        (select price from cm_distribution_sku cs where cs.productId = p.productId order by price asc limit 1) as price,
+        p.shopID,
+        s.name AS shopName
+        from cm_distribution_team_product AS cm_distribution_team_product
+        left join cm_distribution_product AS cm_distribution_product on cm_distribution_product.productId=cm_distribution_team_product.productId
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>  cm_distribution_team_product.validFlag = 1 and cm_distribution_product.validFlag = 1
+            <if test="id != null  and id != ''">
+                and cm_distribution_team_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="distributionId != null "> and cm_distribution_team_product.distributionId = #{distributionId}</if>
+            <if test="productId != null "> and cm_distribution_team_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_team_product.validFlag = #{validFlag}</if>
+            <if test="name != null  and name != ''"> and p.name like concat('%', #{name}, '%')</if>
+        </where>
+        group by cm_distribution_team_product.id
+    </select>
+    <select id="getProductArchiveList" resultType="com.caimei365.commodity.model.vo.ArchiveVo">
+        select cpa.id AS "archiveId",
+        cpa.productId AS "productId",
+        if(cpa.productId is not null, p.name, cpa.productName) AS "productName",
+        if(cpa.productId is not null, s.name, cpa.shopName) AS "shopName",
+        if(cpa.productId is not null, p.mainImage, cpa.productImage) AS "productImage",
+        if(cpa.productId is not null, ifnull(p.commodityType, cpa.productType),cpa.productType) AS "productType",
+        if(cpa.productId is not null,1,2) AS "redirectType"
+        from cm_distribution_team_product AS cm_distribution_team_product
+        left join cm_product_archive cpa on cpa.productId = cm_distribution_team_product.productID
+        left join product p on cm_distribution_team_product.productId = p.productID
+        left join shop s on p.shopID = s.shopID
+        <where>
+            cpa.productId = cm_distribution_team_product.productID
+            and cm_distribution_team_product.distributionId=#{id}
+            <if test="productName != null and productName != ''">
+                and cpa.productName LIKE concat('%', #{productName}, '%')
+            </if>
+        </where>
+        order by cpa.addTime desc
+    </select>
+    <select id="getCmDistributionProductCount" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultType="int">
+        select count(1)
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and  id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+        </where>
+        group by cm_distribution_product.id
+    </select>
+
+    <select id="getCmDistributionTeamProductCount" parameterType="CmDistributionTeamProduct" resultType="int">
+        select count(1)
+        from cm_distribution_team_product AS cm_distribution_team_product
+        <where>
+            <if test="id != null  and  id != ''">
+                and cm_distribution_team_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="distributionId != null "> and cm_distribution_team_product.distributionId = #{distributionId}</if>
+            <if test="productId != null "> and cm_distribution_team_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_team_product.validFlag = #{validFlag}</if>
+        </where>
+    </select>
+
+
+    <select id="getCmDistributionProductById" parameterType="String" resultMap="CmDistributionProductResult">
+        <include refid="selectCmDistributionProductVo"/>
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        where    cm_distribution_product.id = #{id} group by cm_distribution_product.id
+    </select>
+
+    <select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultType="Int">
+        select cm_distribution_product.id
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+        </where>
+        group by cm_distribution_product.id
+    </select>
+    <select id="getByProductIds" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultType="Int">
+        select cm_distribution_product.productId
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+        </where>
+        group by cm_distribution_product.id
+    </select>
+
+    <select id="getByTeamProductIds" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultType="Int">
+        select cm_distribution_team_product.productId
+       from cm_distribution_team_product AS cm_distribution_team_product
+        <where>
+            <if test="distributionId != null "> and cm_distribution_team_product.distributionId = #{distributionId}</if>
+        </where>
+        group by cm_distribution_team_product.id
+    </select>
+
+    <select id="getById" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" resultType="String">
+        select id
+       from cm_distribution_product AS cm_distribution_product
+        LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+        LEFT JOIN shop s on p.shopID = s.shopID
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toString().toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toString().toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.toString().substring(id.toString().toUpperCase().indexOf('=')+1,id.toString().length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+        </where>
+        group by cm_distribution_product.id
+        limit 0,1
+    </select>
+
+    <insert id="addCmDistributionProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_distribution_product
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">id,</if>
+            <if test="productId != null">productId,</if>
+            <if test="validFlag != null and validFlag != ''">validFlag,</if>
+            <if test="includedTax != null and includedTax != ''">includedTax,</if>
+            <if test="invoiceType != null and invoiceType != ''">invoiceType,</if>
+            <if test="clubTaxPoint != null">clubTaxPoint,</if>
+            <if test="shopTaxPoint != null">shopTaxPoint,</if>
+            <if test="commission != null">commission,</if>
+            <if test="addTime != null">addTime,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">#{id},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="validFlag != null and validFlag != ''">#{validFlag},</if>
+            <if test="includedTax != null and includedTax != ''">#{includedTax},</if>
+            <if test="invoiceType != null and invoiceType != ''">#{invoiceType},</if>
+            <if test="clubTaxPoint != null">#{clubTaxPoint},</if>
+            <if test="shopTaxPoint != null">#{shopTaxPoint},</if>
+            <if test="commission != null">#{commission},</if>
+            <if test="addTime != null">#{addTime},</if>
+        </trim>
+    </insert>
+
+    <insert id="addCmDistributionTeamProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionTeamProduct" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_distribution_team_product
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">id,</if>
+            <if test="distributionId != null">distributionId,</if>
+            <if test="productId != null">productId,</if>
+            <if test="validFlag != null and validFlag != ''">validFlag,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">#{id},</if>
+            <if test="distributionId != null">#{distributionId},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="validFlag != null and validFlag != ''">#{validFlag},</if>
+        </trim>
+    </insert>
+    <update id="updateCmDistributionProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct">
+        update cm_distribution_product
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productId != null">productId = #{productId},</if>
+            <if test="validFlag != null and validFlag != ''">validFlag = #{validFlag},</if>
+            <if test="includedTax != null and includedTax != ''">includedTax = #{includedTax},</if>
+            <if test="invoiceType != null and invoiceType != ''">invoiceType = #{invoiceType},</if>
+            <if test="clubTaxPoint != null">clubTaxPoint = #{clubTaxPoint},</if>
+            <if test="shopTaxPoint != null">shopTaxPoint = #{shopTaxPoint},</if>
+            <if test="commission != null">commission = #{commission},</if>
+            <if test="addTime != null">addTime = #{addTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+
+
+    <delete id="delCmDistributionProductById" parameterType="String">
+        delete
+        from cm_distribution_product where id = #{id}
+    </delete>
+
+    <delete id="delCmDistributionProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionProduct">
+        delete
+       from cm_distribution_product AS cm_distribution_product
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_product.validFlag = #{validFlag}</if>
+            <if test="includedTax != null  and includedTax != ''"> and cm_distribution_product.includedTax = #{includedTax}</if>
+            <if test="invoiceType != null  and invoiceType != ''">
+                and cm_distribution_product.invoiceType
+                <if test="invoiceType.toUpperCase().indexOf('=')==-1">
+                    = #{invoiceType}
+                </if>
+                <if test="invoiceType.toUpperCase().indexOf('=')!=-1">
+                    <if test="invoiceType.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="invoiceType.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="invoiceType.substring(invoiceType.toUpperCase().indexOf('=')+1,invoiceType.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="clubTaxPoint != null "> and cm_distribution_product.clubTaxPoint = #{clubTaxPoint}</if>
+            <if test="shopTaxPoint != null "> and cm_distribution_product.shopTaxPoint = #{shopTaxPoint}</if>
+            <if test="commission != null "> and cm_distribution_product.commission = #{commission}</if>
+            <if test="addTime != null "> and cm_distribution_product.addTime = #{addTime}</if>
+        </where>
+    </delete>
+
+    <delete id="delCmDistributionProductByIds" parameterType="String">
+        delete from cm_distribution_product where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="delCmDistributionTeamProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionTeamProduct">
+        delete
+        from cm_distribution_team_product AS cm_distribution_team_product
+        <where>
+            <if test="id != null  and id != ''">
+                and cm_distribution_team_product.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="distributionId != null "> and cm_distribution_team_product.distributionId = #{distributionId}</if>
+            <if test="productId != null "> and cm_distribution_team_product.productId = #{productId}</if>
+            <if test="validFlag != null  and validFlag != ''"> and cm_distribution_team_product.validFlag = #{validFlag}</if>
+        </where>
+    </delete>
+    <update id="updateCmDistributionTeamProduct" parameterType="com.caimei365.commodity.model.po.CmDistributionTeamProduct">
+        update cm_distribution_team_product
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="validFlag != null and validFlag != ''">validFlag = #{validFlag},</if>
+        </trim>
+        where distributionId = #{distributionId} and productId = #{productId}
+    </update>
+</mapper>

+ 269 - 0
src/main/resources/mapper/CmDistributionSkuMapper.xml

@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmDistributionSkuMapper">
+
+    <resultMap type="CmDistributionSku" id="CmDistributionSkuResult">
+        <result property="skuId"    column="skuId"    />
+        <result property="productId"    column="productId"    />
+        <result property="price"    column="price"    />
+        <result property="shopPercent"    column="shopPercent"    />
+        <result property="organizePercent"    column="organizePercent"    />
+        <result property="cmPercent"    column="cmPercent"    />
+        <result property="costCheckFlag"    column="costCheckFlag"    />
+        <result property="unit"    column="unit"    />
+        <result property="costPrice"    column="costPrice"    />
+        <result property="cmCostPrice"    column="cmCostPrice"    />
+        <result property="organizeCostPrice"    column="organizeCostPrice"    />
+    </resultMap>
+
+    <sql id="selectCmDistributionSkuVo">
+        select
+            cm_distribution_sku.skuId,
+            cm_distribution_sku.productId,
+            ifnull(cm_distribution_sku.price,0) AS price,
+            cm_distribution_sku.shopPercent,
+            cm_distribution_sku.organizePercent,
+            cm_distribution_sku.cmPercent,
+            cm_distribution_sku.costCheckFlag,
+            cs.unit,
+            ifnull(cm_distribution_sku.costPrice,0) AS costPrice,
+            ifnull(cm_distribution_sku.cmCostPrice,0) AS cmCostPrice,
+            ifnull(cm_distribution_sku.organizeCostPrice,0) AS organizeCostPrice
+    </sql>
+
+    <select id="getByCmDistributionSku" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" resultMap="CmDistributionSkuResult">
+        <include refid="selectCmDistributionSkuVo"/>
+        from cm_distribution_sku AS cm_distribution_sku
+        LEFT JOIN cm_sku cs ON  cs.skuId = cm_distribution_sku.skuId
+        <where>
+            <if test="skuId != null  and skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.substring(skuId.toUpperCase().indexOf('=')+1,skuId.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+        group by cm_distribution_sku.skuId
+        order by cm_distribution_sku.skuId desc
+        limit 0,1
+    </select>
+
+    <select id="getCmDistributionSkuList" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" resultMap="CmDistributionSkuResult">
+        <include refid="selectCmDistributionSkuVo"/>
+        from cm_distribution_sku AS cm_distribution_sku
+        LEFT JOIN cm_sku cs ON  cs.skuId = cm_distribution_sku.skuId
+        <where>
+            <if test="skuId != null  and skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.substring(skuId.toUpperCase().indexOf('=')+1,skuId.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+        group by cm_distribution_sku.skuId
+        order by cm_distribution_sku.skuId desc
+    </select>
+
+
+    <select id="getCmDistributionSkuCount" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" resultType="int">
+        select count(1)
+        from cm_distribution_sku AS cm_distribution_sku
+        <where>
+            <if test="skuId != null  and  skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.substring(skuId.toUpperCase().indexOf('=')+1,skuId.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+        group by cm_distribution_sku.skuId
+    </select>
+
+    <select id="getCmDistributionSkuBySkuId" parameterType="String" resultMap="CmDistributionSkuResult">
+        <include refid="selectCmDistributionSkuVo"/>
+        from cm_distribution_sku AS cm_distribution_sku
+        LEFT JOIN cm_sku cs ON  cs.skuId = cm_distribution_sku.skuId
+        where  cm_distribution_sku.skuId = #{skuId}
+    </select>
+
+    <select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" resultType="String">
+        select skuId
+        from cm_distribution_sku AS cm_distribution_sku
+        <where>
+            <if test="skuId != null  and skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.substring(skuId.toUpperCase().indexOf('=')+1,skuId.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+        group by cm_distribution_sku.skuId
+    </select>
+
+    <select id="getById" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" resultType="String">
+        select skuId
+        from cm_distribution_sku AS cm_distribution_sku
+        <where>
+            <if test="skuId != null  and skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toString().toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toString().toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.toString().substring(skuId.toString().toUpperCase().indexOf('=')+1,skuId.toString().length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+        group by cm_distribution_sku.skuId
+        limit 0,1
+    </select>
+
+    <insert id="addCmDistributionSku" parameterType="com.caimei365.commodity.model.po.CmDistributionSku" useGeneratedKeys="true" keyProperty="skuId">
+        insert into cm_distribution_sku
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="skuId != null and skuId != ''">skuId,</if>
+            <if test="productId != null">productId,</if>
+            <if test="price != null">price,</if>
+            <if test="shopPercent != null">shopPercent,</if>
+            <if test="organizePercent != null">organizePercent,</if>
+            <if test="cmPercent != null">cmPercent,</if>
+            <if test="costCheckFlag != null and costCheckFlag != ''">costCheckFlag,</if>
+            <if test="costPrice != null">costPrice,</if>
+            <if test="cmCostPrice != null">cmCostPrice,</if>
+            <if test="organizeCostPrice != null">organizeCostPrice,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="skuId != null and skuId != ''">#{skuId},</if>
+            <if test="productId != null">#{productId},</if>
+            <if test="price != null">#{price},</if>
+            <if test="shopPercent != null">#{shopPercent},</if>
+            <if test="organizePercent != null">#{organizePercent},</if>
+            <if test="cmPercent != null">#{cmPercent},</if>
+            <if test="costCheckFlag != null and costCheckFlag != ''">#{costCheckFlag},</if>
+            <if test="costPrice != null">#{costPrice},</if>
+            <if test="cmCostPrice != null">#{cmCostPrice},</if>
+            <if test="organizeCostPrice != null">#{organizeCostPrice},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCmDistributionSku" parameterType="com.caimei365.commodity.model.po.CmDistributionSku">
+        update cm_distribution_sku
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="productId != null">productId = #{productId},</if>
+            <if test="price != null">price = #{price},</if>
+            <if test="shopPercent != null">shopPercent = #{shopPercent},</if>
+            <if test="organizePercent != null">organizePercent = #{organizePercent},</if>
+            <if test="cmPercent != null">cmPercent = #{cmPercent},</if>
+            <if test="costCheckFlag != null and costCheckFlag != ''">costCheckFlag = #{costCheckFlag},</if>
+            <if test="costPrice != null">costPrice = #{costPrice},</if>
+            <if test="cmCostPrice != null">cmCostPrice = #{cmCostPrice},</if>
+            <if test="organizeCostPrice != null">organizeCostPrice = #{organizeCostPrice},</if>
+        </trim>
+        where skuId = #{skuId}
+    </update>
+
+
+
+    <delete id="delCmDistributionSkuBySkuId" parameterType="String">
+        delete
+        from cm_distribution_sku where skuId = #{skuId}
+    </delete>
+
+    <delete id="delCmDistributionSku" parameterType="com.caimei365.commodity.model.po.CmDistributionSku">
+        delete
+        from cm_distribution_sku AS cm_distribution_sku
+        <where>
+            <if test="skuId != null  and skuId != ''">
+                and cm_distribution_sku.skuId
+                <if test="skuId.toUpperCase().indexOf('=')==-1">
+                    = #{skuId}
+                </if>
+                <if test="skuId.toUpperCase().indexOf('=')!=-1">
+                    <if test="skuId.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="skuId.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="skuIdIn" collection="skuId.substring(skuId.toUpperCase().indexOf('=')+1,skuId.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{skuIdIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="productId != null "> and cm_distribution_sku.productId = #{productId}</if>
+            <if test="price != null "> and cm_distribution_sku.price = #{price}</if>
+            <if test="shopPercent != null "> and cm_distribution_sku.shopPercent = #{shopPercent}</if>
+            <if test="organizePercent != null "> and cm_distribution_sku.organizePercent = #{organizePercent}</if>
+            <if test="cmPercent != null "> and cm_distribution_sku.cmPercent = #{cmPercent}</if>
+            <if test="costCheckFlag != null  and costCheckFlag != ''"> and cm_distribution_sku.costCheckFlag = #{costCheckFlag}</if>
+        </where>
+    </delete>
+
+    <delete id="delCmDistributionSkuBySkuIds" parameterType="String">
+        delete from cm_distribution_sku where skuId in
+        <foreach item="skuId" collection="skuIds" open="(" separator="," close=")">
+            #{skuId}
+        </foreach>
+    </delete>
+
+</mapper>

+ 320 - 0
src/main/resources/mapper/CmRelatedImageMapper.xml

@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmRelatedImageMapper">
+
+	<resultMap type="com.caimei365.commodity.model.po.CmRelatedImage" id="CmRelatedImageResult">
+		<result property="id"    column="id"    />
+		<result property="type"    column="type"    />
+		<result property="authorId"    column="authorId"    />
+		<result property="image"    column="image"    />
+		<result property="delFlag"    column="delFlag"    />
+		<result property="updateTime"    column="updateTime"    />
+		<result property="createTime"    column="createTime"    />
+	</resultMap>
+
+	<sql id="selectCmRelatedImageVo">
+		select
+			cm_related_image.id,
+			cm_related_image.type,
+			cm_related_image.authorId,
+			cm_related_image.image,
+			cm_related_image.delFlag,
+			cm_related_image.updateTime,
+			cm_related_image.createTime
+	</sql>
+
+	<select id="getByCmRelatedImage" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" resultMap="CmRelatedImageResult">
+		<include refid="selectCmRelatedImageVo"/>
+		from cm_related_image AS cm_related_image
+		<where>  cm_related_image.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_related_image.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+		group by cm_related_image.id
+		order by cm_related_image.createTime desc
+		limit 0,1
+	</select>
+
+	<select id="getCmRelatedImageList" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" resultMap="CmRelatedImageResult">
+		<include refid="selectCmRelatedImageVo"/>
+		from cm_related_image AS cm_related_image
+		<where>  cm_related_image.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_related_image.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+		group by cm_related_image.id
+		order by cm_related_image.createTime desc
+	</select>
+
+	<select id="getCmRelatedImageCount" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" resultType="int">
+		select count(1)
+		from cm_related_image AS cm_related_image
+		<where>  cm_related_image.delFlag = 0
+			<if test="id != null  and  id != ''">
+				and cm_related_image.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+		group by cm_related_image.id
+	</select>
+
+	<select id="getCmRelatedImageById" parameterType="String" resultMap="CmRelatedImageResult">
+		<include refid="selectCmRelatedImageVo"/>
+		from cm_related_image AS cm_related_image
+		where  cm_related_image.delFlag = 0 and cm_related_image.id = #{id}
+	</select>
+
+	<select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" resultType="String">
+		select id
+		from cm_related_image AS cm_related_image
+		<where>  cm_related_image.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_related_image.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+		group by cm_related_image.id
+	</select>
+
+	<select id="getById" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" resultType="String">
+		select id
+		from cm_related_image AS cm_related_image
+		<where>  cm_related_image.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_related_image.id
+				<if test="id.toString().toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toString().toUpperCase().indexOf('=')!=-1">
+					<if test="id.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.toString().substring(id.toString().toUpperCase().indexOf('=')+1,id.toString().length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+		group by cm_related_image.id
+		limit 0,1
+	</select>
+
+	<insert id="addCmRelatedImage" parameterType="com.caimei365.commodity.model.po.CmRelatedImage" useGeneratedKeys="true" keyProperty="id">
+		insert into cm_related_image
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">id,</if>
+			<if test="type != null and type != ''">type,</if>
+			<if test="authorId != null and authorId != ''">authorId,</if>
+			<if test="image != null and image != ''">image,</if>
+			<if test="delFlag != null">delFlag,</if>
+			<if test="updateTime != null">updateTime,</if>
+			<if test="createTime != null">createTime,</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">#{id},</if>
+			<if test="type != null and type != ''">#{type},</if>
+			<if test="authorId != null and authorId != ''">#{authorId},</if>
+			<if test="image != null and image != ''">#{image},</if>
+			<if test="delFlag != null">#{delFlag},</if>
+			<if test="updateTime != null">#{updateTime},</if>
+			<if test="createTime != null">#{createTime},</if>
+		</trim>
+	</insert>
+
+	<update id="updateCmRelatedImage" parameterType="com.caimei365.commodity.model.po.CmRelatedImage">
+		update cm_related_image
+		<trim prefix="SET" suffixOverrides=",">
+			<if test="type != null and type != ''">type = #{type},</if>
+			<if test="authorId != null and authorId != ''">authorId = #{authorId},</if>
+			<if test="image != null and image != ''">image = #{image},</if>
+			<if test="delFlag != null">delFlag = #{delFlag},</if>
+			<if test="updateTime != null">updateTime = #{updateTime},</if>
+			<if test="createTime != null">createTime = #{createTime},</if>
+		</trim>
+		where id = #{id}
+	</update>
+
+	<update id="updateDelCmRelatedImageByIds" parameterType="String">
+		update cm_related_image set delFlag=#{delFlag} where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
+
+	<delete id="delCmRelatedImageById" parameterType="String">
+		delete
+		from cm_related_image where id = #{id}
+	</delete>
+
+	<delete id="delCmRelatedImage" parameterType="com.caimei365.commodity.model.po.CmRelatedImage">
+		delete
+		from cm_related_image AS cm_related_image
+		<where>
+			<if test="id != null  and id != ''">
+				and cm_related_image.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="type != null  and type != ''">
+				and cm_related_image.type
+				<if test="type.toUpperCase().indexOf('=')==-1">
+					= #{type}
+				</if>
+				<if test="type.toUpperCase().indexOf('=')!=-1">
+					<if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+						#{typeIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="authorId != null  and authorId != ''"> and cm_related_image.authorId = #{authorId}</if>
+			<if test="image != null  and image != ''"> and cm_related_image.image = #{image}</if>
+			<if test="delFlag != null "> and cm_related_image.delFlag = #{delFlag}</if>
+			<if test="updateTime != null "> and cm_related_image.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_related_image.createTime = #{createTime}</if>
+		</where>
+	</delete>
+
+	<delete id="delCmRelatedImageByIds" parameterType="String">
+		delete from cm_related_image where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 368 - 0
src/main/resources/mapper/CmReportingClubMapper.xml

@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmReportingClubMapper">
+
+	<resultMap type="com.caimei365.commodity.model.po.CmReportingClub" id="CmReportingClubResult">
+		<result property="id"    column="id"    />
+		<result property="clubName"    column="clubName"    />
+		<result property="linkMan"    column="linkMan"    />
+		<result property="mobile"    column="mobile"    />
+		<result property="productId"    column="productId"    />
+		<result property="orderStatus"    column="orderStatus"    />
+		<result property="lockStatus"    column="lockStatus"    />
+		<result property="lockTime"    column="lockTime"    />
+		<result property="distributionId"    column="distributionId"    />
+		<result property="delFlag"    column="delFlag"    />
+		<result property="updateTime"    column="updateTime"    />
+		<result property="createTime"    column="createTime"    />
+		<result property="distributionName"    column="distributionName"    />
+		<result property="productName"    column="productName"    />
+		<result property="productImage"    column="productImage"    />
+		<result property="commission"    column="commission"    />
+		<result property="settleStatus"    column="settleStatus"    />
+		<result property="orderId"    column="orderId"    />
+	</resultMap>
+
+	<sql id="selectCmReportingClubVo">
+		select
+			cm_reporting_club.id,
+			cm_reporting_club.clubName,
+			cm_reporting_club.linkMan,
+			cm_reporting_club.mobile,
+			cm_reporting_club.productId,
+			cm_reporting_club.orderId,
+			cm_reporting_club.orderStatus,
+			cm_reporting_club.lockStatus,
+			cm_reporting_club.lockTime,
+			cm_reporting_club.distributionId,
+			cm_reporting_club.delFlag,
+			cm_reporting_club.updateTime,
+			cm_reporting_club.createTime,
+			ifnull(cm_reporting_club.commission,0) AS commission,
+			cm_reporting_club.settleStatus,
+			cm_distribution.name AS distributionName,
+			p.name AS productName,
+			p.mainImage AS productImage
+	</sql>
+
+	<select id="getByCmReportingClub" parameterType="com.caimei365.commodity.model.po.CmReportingClub" resultMap="CmReportingClubResult">
+		<include refid="selectCmReportingClubVo"/>
+		from cm_reporting_club AS cm_reporting_club
+		LEFT JOIN cm_distribution_product AS cm_distribution_product  on cm_reporting_club.productId=cm_distribution_product.productId
+		LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+		LEFT JOIN cm_distribution AS cm_distribution ON  cm_reporting_club.distributionId = cm_distribution.id
+		<where>  cm_reporting_club.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_club.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+			<if test="productName != null and productName!='' "> and p.name  like concat('%', #{productName}, '%')</if>
+		</where>
+		group by cm_reporting_club.id
+		order by cm_reporting_club.createTime desc
+		limit 0,1
+	</select>
+
+
+	<select id="getCmReportingClubList" parameterType="com.caimei365.commodity.model.po.CmReportingClub" resultMap="CmReportingClubResult">
+		<include refid="selectCmReportingClubVo"/>
+		from cm_reporting_club AS cm_reporting_club
+		LEFT JOIN cm_distribution_product AS cm_distribution_product  on cm_reporting_club.productId=cm_distribution_product.productId
+		LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+		LEFT JOIN cm_distribution AS cm_distribution ON  cm_reporting_club.distributionId = cm_distribution.id
+
+		<where>  cm_reporting_club.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_club.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+			<if test="productName != null and productName!='' "> and p.name  like concat('%', #{productName}, '%')</if>
+
+		</where>
+		group by cm_reporting_club.id
+		order by cm_reporting_club.createTime desc
+	</select>
+
+	<select id="getCmReportingClubCount" parameterType="com.caimei365.commodity.model.po.CmReportingClub" resultType="int">
+		select count(1)
+		from cm_reporting_club AS cm_reporting_club
+		<where>  cm_reporting_club.delFlag = 0
+			<if test="id != null  and  id != ''">
+				and cm_reporting_club.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+		</where>
+		group by cm_reporting_club.id
+	</select>
+
+
+	<select id="getCmReportingClubById" parameterType="String" resultMap="CmReportingClubResult">
+		<include refid="selectCmReportingClubVo"/>,
+		cso.shopOrderNo,
+		cso.orderTime
+		from cm_reporting_club AS cm_reporting_club
+		LEFT JOIN cm_distribution_product AS cm_distribution_product  on cm_reporting_club.productId=cm_distribution_product.productId
+		LEFT JOIN product p ON  cm_distribution_product.productId = p.productID
+		LEFT JOIN cm_distribution AS cm_distribution ON  cm_reporting_club.distributionId = cm_distribution.id
+		left join cm_shop_order cso on cso.orderID = cm_reporting_club.orderID
+		where  cm_reporting_club.delFlag = 0 and cm_reporting_club.id = #{id}
+	</select>
+
+	<select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmReportingClub" resultType="String">
+		select id
+		from cm_reporting_club AS cm_reporting_club
+		<where>  cm_reporting_club.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_club.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+		</where>
+		group by cm_reporting_club.id
+	</select>
+
+	<select id="getById" parameterType="com.caimei365.commodity.model.po.CmReportingClub" resultType="String">
+		select id
+		from cm_reporting_club AS cm_reporting_club
+		<where>  cm_reporting_club.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_club.id
+				<if test="id.toString().toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toString().toUpperCase().indexOf('=')!=-1">
+					<if test="id.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.toString().substring(id.toString().toUpperCase().indexOf('=')+1,id.toString().length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+		</where>
+		group by cm_reporting_club.id
+		order by cm_reporting_club.createTime desc
+		limit 0,1
+	</select>
+
+	<select id="findUserByMobile"  resultType="int">
+		select count (1)
+		FROM user user
+		WHERE user.bindMobile=#{mobile}
+		<if test="oldUserId !=null and oldUserId !=''">
+			and user.userId!=#{oldUserId}
+		</if>
+		<if test="userIdentity !=null">
+			and user.userIdentity=#{userIdentity}
+		</if>
+		limit 0,1
+	</select>
+	<insert id="addCmReportingClub" parameterType="com.caimei365.commodity.model.po.CmReportingClub" useGeneratedKeys="true" keyProperty="id">
+		insert into cm_reporting_club
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">id,</if>
+			<if test="clubName != null and clubName != ''">clubName,</if>
+			<if test="linkMan != null and linkMan != ''">linkMan,</if>
+			<if test="mobile != null and mobile != ''">mobile,</if>
+			<if test="productId != null">productId,</if>
+			<if test="orderStatus != null">orderStatus,</if>
+			<if test="lockStatus != null">lockStatus,</if>
+			<if test="lockTime != null">lockTime,</if>
+			<if test="distributionId != null">distributionId,</if>
+			<if test="delFlag != null">delFlag,</if>
+			<if test="updateTime != null">updateTime,</if>
+			<if test="createTime != null">createTime,</if>
+			<if test="commission != null">commission,</if>
+			<if test="settleStatus != null">settleStatus,</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">#{id},</if>
+			<if test="clubName != null and clubName != ''">#{clubName},</if>
+			<if test="linkMan != null and linkMan != ''">#{linkMan},</if>
+			<if test="mobile != null and mobile != ''">#{mobile},</if>
+			<if test="productId != null">#{productId},</if>
+			<if test="orderStatus != null">#{orderStatus},</if>
+			<if test="lockStatus != null">#{lockStatus},</if>
+			<if test="lockTime != null">#{lockTime},</if>
+			<if test="distributionId != null">#{distributionId},</if>
+			<if test="delFlag != null">#{delFlag},</if>
+			<if test="updateTime != null">#{updateTime},</if>
+			<if test="createTime != null">#{createTime},</if>
+			<if test="commission != null">#{commission},</if>
+			<if test="settleStatus != null">#{settleStatus},</if>
+		</trim>
+	</insert>
+
+	<update id="updateCmReportingClub" parameterType="com.caimei365.commodity.model.po.CmReportingClub">
+		update cm_reporting_club
+		<trim prefix="SET" suffixOverrides=",">
+			<if test="clubName != null and clubName != ''">clubName = #{clubName},</if>
+			<if test="linkMan != null and linkMan != ''">linkMan = #{linkMan},</if>
+			<if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
+			<if test="productId != null">productId = #{productId},</if>
+			<if test="orderId != null">orderId = #{orderId},</if>
+			<if test="orderStatus != null">orderStatus = #{orderStatus},</if>
+			<if test="lockStatus != null">lockStatus = #{lockStatus},</if>
+			<if test="lockTime != null">lockTime = #{lockTime},</if>
+			<if test="distributionId != null">distributionId = #{distributionId},</if>
+			<if test="delFlag != null">delFlag = #{delFlag},</if>
+			<if test="updateTime != null">updateTime = #{updateTime},</if>
+			<if test="createTime != null">createTime = #{createTime},</if>
+			<if test="commission != null">commission = #{commission},</if>
+			<if test="settleStatus != null">settleStatus = #{settleStatus},</if>
+			<if test="settleTime != null">settleTime = #{settleTime},</if>
+			<if test="splitSettleStatus != null">splitSettleStatus = #{splitSettleStatus},</if>
+			<if test="splitSettleTime != null">splitSettleTime = #{splitSettleTime},</if>
+		</trim>
+		where id = #{id}
+	</update>
+
+	<update id="updateDelCmReportingClubByIds" parameterType="String">
+		update cm_reporting_club set delFlag=#{delFlag} where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
+
+	<delete id="delCmReportingClubById" parameterType="String">
+		delete
+		from cm_reporting_club where id = #{id}
+	</delete>
+
+	<delete id="delCmReportingClub" parameterType="com.caimei365.commodity.model.po.CmReportingClub">
+		delete
+		from cm_reporting_club AS cm_reporting_club
+		<where>
+			<if test="id != null  and id != ''">
+				and cm_reporting_club.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="clubName != null  and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_reporting_club.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_reporting_club.mobile = #{mobile}</if>
+			<if test="productId != null "> and cm_reporting_club.productId = #{productId}</if>
+			<if test="orderId != null "> and cm_reporting_club.orderId = #{orderId}</if>
+			<if test="orderStatus != null "> and cm_reporting_club.orderStatus = #{orderStatus}</if>
+			<if test="lockStatus != null "> and cm_reporting_club.lockStatus = #{lockStatus}</if>
+			<if test="distributionId != null "> and cm_reporting_club.distributionId = #{distributionId}</if>
+			<if test="delFlag != null "> and cm_reporting_club.delFlag = #{delFlag}</if>
+			<if test="updateTime != null "> and cm_reporting_club.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_club.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_club.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_club.settleStatus = #{settleStatus}</if>
+		</where>
+	</delete>
+
+	<delete id="delCmReportingClubByIds" parameterType="String">
+		delete from cm_reporting_club where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 436 - 0
src/main/resources/mapper/CmReportingMemberMapper.xml

@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+		PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei365.commodity.mapper.CmReportingMemberMapper">
+
+	<resultMap type="com.caimei365.commodity.model.po.CmReportingMember" id="CmReportingMemberResult">
+		<result property="id"    column="id"    />
+		<result property="distributionId"    column="distributionId"    />
+		<result property="clubReportingId"    column="clubReportingId"    />
+		<result property="auditStatus"    column="auditStatus"    />
+		<result property="auditText"    column="auditText"    />
+		<result property="auditTime"    column="auditTime"    />
+		<result property="delFlag"    column="delFlag"    />
+		<result property="updateTime"    column="updateTime"    />
+		<result property="createTime"    column="createTime"    />
+		<result property="remarks"    column="remarks"    />
+		<result property="auditBy"    column="auditBy"    />
+		<result property="commission"    column="commission"    />
+		<result property="settleStatus"    column="settleStatus"    />
+		<result property="settleTime"    column="settleTime"    />
+	</resultMap>
+
+	<sql id="selectCmReportingMemberVo">
+		select
+			cm_reporting_member.id,
+			cm_reporting_member.distributionId,
+			cm_reporting_member.clubReportingId,
+			cm_reporting_member.auditStatus,
+			cm_reporting_member.auditText,
+			cm_reporting_member.auditTime,
+			cm_reporting_member.remarks,
+			cm_reporting_member.auditBy,
+			cm_reporting_member.delFlag,
+			cm_reporting_member.updateTime,
+			cm_reporting_member.createTime,
+			ifnull(cm_reporting_member.commission,0) AS commission,
+			cm_reporting_member.settleStatus,
+			cm_reporting_member.settleTime
+	</sql>
+
+	<select id="getByCmReportingMember" parameterType="com.caimei365.commodity.model.po.CmReportingMember" resultMap="CmReportingMemberResult">
+		<include refid="selectCmReportingMemberVo"/>
+		from cm_reporting_member AS cm_reporting_member
+		<where>  cm_reporting_member.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_member.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null  and  auditStatus != '' "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+		group by cm_reporting_member.id
+		order by cm_reporting_member.createTime desc
+		limit 0,1
+	</select>
+
+	<select id="getCmReportingMemberList" parameterType="com.caimei365.commodity.model.po.CmReportingMember" resultMap="CmReportingMemberResult">
+		<include refid="selectCmReportingMemberVo"/>
+		from cm_reporting_member AS cm_reporting_member
+		<where>  cm_reporting_member.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_member.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null  and  auditStatus != '' "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+		group by cm_reporting_member.id
+		order by cm_reporting_member.createTime desc
+	</select>
+
+	<select id="getCmDistributionMemberList"  resultMap="CmReportingMemberResult">
+		<include refid="selectCmReportingMemberVo"/>,
+		cso.shopOrderNo,
+		cso.orderTime
+		from cm_reporting_member AS cm_reporting_member
+		left join  cm_reporting_club AS cm_reporting_club on cm_reporting_club.id=cm_reporting_member.clubReportingId
+		left join cm_distribution AS cm_distribution on cm_distribution.id=cm_reporting_member.distributionId
+		left join cm_shop_order cso on cso.orderID = cm_reporting_club.orderID
+		LEFT JOIN cm_receipt_order_relation crr ON crr.orderId = cm_reporting_club.orderID AND crr.delFlag = '0'
+		LEFT JOIN cm_discern_receipt cdr ON crr.receiptId = cdr.id
+		<where>  cm_reporting_member.delFlag = 0 and cm_distribution.delFlag = 0
+			<if test="cmDistribution.id != null  and cmDistribution.id != ''">
+				and cm_distribution.id
+				<if test="cmDistribution.id.toUpperCase().indexOf('=')==-1">
+					= #{cmDistribution.id}
+				</if>
+				<if test="cmDistribution.id.toUpperCase().indexOf('=')!=-1">
+					<if test="cmDistribution.id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="cmDistribution.id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="cmDistribution.id.substring(cmDistribution.id.toUpperCase().indexOf('=')+1,cmDistribution.id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="cmDistribution.userId != null "> and cm_distribution.userId = #{cmDistribution.userId}</if>
+			<if test="cmDistribution.name != null  and cmDistribution.name != ''"> and cm_distribution.name like concat('%', #{cmDistribution.name}, '%')</if>
+			<if test="cmDistribution.linkMan != null  and cmDistribution.linkMan != ''"> and cm_distribution.linkMan = #{cmDistribution.linkMan}</if>
+			<if test="cmDistribution.mobile != null  and cmDistribution.mobile != ''"> and cm_distribution.mobile = #{cmDistribution.mobile}</if>
+			<if test="cmDistribution.password != null  and cmDistribution.password != ''"> and cm_distribution.password = #{cmDistribution.password}</if>
+			<if test="cmDistribution.corporateName != null  and cmDistribution.corporateName != ''"> and cm_distribution.corporateName like concat('%', #{cmDistribution.corporateName}, '%')</if>
+			<if test="cmDistribution.splitCode != null  and cmDistribution.splitCode != ''"> and cm_distribution.splitCode = #{cmDistribution.splitCode}</if>
+			<if test="cmDistribution.bankName != null  and cmDistribution.bankName != ''"> and cm_distribution.bankName like concat('%', #{cmDistribution.bankName}, '%')</if>
+			<if test="cmDistribution.bankAccount != null  and cmDistribution.bankAccount != ''"> and cm_distribution.bankAccount = #{cmDistribution.bankAccount}</if>
+			<if test="cmDistribution.status != null "> and cm_distribution.status = #{cmDistribution.status}</if>
+			<if test="cmDistribution.qrCode != null  and cmDistribution.qrCode != ''"> and cm_distribution.qrCode = #{cmDistribution.qrCode}</if>
+			<if test="cmDistribution.parentId != null "> and cm_distribution.parentId = #{cmDistribution.parentId}</if>
+			<if test="cmDistribution.parentIds != null  and cmDistribution.parentIds != ''"> and cm_distribution.parentIds = #{cmDistribution.parentIds}</if>
+			<if test="cmDistribution.updateTime != null "> and cm_distribution.updateTime = #{cmDistribution.updateTime}</if>
+			<if test="cmDistribution.addTime != null "> and cm_distribution.addTime = #{cmDistribution.addTime}</if>
+			<if test="clubName != null and clubName != ''"> and cm_reporting_club.clubName like concat('%', #{clubName}, '%')</if>
+			<if test="settleStatus != null"> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="splitSettleStatus != null "> and cm_reporting_club.splitSettleStatus = #{splitSettleStatus}</if>
+			<if test="payWay != null"> and cdr.payWay = #{payWay}</if>
+			<if test="shopOrderNo != null and shopOrderNo != '' "> and cso.shopOrderNo = #{shopOrderNo}</if>
+			<if test="startTime != null and startTime != ''"> and cso.orderTime > #{startTime}</if>
+			<if test="endTime != null and endTime != ''"> and cso.orderTime &lt; #{endTime}</if>
+		</where>
+		group by cm_reporting_member.id
+		order by cm_reporting_member.createTime desc
+	</select>
+
+
+	<select id="getCmReportingMemberCount" resultType="Integer">
+		select count(1)
+		from cm_reporting_member AS cm_reporting_member
+		left join cm_distribution AS cm_distribution on cm_distribution.id=cm_reporting_member.distributionId
+		<where>  cm_reporting_member.delFlag = 0
+			and cm_distribution.delFlag = 0
+			and cm_distribution.status= 90
+			and cm_reporting_member.auditStatus= 2
+			and cm_reporting_member.commission is not null
+			<if test="distributionId != null  and distributionId != ''"> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="parentId != null "> and (cm_distribution.id = #{parentId} or  cm_distribution.parentId = #{parentId})</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+		</where>
+	</select>
+
+
+
+
+	<select id="getCmReportingMemberCommission" resultType="BigDecimal">
+		select sum(cm_reporting_member.commission)
+		from cm_reporting_member AS cm_reporting_member
+		left join cm_distribution AS cm_distribution on cm_distribution.id=cm_reporting_member.distributionId
+		<where>  cm_reporting_member.delFlag = 0
+			and cm_distribution.delFlag = 0
+			and cm_distribution.status= 90
+			and cm_reporting_member.auditStatus= 2
+			and cm_reporting_member.commission is not null
+			<if test="distributionId != null  and distributionId != ''"> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="parentId != null "> and (cm_distribution.id = #{parentId} or  cm_distribution.parentId = #{parentId})</if>
+			<if test="linkMan != null  and linkMan != ''"> and cm_distribution.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cm_distribution.mobile = #{mobile}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+		</where>
+	</select>
+	<select id="getCmReportingMemberSplitCommission" resultType="BigDecimal">
+		SELECT ifnull(sum(IFNULL(cop.organizeCostPrice*cop.num,cop.price*cop.organizePercent*cop.num)),0)
+		from cm_reporting_club a
+		left join cm_distribution cd on cd.id = a.distributionId
+		left join cm_order co on co.orderID = a.orderID
+		left join cm_shop_order cso on cso.orderID = a.orderID
+		left join cm_order_product cop on cop.orderID = a.orderID
+		LEFT JOIN cm_receipt_order_relation crr ON crr.orderId = a.orderID AND crr.delFlag = '0'
+		LEFT JOIN cm_discern_receipt cdr ON crr.receiptId = cdr.id
+		<where>  a.delFlag = 0
+			and cd.delFlag = 0
+			and cd.status= 90
+			and a.commission is not null
+			<if test="orderID != null  "> and a.orderID = #{orderID}</if>
+			<if test="distributionId != null  and distributionId != ''"> and a.distributionId = #{distributionId}</if>
+			<if test="parentId != null "> and (cd.id = #{parentId} or  cd.parentId = #{parentId})</if>
+			<if test="linkMan != null  and linkMan != ''"> and cd.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cd.mobile = #{mobile}</if>
+			<if test="splitSettleStatus != null "> and a.splitSettleStatus = #{splitSettleStatus}</if>
+			<if test="payWay != null "> and cdr.payWay = #{payWay}</if>
+		</where>
+	</select>
+
+	<select id="getCmReportingMemberSplitCount" resultType="Integer">
+		SELECT count(1)
+		from cm_reporting_club a
+		left join cm_distribution cd on cd.id = a.distributionId
+		left join cm_order co on co.orderID = a.orderID
+		left join cm_shop_order cso on cso.orderID = a.orderID
+		left join cm_order_product cop on cop.orderID = a.orderID
+		LEFT JOIN cm_receipt_order_relation crr ON crr.orderId = a.orderID AND crr.delFlag = '0'
+		LEFT JOIN cm_discern_receipt cdr ON crr.receiptId = cdr.id
+		<where>  a.delFlag = 0
+			and cd.delFlag = 0
+			and cd.status= 90
+			and a.commission is not null
+			<if test="distributionId != null  and distributionId != ''"> and a.distributionId = #{distributionId}</if>
+			<if test="parentId != null "> and (cd.id = #{parentId} or  cd.parentId = #{parentId})</if>
+			<if test="linkMan != null  and linkMan != ''"> and cd.linkMan = #{linkMan}</if>
+			<if test="mobile != null  and mobile != ''"> and cd.mobile = #{mobile}</if>
+			<if test="splitSettleStatus != null "> and a.splitSettleStatus = #{splitSettleStatus}</if>
+			<if test="payWay != null "> and cdr.payWay = #{payWay}</if>
+		</where>
+	</select>
+
+
+
+	<select id="getCmReportingMemberById" parameterType="String" resultMap="CmReportingMemberResult">
+		<include refid="selectCmReportingMemberVo"/>
+		from cm_reporting_member AS cm_reporting_member
+		where  cm_reporting_member.delFlag = 0 and cm_reporting_member.id = #{id}
+	</select>
+
+	<select id="getByIds" parameterType="com.caimei365.commodity.model.po.CmReportingMember" resultType="String">
+		select id
+		from cm_reporting_member AS cm_reporting_member
+		<where>  cm_reporting_member.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_member.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null  and  auditStatus != '' "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+		group by cm_reporting_member.id
+	</select>
+
+	<select id="getById" parameterType="com.caimei365.commodity.model.po.CmReportingMember" resultType="String">
+		select id
+		from cm_reporting_member AS cm_reporting_member
+		<where>  cm_reporting_member.delFlag = 0
+			<if test="id != null  and id != ''">
+				and cm_reporting_member.id
+				<if test="id.toString().toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toString().toUpperCase().indexOf('=')!=-1">
+					<if test="id.toString().toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toString().toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.toString().substring(id.toString().toUpperCase().indexOf('=')+1,id.toString().length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null  and  auditStatus != '' "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+		group by cm_reporting_member.id
+		limit 0,1
+	</select>
+	<select id="getCount" resultType="Integer">
+		select count(1)
+		from cm_reporting_member AS cm_reporting_member
+		<where>  cm_reporting_member.delFlag = 0
+			<if test="id != null "> and cm_reporting_member.id = #{id}</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditBy != null "> and cm_reporting_member.auditBy = #{auditBy}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="remarks != null  and remarks != ''"> and cm_reporting_member.remarks = #{remarks}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+	</select>
+
+	<insert id="addCmReportingMember" parameterType="com.caimei365.commodity.model.po.CmReportingMember" useGeneratedKeys="true" keyProperty="id">
+		insert into cm_reporting_member
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">id,</if>
+			<if test="distributionId != null">distributionId,</if>
+			<if test="clubReportingId != null">clubReportingId,</if>
+			<if test="auditStatus != null">auditStatus,</if>
+			<if test="auditText != null and auditText != ''">auditText,</if>
+			<if test="auditBy != null">auditBy,</if>
+			<if test="auditTime != null">auditTime,</if>
+			<if test="delFlag != null">delFlag,</if>
+			<if test="updateTime != null">updateTime,</if>
+			<if test="createTime != null">createTime,</if>
+			<if test="remarks != null and remarks != ''">remarks,</if>
+			<if test="commission != null">commission,</if>
+			<if test="settleStatus != null">settleStatus,</if>
+			<if test="settleTime != null">settleTime,</if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides=",">
+			<if test="id != null and id != ''">#{id},</if>
+			<if test="distributionId != null">#{distributionId},</if>
+			<if test="clubReportingId != null">#{clubReportingId},</if>
+			<if test="auditStatus != null">#{auditStatus},</if>
+			<if test="auditText != null and auditText != ''">#{auditText},</if>
+			<if test="auditBy != null">#{auditBy},</if>
+			<if test="auditTime != null">#{auditTime},</if>
+			<if test="delFlag != null">#{delFlag},</if>
+			<if test="updateTime != null">#{updateTime},</if>
+			<if test="createTime != null">#{createTime},</if>
+			<if test="remarks != null and remarks != ''">#{remarks},</if>
+			<if test="commission != null">#{commission},</if>
+			<if test="settleStatus != null">#{settleStatus},</if>
+			<if test="settleTime != null">#{settleTime},</if>
+		</trim>
+	</insert>
+
+	<update id="updateCmReportingMember" parameterType="com.caimei365.commodity.model.po.CmReportingMember">
+		update cm_reporting_member
+		<trim prefix="SET" suffixOverrides=",">
+			<if test="distributionId != null">distributionId = #{distributionId},</if>
+			<if test="clubReportingId != null">clubReportingId = #{clubReportingId},</if>
+			<if test="auditStatus != null">auditStatus = #{auditStatus},</if>
+			<if test="auditText != null and auditText != ''">auditText = #{auditText},</if>
+			<if test="auditBy != null">auditBy = #{auditBy},</if>
+			<if test="auditTime != null">auditTime = #{auditTime},</if>
+			<if test="delFlag != null">delFlag = #{delFlag},</if>
+			<if test="updateTime != null">updateTime = #{updateTime},</if>
+			<if test="createTime != null">createTime = #{createTime},</if>
+			<if test="remarks != null and remarks != ''">remarks = #{remarks},</if>
+			<if test="commission != null">commission = #{commission},</if>
+			<if test="settleStatus != null">settleStatus = #{settleStatus},</if>
+			<if test="settleTime != null">settleTime = #{settleTime},</if>
+		</trim>
+		where id = #{id}
+	</update>
+
+	<update id="updateDelCmReportingMemberByIds" parameterType="String">
+		update cm_reporting_member set delFlag=#{delFlag} where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
+
+	<delete id="delCmReportingMemberById" parameterType="String">
+		delete
+		from cm_reporting_member where id = #{id}
+	</delete>
+
+	<delete id="delCmReportingMember" parameterType="com.caimei365.commodity.model.po.CmReportingMember">
+		delete
+		from cm_reporting_member AS cm_reporting_member
+		<where>
+			<if test="id != null  and id != ''">
+				and cm_reporting_member.id
+				<if test="id.toUpperCase().indexOf('=')==-1">
+					= #{id}
+				</if>
+				<if test="id.toUpperCase().indexOf('=')!=-1">
+					<if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+					<if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+					<foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+						#{idIn}
+					</foreach>
+				</if>
+			</if>
+			<if test="distributionId != null "> and cm_reporting_member.distributionId = #{distributionId}</if>
+			<if test="clubReportingId != null "> and cm_reporting_member.clubReportingId = #{clubReportingId}</if>
+			<if test="auditStatus != null  and  auditStatus != '' "> and cm_reporting_member.auditStatus = #{auditStatus}</if>
+			<if test="auditText != null  and auditText != ''"> and cm_reporting_member.auditText = #{auditText}</if>
+			<if test="auditTime != null "> and cm_reporting_member.auditTime = #{auditTime}</if>
+			<if test="delFlag != null "> and cm_reporting_member.delFlag = #{delFlag}</if>
+			<if test="updateTime != null "> and cm_reporting_member.updateTime = #{updateTime}</if>
+			<if test="createTime != null "> and cm_reporting_member.createTime = #{createTime}</if>
+			<if test="commission != null "> and cm_reporting_member.commission = #{commission}</if>
+			<if test="settleStatus != null "> and cm_reporting_member.settleStatus = #{settleStatus}</if>
+			<if test="settleTime != null "> and cm_reporting_member.settleTime = #{settleTime}</if>
+		</where>
+	</delete>
+
+	<delete id="delCmReportingMemberByIds" parameterType="String">
+		delete from cm_reporting_member where id in
+		<foreach item="id" collection="ids" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 41 - 0
src/main/resources/mapper/PriceMapper.xml

@@ -34,6 +34,27 @@
                 order by cs.price asc limit 1) ccs on ccs.productId=p.productId
         where p.productID = #{productId}
     </select>
+
+    <select id="getDistributionDetailPrice" resultType="com.caimei365.commodity.model.vo.PriceVo">
+        select p.productID                  as productId,
+               p.actStatus,
+               (select normalPrice
+                from cm_sku
+                where productId = #{productId} and organizeId = 0
+                order by price asc
+                limit 1)                    as normalPrice,
+               p.priceFlag,
+               p.step,
+               p.shopID                     as shopId,
+               cdp.clubTaxPoint                   as taxRate,
+               cdp.includedTax,
+               cdp.invoiceType,
+               0 as svipProductFlag,
+               p.productType
+        from cm_distribution_product cdp
+        left join product p on p.productID = cdp.productId
+        where cdp.productID = #{productId}
+    </select>
     <select id="getMinPrice" resultType="com.caimei365.commodity.model.vo.PriceVo">
         select normalPrice, price
         from cm_sku
@@ -265,6 +286,26 @@
         where cs.productId = #{productId} and cs.organizeId = 0
         ORDER BY cs.price ASC
     </select>
+    <select id="findDistributionSkus" resultType="com.caimei365.commodity.model.dto.Sku">
+        select cds.skuId,
+               cds.price,
+               normalPrice,
+               cds.costPrice,
+               ifnull(ladderPriceFlag, 0)                                                                           as ladderPriceFlag,
+               cds.costCheckFlag AS costCheckFlag,
+               cds.shopPercent as costProportional,
+               ifnull(stock, 0)                                                                                     as stock,
+               unit,
+               ifnull(minBuyNumber, (SELECT buyNum
+                                     FROM product_ladder_price
+                                     WHERE skuId = cs.skuId
+                                     ORDER BY buyNum asc
+                                     LIMIT 1))                                                                      AS minBuyNumber
+        from cm_sku cs
+        left join cm_distribution_sku cds on cs.skuId = cds.skuId
+        where cds.productId = #{productId} and cs.organizeId = 0
+        ORDER BY cds.price ASC
+    </select>
     <select id="findOrganizeProductSkus" resultType="com.caimei365.commodity.model.dto.Sku">
         SELECT skuId,
                price,