zoujiajian 1 سال پیش
والد
کامیت
9c8ebe8a75

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserMirrorShopDistributeWaitingSendPoints.java

@@ -45,6 +45,11 @@ public class UserMirrorShopDistributeWaitingSendPoints extends BaseEntity{
 	 */
 	private Integer rate;
 
+	/**
+	 * 提成类型 1.镜像店铺订单 2.加盟提成订单 默认1
+	 */
+	private Integer type;
+
 	@Getter
 	public enum Status{
 		close("分销订单关闭,积分奖励不分发"),

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserMirrorShopDsOrderDetailView.java

@@ -19,7 +19,7 @@ import java.util.Date;
 @Setter
 @SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.sku_id,o.money,o.refund_money,o.coupon_money,o.created_time from order_don o inner join user_mirror_shop_order_relate uor on uor.order_id = o.id where :yhs_id: and o.status not in ('close','noPayment') :time:) od" +
 		" left join goods_don g on g.id = od.goods_id" +
-		" inner join user_mirror_shop_distribute_waiting_send_points dp on dp.order_id = od.id")
+		" inner join user_mirror_shop_distribute_waiting_send_points dp on dp.order_id = od.id and :ty:")
 public class UserMirrorShopDsOrderDetailView {
 
 	@DbField("select nickname from user where id = od.user_id limit 1")

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserMirrorShopDsOrderStatisticsView.java

@@ -16,7 +16,7 @@ import java.math.BigDecimal;
 @Getter
 @Setter
 @SearchBean(tables = "(select o.id,o.user_id,o.goods_id,o.money,o.refund_money,o.status from order_don o inner join user_mirror_shop_order_relate uor on uor.order_id = o.id where :yhs_id: and o.status not in ('close','noPayment') :time:) od left join goods_don g on g.id = od.goods_id" +
-		" inner join yh_shop_distribute_waiting_send_points dp on dp.order_id = od.id",
+		" inner join user_mirror_shop_distribute_waiting_send_points dp on dp.order_id = od.id and dp.type = 1",
 		groupBy = "od.goods_id,g.title")
 public class UserMirrorShopDsOrderStatisticsView {
 

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserMirrorShopView.java

@@ -86,6 +86,12 @@ public class UserMirrorShopView {
 	@DbField("ys.update_time")
 	private Date updateTime;
 
+	/**
+	 * 加盟提成
+	 */
+	@DbIgnore
+	private BigDecimal joinFeeTaskMoney;
+
 	@DbIgnore
 	private BigDecimal availableMoney;
 

+ 3 - 1
netflix-dao/src/main/resources/mapper/UserMirrorShopDistributeMoneyApplyMapper.xml

@@ -6,9 +6,11 @@
 
     <select id="getApplyDetailByUserId" resultType="com.cyksj.model.views.UserMirrorShopView">
         select ifnull(cast(sum(da.money) / 100 as decimal(10, 2)), 0) as gotMoney,
-               cast(u.mp_money / 100 as decimal(10, 2))               as availableMoney
+               cast(u.mp_money / 100 as decimal(10, 2))               as availableMoney,
+               cast(sum(dp.money) / 100 as decimal(10, 2))               as joinFeeTaskMoney
         from (select id, mp_money from user where id = #{userId} limit 1) u
                  left join user_mirror_shop_distribute_money_apply da on da.user_id = u.id and verify_status = 'success'
+        left join user_mirror_shop_distribute_waiting_send_points dp on dp.shop_user_id = u.id and dp.type = 2 and dp.send_status in ('waiting','success')
         group by u.id, u.mp_money
     </select>
 </mapper>

+ 29 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/UserMirrorShopOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.cyksj.common.util.Jsons;
 import com.cyksj.config.zfb.BaseZfbConfig;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
+import com.cyksj.mapper.mirrorshop.UserMirrorShopDistributeWaitingSendPointsMapper;
 import com.cyksj.mapper.mirrorshop.UserMirrorShopFeeOrderDonMapper;
 import com.cyksj.mapper.mirrorshop.UserMirrorShopMapper;
 import com.cyksj.mapper.sys.SysConfigMapper;
@@ -23,6 +24,7 @@ import com.cyksj.model.request.OrderAttach;
 import com.cyksj.model.request.UserMirrorShopSubmitReq;
 import com.cyksj.service.order.UserMirrorShopOrderService;
 import com.cyksj.service.pay.AliPayCommonService;
+import com.cyksj.service.sys.SysConfigService;
 import com.cyksj.service.user.UserService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -61,6 +63,10 @@ public class UserMirrorShopOrderServiceImpl implements UserMirrorShopOrderServic
 
 	private final static Sequence SEQUENCE = new Sequence(0);
 
+	private final SysConfigService sysConfigService;
+
+	private final UserMirrorShopDistributeWaitingSendPointsMapper userMirrorShopDistributeWaitingSendPointsMapper;
+
 	@Override
 	public UserMirrorShopFeeOrderDon submitOpenShop(UserMirrorShopSubmitReq shopSubmitReq) throws Exception {
 		Long userId = shopSubmitReq.getUserId();
@@ -154,5 +160,28 @@ public class UserMirrorShopOrderServiceImpl implements UserMirrorShopOrderServic
 		} catch (DuplicateKeyException e) {
 
 		}
+
+		if (orderDon.getMpId() != null) {
+			UserMirrorShop masterShop = userMirrorShopMapper.selectById(orderDon.getMpId());
+			if (masterShop == null) {
+				return;
+			}
+			log.info("用户:{}加盟店铺:{}订单:{}分销,发放提成", orderDon.getUserId(), masterShop.getName(), orderDon.getId());
+			SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
+					.eq(SysConfig::getSysKey, Constant.MIRROR_SHOP_COMMISSION)
+					.last("limit 1"));
+			UserMirrorShopDistributeConfigDto shopDistributeConfigDto = Jsons.parseObject(config.getSysValue(), UserMirrorShopDistributeConfigDto.class);
+			Integer feeRate = shopDistributeConfigDto.getFeeRate();
+			UserMirrorShopDistributeWaitingSendPoints waitingSendPoints = new UserMirrorShopDistributeWaitingSendPoints();
+			waitingSendPoints.setOrderId(orderDon.getId());
+			waitingSendPoints.setShopUserId(masterShop.getUserId());
+			waitingSendPoints.setSendStatus(UserMirrorShopDistributeWaitingSendPoints.Status.waiting);
+			waitingSendPoints.setMoney(BigDecimal.valueOf(feeRate).divide(BigDecimal.valueOf(100)).multiply(orderDon.getMoney()));
+			waitingSendPoints.setRate(feeRate);
+			waitingSendPoints.setUserId(orderDon.getUserId());
+			waitingSendPoints.setSendTime(DateUtil.offsetDay(orderDon.getPayTime(), 3));
+			waitingSendPoints.setType(2);
+			userMirrorShopDistributeWaitingSendPointsMapper.insert(waitingSendPoints);
+		}
 	}
 }

+ 8 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/mirrorshop/manage/CmsUserMirrorShopDataController.java

@@ -19,6 +19,7 @@ import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -128,7 +129,7 @@ public class CmsUserMirrorShopDataController {
 	 * 店铺分销订单收入详细
 	 */
 	@GetMapping("/get/distribute/orders/detail/data")
-	public Result<SearchResult<UserMirrorShopDsOrderDetailView>> getUserDistributeOrdersDetailView(Long firstDate, Long lastDate) {
+	public Result<SearchResult<UserMirrorShopDsOrderDetailView>> getUserDistributeOrdersDetailView(@RequestParam(defaultValue = "1") Integer type, Long firstDate, Long lastDate) {
 		long yhShopUserId = StpUserMirrorShopManageUser.getLoginIdAsLong();
 		UserMirrorShop yhShop = userMirrorShopMapper.selectOne(Wrappers.lambdaQuery(UserMirrorShop.class)
 				.eq(UserMirrorShop::getUserId, yhShopUserId).last("limit 1"));
@@ -148,6 +149,12 @@ public class CmsUserMirrorShopDataController {
 		if (StrUtil.isNotEmpty(timeSql)) {
 			builder.put("time", timeSql);
 		}
+		if (type == 1) {
+			builder.put("ty", " dp.type = 1");
+		} else {
+			//加盟订单提成
+			builder.put("ty", " dp.type = 2");
+		}
 		SearchResult<UserMirrorShopDsOrderDetailView> search = beanSearcher.search(UserMirrorShopDsOrderDetailView.class, builder.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}