Browse Source

feat(dealer): 实现分销订单结算及分成逻辑

- 添加一级、二级、三级分销分成处理
- 更新经销商资金记录
- 修改资金记录字段名 describe 为 comments
- 增加订单查询条件 resourceId 和 month
- 实现根据用户ID获取经销商用户信息方法- 优化导入语句,统一使用通配符导入
- 注入 ShopDealerCapitalService 和 ShopDealerUserService 服务
- 移除 saveSettled 方法上的 @OperationLog 注解
dev
科技小王子 13 hours ago
parent
commit
2a0c75a1ca
  1. 61
      src/main/java/com/gxwebsoft/sdy/controller/SdyDealerOrderController.java
  2. 2
      src/main/java/com/gxwebsoft/shop/entity/ShopDealerCapital.java
  3. 3
      src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml
  4. 6
      src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml
  5. 2
      src/main/java/com/gxwebsoft/shop/param/ShopDealerCapitalParam.java
  6. 8
      src/main/java/com/gxwebsoft/shop/param/ShopDealerOrderParam.java
  7. 1
      src/main/java/com/gxwebsoft/shop/service/ShopDealerUserService.java
  8. 7
      src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerUserServiceImpl.java

61
src/main/java/com/gxwebsoft/sdy/controller/SdyDealerOrderController.java

