分销后台相关接口 现金充值 记录明细

This commit is contained in:
张松
2025-10-27 10:31:09 +08:00
parent 6c3f5e22d7
commit ac002cb1dd
27 changed files with 1406 additions and 582 deletions

View File

@@ -2,28 +2,23 @@ package com.czg.controller.admin;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.annotation.SaCheckMainShop;
import com.czg.constant.TableValueConstant;
import com.czg.market.dto.MkDistributionConfigDTO;
import com.czg.market.dto.MkEnableConfigDTO;
import com.czg.market.dto.MkRedemptionConfigDTO;
import com.czg.market.service.MkDistributionAmountFlowService;
import com.czg.market.service.MkDistributionConfigService;
import com.czg.market.service.MkEnableConfigService;
import com.czg.market.service.MkRedemptionConfigService;
import com.czg.market.vo.MkDistributionConfigVO;
import com.czg.market.vo.MkEnableConfigVO;
import com.czg.market.vo.MkRedemptionCodeVO;
import com.czg.market.vo.MkRedemptionConfigVO;
import com.czg.market.vo.*;
import com.czg.order.dto.MkDistributionPayDTO;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.czg.utils.AssertUtil;
import com.czg.validator.group.UpdateGroup;
import com.mybatisflex.core.paginate.Page;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.groups.Default;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Map;
/**
*
* 分销相关
@@ -34,6 +29,8 @@ import org.springframework.web.bind.annotation.*;
public class DistributionController {
@Resource
private MkDistributionConfigService configService;
@Resource
private MkDistributionAmountFlowService distributionAmountFlowService;
/**
* 配置信息详情
@@ -41,7 +38,7 @@ public class DistributionController {
@SaAdminCheckPermission(value = "distribution:detail", name = "分销配置")
@GetMapping
public CzgResult<MkDistributionConfigVO> detail() {
return CzgResult.success(configService.detail(StpKit.USER.getMainShopId()));
return CzgResult.success(configService.detail(StpKit.USER.getShopId()));
}
/**
@@ -57,5 +54,29 @@ public class DistributionController {
}
/**
* 现金充值
* @param payParam 充值信息
* @return 是否成功
*/
@PostMapping("/cashPay")
public CzgResult<Boolean> cashPayOrder(@Validated @RequestBody MkDistributionPayDTO payParam) {
AssertUtil.isNull(payParam.getShopId(), "店铺id不能为空");
AssertUtil.isNull(payParam.getAmount(), "充值金额不能为空");
AssertUtil.isTrue(payParam.getAmount().compareTo(BigDecimal.ZERO) == 0, "金额不为0");
return CzgResult.success(configService.cashPayOrder(StpKit.USER.getLoginIdAsLong(), payParam));
}
/**
* 金额记录
* @param type manual_recharge充值 self_recharge自助充值 refund退款 manual_sub手动扣减 sub统扣减
* @param key 搜索
*/
@GetMapping("/flow")
public CzgResult<Map<String, Object>> flow(@RequestParam(required = false) String type, @RequestParam(required = false) String key) {
return CzgResult.success(distributionAmountFlowService.pageInfo(StpKit.USER.getShopId(), type, key));
}
}

View File

@@ -0,0 +1,33 @@
package com.czg.controller.user;
import com.czg.order.dto.MkDistributionPayDTO;
import com.czg.market.service.MkDistributionConfigService;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
*
* 分销相关
* @author Administrator
*/
@RestController
@RequestMapping("/user/distribution")
public class UDistributionController {
@Resource
private MkDistributionConfigService configService;
/**
* 分销员购买
*/
@PostMapping("/pay")
public CzgResult<Map<String, Object>> pay(@Validated @RequestBody MkDistributionPayDTO payDTO) {
return CzgResult.success(configService.pay(StpKit.USER.getLoginIdAsLong(), payDTO));
}
}

View File

@@ -0,0 +1,72 @@
package com.czg.controller;
import com.czg.annotation.Debounce;
import com.czg.order.dto.MkDistributionPayDTO;
import com.czg.resp.CzgResult;
import com.czg.service.order.service.DistributionPayService;
import com.czg.system.service.SysParamsService;
import com.czg.utils.ServletUtil;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 支付
*
* @author ww
* @description
*/
@RestController
@RequestMapping("/pay/distribution")
public class DistributionPayController {
@Resource
private DistributionPayService payService;
@DubboReference
private SysParamsService paramsService;
@PostMapping("/cashPay")
@Debounce(value = "#payParam.checkOrderPay.orderId")
public CzgResult<Object> cashPayOrder(@RequestHeader Long shopId, @Validated @RequestBody MkDistributionPayDTO payParam) {
payParam.setShopId(shopId);
return payService.cashPayOrder(payParam);
}
/**
* 小程序支付
* payType 必填 支付方式aliPay 支付宝wechatPay 微信
* openId 必填
*/
@PostMapping("/ltPayOrder")
@Debounce(value = "#payParam.checkOrderPay.orderId")
public CzgResult<Map<String, Object>> ltPayOrder(@RequestHeader Long shopId, HttpServletRequest request, @Validated @RequestBody MkDistributionPayDTO payParam) {
payParam.setShopId(shopId);
return payService.ltPayOrder(ServletUtil.getClientIP(request), payParam);
}
/**
* 正扫
*/
@PostMapping("/scanPay")
@Debounce(value = "#payParam.checkOrderPay.orderId")
public CzgResult<Map<String, Object>> scanPayOrder(@RequestHeader Long shopId, HttpServletRequest request, @Validated @RequestBody MkDistributionPayDTO payParam) {
payParam.setShopId(shopId);
return payService.scanPayOrder(ServletUtil.getClientIP(request), payParam);
}
/**
* 反扫
* authCode 必填 扫描码
*/
@PostMapping("/microPay")
@Debounce(value = "#payParam.checkOrderPay.orderId")
public CzgResult<Map<String, Object>> microPayOrder(@RequestHeader Long shopId, @Validated @RequestBody MkDistributionPayDTO payParam) {
payParam.setShopId(shopId);
return payService.microPayOrder(payParam);
}
}

View File

@@ -2,6 +2,7 @@ package com.czg.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson2.JSONObject;
import com.czg.CzgPayUtils;
import com.czg.entity.CzgBaseRespParams;
@@ -14,7 +15,9 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
/**
* 回调
@@ -37,6 +40,13 @@ public class NotifyController {
private ShopTableOrderStatisticService shopTableOrderStatisticService;
@GetMapping("testOpen")
public Map<String, String> test1(String code) throws Exception {
// return WxService.v3Pay("oeQYq5LzW-kSxJL9TR4s_UmOmNLE", new BigDecimal("0.01"), "测试", "testZs" + RandomUtil.randomNumbers(20), "test");
return null;
}
@RequestMapping("/payCallBack")
public String notifyCallBack(@RequestBody CzgBaseRespParams respParams) {
JSONObject czg = CzgPayUtils.getCzg(respParams);