分账提现接口

This commit is contained in:
张松
2025-10-27 19:48:30 +08:00
parent 3c2af59c4c
commit 1560e5a36f
12 changed files with 227 additions and 14 deletions

View File

@@ -4,6 +4,7 @@ import com.czg.market.vo.DistributionCenterShopVO;
import com.mybatisflex.core.BaseMapper;
import com.czg.market.entity.MkDistributionUser;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -22,4 +23,6 @@ public interface MkDistributionUserMapper extends BaseMapper<MkDistributionUser>
* 查询我的分销店铺列表 未开通
*/
List<DistributionCenterShopVO> selectUnDistributionShops(Long shopUserId);
boolean updateIncome(BigDecimal pendingIncome, BigDecimal receivedIncome, BigDecimal withdrawIncome, Long id);
}

View File

@@ -0,0 +1,14 @@
package com.czg.service.market.mapper;
import com.mybatisflex.core.BaseMapper;
import com.czg.market.entity.MkDistributionWithdrawFlow;
/**
* 提现记录表 映射层。
*
* @author ww
* @since 2025-10-27
*/
public interface MkDistributionWithdrawFlowMapper extends BaseMapper<MkDistributionWithdrawFlow> {
}

View File

@@ -13,6 +13,7 @@ import com.czg.account.service.UserInfoService;
import com.czg.constant.TableValueConstant;
import com.czg.exception.CzgException;
import com.czg.market.dto.MkDistributionUserDTO;
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
import com.czg.market.entity.MkDistributionAmountFlow;
import com.czg.market.entity.MkDistributionConfig;
import com.czg.market.entity.MkDistributionLevelConfig;
@@ -73,10 +74,12 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
private MkDistributionAmountFlowService distributionAmountFlowService;
@Resource
private MkDistributionFlowService distributionFlowService;
@Resource
private MkDistributionUserService distributionUserService;
@DubboReference
private AppWxServiceImpl appWxService;
@DubboReference
private ShopUserService shopUserService;
@DubboReference
@@ -372,25 +375,17 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
.setSourceId(sourceId).setAmount(amount).setType(type).setStatus(flag ? TableValueConstant.DistributionFlow.Status.SUCCESS.getCode() :
TableValueConstant.DistributionFlow.Status.PENDING.getCode())
.setRewardAmount(rewardAmount).setBillNo(IdUtil.simpleUUID());
distributionFlowService.save(mkDistributionFlow);
distributionUserService.updateIncome(!flag ? rewardAmount : BigDecimal.ZERO,
flag ? rewardAmount : BigDecimal.ZERO, BigDecimal.ZERO, distributionUser.getId());
if (flag) {
ShopUser shopUser = shopUserService.getById(distributionUser.getShopUserId());
UserInfo userInfo = userInfoService.getById(shopUser.getUserId());
distributionAmountFlowService.save(new MkDistributionAmountFlow()
.setType(TableValueConstant.DistributionAmountFlow.Type.SELF_RECHARGE.getCode())
.setShopId(config.getShopId()).setAmount(finalAmount).setChangeAmount(amount).setSourceId(mkDistributionFlow.getId())
.setRemark("自助充值").setOpAccount(StpKit.USER.getAccount()));
try {
JSONObject jsonObject = appWxService.transferBalance(userInfo.getWechatOpenId(), userInfo.getRealName(), rewardAmount, "分销奖励", mkDistributionFlow.getBillNo());
mkDistributionFlow.setPackageInfo(jsonObject.getString("package_info"));
mkDistributionFlow.setResp(jsonObject.toJSONString());
}catch (Exception e) {
mkDistributionFlow.setResp(e.getMessage());
mkDistributionFlow.setStatus(TableValueConstant.DistributionFlow.Status.FAIL.getCode());
}
}
distributionFlowService.save(mkDistributionFlow);
}
@@ -410,4 +405,14 @@ public class MkDistributionUserServiceImpl extends ServiceImpl<MkDistributionUse
deepReward(config, sourceShopUserInfo, amount, sourceId, type, orderNo, 1);
}, "分销方法执行失败");
}
@Override
public void updateIncome(BigDecimal pendingIncome, BigDecimal receivedIncome, BigDecimal withdrawIncome, Long id) {
boolean flag = mapper.updateIncome(pendingIncome, receivedIncome, withdrawIncome, id);
}
@Override
public Boolean withdraw(long userId, MkDistributionWithdrawFlowDTO withdrawFlowDTO) {
return null;
}
}

View File

@@ -0,0 +1,20 @@
package com.czg.service.market.service.impl;
import com.czg.market.dto.MkDistributionWithdrawFlowDTO;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MkDistributionWithdrawFlow;
import com.czg.market.service.MkDistributionWithdrawFlowService;
import com.czg.service.market.mapper.MkDistributionWithdrawFlowMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* 提现记录表 服务层实现。
*
* @author ww
* @since 2025-10-27
*/
@Service
public class MkDistributionWithdrawFlowServiceImpl extends ServiceImpl<MkDistributionWithdrawFlowMapper, MkDistributionWithdrawFlow> implements MkDistributionWithdrawFlowService{
}

View File

@@ -3,6 +3,14 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.market.mapper.MkDistributionUserMapper">
<update id="updateIncome">
update mk_distribution_user
set total_income = total_income + #{pendingIncome},
pending_income = pending_income + #{pendingIncome},
received_income = received_income + #{receivedIncome},
withdrawn_income = withdrawn_income + #{withdrawIncome}
where id = #{id}
</update>
<select id="selectMyDistributionShops" resultType="com.czg.market.vo.DistributionCenterShopVO">
select shop.id as shopId,

View File

@@ -0,0 +1,7 @@
<?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.czg.service.market.mapper.MkDistributionWithdrawFlowMapper">
</mapper>