소스 검색

分销系统V.1.0.0

kaick 1 년 전
부모
커밋
f03c279500

+ 17 - 4
src/main/java/com/caimei365/commodity/controller/ReportingClubApi.java

@@ -122,10 +122,10 @@ public class ReportingClubApi {
         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));
+            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));
+        map.put("commission", cmReportingClubService.getCmReportingMemberSplitCommission(null, cmDistribution.parentId(), cmDistribution.linkMan(), cmDistribution.mobile(), splitSettleStatus, payWay,null));
         map.put("cmDistributionList", cmDistributionVOS);
         return ResponseJson.success(map);
     }
@@ -140,11 +140,14 @@ public class ReportingClubApi {
         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));
+        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);
@@ -243,6 +246,16 @@ public class ReportingClubApi {
                     .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);
         }
@@ -254,7 +267,7 @@ public class ReportingClubApi {
     @ApiImplicitParams({
             @ApiImplicitParam(readOnly = true, name = "id", value = "机构意向订单报备记录Id"),
     })
-    @GetMapping("/updateSplitSettleStatus")
+    @PostMapping("/updateSplitSettleStatus")
     public ResponseJson updateSplitSettleStatus(String [] ids) {
         if (ids.length>0) {
             return ResponseJson.error("参数异常!", null);

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

@@ -87,7 +87,7 @@ public interface CmReportingMemberMapper
      *
      * @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);
+    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);
     /**
      * 通过对象查询分销订单记录总数
      *

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

@@ -66,6 +66,9 @@ public class CmReportingMember implements Serializable
     /** 商品佣金 */
     private BigDecimal commission;
 
+    /** 分账佣金 */
+    private BigDecimal splitCommission;
+
     /** 结算状态: 1已完结 ,0未完结 */
     private Integer settleStatus;
 
@@ -79,6 +82,14 @@ public class CmReportingMember implements Serializable
     /** 凭证图片集合 */
     private List<CmRelatedImage> cmRelatedImageList;
 
+    public BigDecimal getSplitCommission() {
+        return splitCommission;
+    }
+
+    public void setSplitCommission(BigDecimal splitCommission) {
+        this.splitCommission = splitCommission;
+    }
+
     public CmReportingClub getCmReportingClub() {
         return cmReportingClub;
     }

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

@@ -40,6 +40,8 @@ public class CmDistributionProductVO  implements Serializable
     /** 机构价格(同为二手商品的交易价) */
     private BigDecimal price;
 
+    /** 上架状态:1上架,2下架 */
+    private String validFlag;
 
     public static List<CmDistributionProductVO> setValues(List<CmDistributionProduct> cmDistributionProductList) {
         List<CmDistributionProductVO> cmDistributionProductVOList = new ArrayList<>();
@@ -63,6 +65,7 @@ public class CmDistributionProductVO  implements Serializable
             cmDistributionProductVO.setShopName(cmDistributionProduct.getShopName());
             cmDistributionProductVO.setSkuId(cmDistributionProduct.getSkuId());
             cmDistributionProductVO.setPrice(cmDistributionProduct.getPrice());
+            cmDistributionProductVO.setValidFlag(cmDistributionProduct.getValidFlag());
         }
         return cmDistributionProductVO;
     }

+ 8 - 1
src/main/java/com/caimei365/commodity/model/vo/CmReportingMemberVO.java

@@ -44,9 +44,14 @@ public class CmReportingMemberVO implements Serializable
     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;
     /** 凭证图片集合 */
@@ -74,7 +79,9 @@ public class CmReportingMemberVO implements Serializable
             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()));
         }

+ 3 - 1
src/main/java/com/caimei365/commodity/service/CmReportingClubService.java

@@ -58,13 +58,15 @@ public interface CmReportingClubService {
 
     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);
+    public BigDecimal getCmReportingMemberSplitCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay,Integer orderID);
 
     public void updateCmReportingClub(CmReportingClub cmReportingClub);
 

+ 8 - 2
src/main/java/com/caimei365/commodity/service/impl/CmReportingClubServiceImpl.java

@@ -90,6 +90,12 @@ public class CmReportingClubServiceImpl implements CmReportingClubService {
         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);
@@ -109,8 +115,8 @@ public class CmReportingClubServiceImpl implements CmReportingClubService {
     }
 
     @Override
-    public BigDecimal getCmReportingMemberSplitCommission(String distributionId, Integer parentId, String linkMan, String mobile, Integer settleStatus, Integer payWay) {
-        BigDecimal cmReportingMemberSplitCommission = cmReportingMemberMapper.getCmReportingMemberSplitCommission(distributionId, parentId, linkMan, mobile, settleStatus, payWay);
+    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;
     }
 

+ 6 - 1
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -571,7 +571,12 @@ public class PageServiceImpl implements PageService {
      */
     @Override
     public ResponseJson<ProductDetailVo> getProductDetails(Integer productId, Integer userId) {
-        Integer identity = priceMapper.getIdentityByUserId(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);
         //当该商品的“能否退货”字段的值是“不能”时,新增特殊商品退货须知提示

+ 5 - 1
src/main/resources/mapper/CmReportingMemberMapper.xml

@@ -173,6 +173,9 @@
 		</where>
 	</select>
 
+
+
+
 	<select id="getCmReportingMemberCommission" resultType="BigDecimal">
 		select sum(cm_reporting_member.commission)
 		from cm_reporting_member AS cm_reporting_member
@@ -190,7 +193,7 @@
 		</where>
 	</select>
 	<select id="getCmReportingMemberSplitCommission" resultType="BigDecimal">
-		SELECT ifnull(sum(IFNULL(cop.organizeCostPrice,cop.price*cop.organizePercent)),0)
+		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
@@ -202,6 +205,7 @@
 			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>