@ -7,12 +7,8 @@ import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.sdy.param.SdyDealerOrderImportParam;
import com.gxwebsoft.shop.entity.ShopDealerApply;
import com.gxwebsoft.shop.entity.ShopDealerOrder;
import com.gxwebsoft.shop.entity.ShopDealerReferee;
import com.gxwebsoft.shop.service.ShopDealerApplyService;
import com.gxwebsoft.shop.service.ShopDealerOrderService;
import com.gxwebsoft.shop.service.ShopDealerRefereeService;
import com.gxwebsoft.shop.entity.*;
import com.gxwebsoft.shop.service.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
@ -40,6 +36,10 @@ public class SdyDealerOrderController extends BaseController {
private ShopDealerApplyService shopDealerApplyService;
@Resource
private ShopDealerRefereeService shopDealerRefereeService;
@Resource
private ShopDealerCapitalService shopDealerCapitalService;
@Resource
private ShopDealerUserService shopDealerUserService;
/**
* excel批量导入售电云分销订单
@ -157,12 +157,59 @@ public class SdyDealerOrderController extends BaseController {
}
@PreAuthorize("hasAuthority('shop:shopDealerOrder:update')")
@OperationLog
@Operation(summary = "结算订单")
@PutMapping()
public ApiResult<?> saveSettled(@RequestBody ShopDealerOrder shopDealerOrder) {
shopDealerOrder.setSettleTime(LocalDateTime.now());
shopDealerOrder.setIsSettled(1);
if (shopDealerOrderService.updateById(shopDealerOrder)) {
// 一级分成
ShopDealerUser dealerUser = shopDealerUserService.getByUserIdRel(shopDealerOrder.getUserId());
dealerUser.setMoney(dealerUser.getMoney().add(shopDealerOrder.getFirstMoney()));
if(shopDealerUserService.updateById(dealerUser)){
System.out.println("一级分成 = 1");
ShopDealerCapital shopDealerCapital = new ShopDealerCapital();
shopDealerCapital.setUserId(shopDealerOrder.getFirstUserId());
shopDealerCapital.setOrderId(dealerUser.getId());
shopDealerCapital.setMoney(shopDealerOrder.getFirstMoney());
shopDealerCapital.setComments("分销订单结算");
shopDealerCapital.setToUserId(shopDealerOrder.getUserId());
shopDealerCapitalService.save(shopDealerCapital);
}
// 二级分成
ShopDealerUser dealerUser2 = shopDealerUserService.getByUserIdRel(shopDealerOrder.getSecondUserId());
if(ObjectUtil.isNotEmpty(dealerUser2)){
dealerUser2.setMoney(dealerUser2.getMoney().add(shopDealerOrder.getSecondMoney()));
if (shopDealerUserService.updateById(dealerUser2)) {
System.out.println("二级分成 = 2");
ShopDealerCapital shopDealerCapital2 = new ShopDealerCapital();
shopDealerCapital2.setUserId(shopDealerOrder.getSecondUserId());
shopDealerCapital2.setOrderId(dealerUser.getId());
shopDealerCapital2.setMoney(shopDealerOrder.getSecondMoney());
shopDealerCapital2.setComments("分销订单结算");
shopDealerCapital2.setToUserId(shopDealerOrder.getUserId());
shopDealerCapitalService.save(shopDealerCapital2);
}
}
// 三级分成
ShopDealerUser dealerUser3 = shopDealerUserService.getByUserIdRel(shopDealerOrder.getThirdUserId());
if(ObjectUtil.isNotEmpty(dealerUser3)){
dealerUser3.setMoney(dealerUser3.getMoney().add(shopDealerOrder.getThirdMoney()));
if (shopDealerUserService.updateById(dealerUser3)) {
System.out.println("三级分成 = 3");
ShopDealerCapital shopDealerCapital3 = new ShopDealerCapital();
shopDealerCapital3.setUserId(shopDealerOrder.getThirdUserId());
shopDealerCapital3.setOrderId(dealerUser.getId());
shopDealerCapital3.setMoney(shopDealerOrder.getThirdMoney());
shopDealerCapital3.setComments("分销订单结算");
shopDealerCapital3.setToUserId(shopDealerOrder.getUserId());
shopDealerCapitalService.save(shopDealerCapital3);
}
}
return success("结算成功");
}
return fail("结算失败");

2
src/main/java/com/gxwebsoft/shop/entity/ShopDealerCapital.java

@ -39,7 +39,7 @@ public class ShopDealerCapital implements Serializable {
private BigDecimal money;
@Schema(description = "描述")
private String describe;
private String comments;
@Schema(description = "对方用户ID")
private Integer toUserId;

3
src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml

@ -22,9 +22,6 @@
<if test="param.money != null">
AND a.money = #{param.money}
</if>
<if test="param.describe != null">
AND a.describe LIKE CONCAT('%', #{param.describe}, '%')
</if>
<if test="param.toUserId != null">
AND a.to_user_id = #{param.toUserId}
</if>

6
src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml

@ -18,6 +18,12 @@
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.resourceId != null">
AND ( a.user_id = #{param.resourceId} OR a.first_user_id = #{param.resourceId} OR a.second_user_id = #{param.resourceId} OR a.third_user_id = #{param.resourceId} )
</if>
<if test="param.month != null">
AND a.month = #{param.month}
</if>
<if test="param.orderId != null">
AND a.order_id = #{param.orderId}
</if>

2
src/main/java/com/gxwebsoft/shop/param/ShopDealerCapitalParam.java

@ -43,7 +43,7 @@ public class ShopDealerCapitalParam extends BaseParam {
private BigDecimal money;
@Schema(description = "描述")
private String describe;
private String comments;
@Schema(description = "对方用户ID")
@QueryField(type = QueryType.EQ)

8
src/main/java/com/gxwebsoft/shop/param/ShopDealerOrderParam.java

@ -78,4 +78,12 @@ public class ShopDealerOrderParam extends BaseParam {
@QueryField(type = QueryType.EQ)
private String comments;
@Schema(description = "关联ID")
@QueryField(type = QueryType.EQ)
private Integer resourceId;
@Schema(description = "月份")
@QueryField(type = QueryType.EQ)
private String month;
}

1
src/main/java/com/gxwebsoft/shop/service/ShopDealerUserService.java

@ -39,4 +39,5 @@ public interface ShopDealerUserService extends IService<ShopDealerUser> {
*/
ShopDealerUser getByIdRel(Integer id);
ShopDealerUser getByUserIdRel(Integer userId);
}

7
src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerUserServiceImpl.java

@ -44,4 +44,11 @@ public class ShopDealerUserServiceImpl extends ServiceImpl<ShopDealerUserMapper,
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public ShopDealerUser getByUserIdRel(Integer userId) {
ShopDealerUserParam param = new ShopDealerUserParam();
param.setUserId(userId);
return param.getOne(baseMapper.selectListRel(param));
}
}

Loading…
Cancel
Save