From dd556df997e268153bf1a74616f49b25db11ed3f Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 08 八月 2025 15:37:35 +0800 Subject: [PATCH] 赛事模块 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 37 insertions(+), 10 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentServiceImpl.java index 1b304a6..4f3d5d3 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentServiceImpl.java @@ -7,23 +7,30 @@ import com.dsh.communityWorldCup.entity.WorldCup; import com.dsh.communityWorldCup.entity.WorldCupPayment; import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; +import com.dsh.communityWorldCup.entity.WorldCupStore; import com.dsh.communityWorldCup.feignclient.account.AppUserClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; import com.dsh.communityWorldCup.feignclient.course.CoursePackageOrderStudentClient; import com.dsh.communityWorldCup.feignclient.course.model.CoursePackageOrderStudent; +import com.dsh.communityWorldCup.feignclient.other.StoreClient; +import com.dsh.communityWorldCup.feignclient.other.model.Store; import com.dsh.communityWorldCup.mapper.WorldCupPaymentMapper; import com.dsh.communityWorldCup.model.DeductionClassHourList; import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService; import com.dsh.communityWorldCup.service.IWorldCupPaymentService; import com.dsh.communityWorldCup.service.IWorldCupService; +import com.dsh.communityWorldCup.service.IWorldCupStoreService; import com.dsh.communityWorldCup.util.PayMoneyUtil; import com.dsh.communityWorldCup.util.ResultUtil; +import com.dsh.communityWorldCup.util.UUIDUtil; import net.bytebuddy.asm.Advice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; @@ -37,6 +44,8 @@ @Autowired private IWorldCupPaymentParticipantService worldCupPaymentParticipantService; + @Autowired + private IWorldCupStoreService worldCupStoreService; @Autowired private IWorldCupService worldCupService; @@ -46,6 +55,8 @@ @Resource private AppUserClient appUserClient; + @Resource + private StoreClient storeClient; @Resource private CoursePackageOrderStudentClient coursePackageOrderStudentClient; @@ -59,7 +70,7 @@ * @return */ @Override - public ResultUtil cancelMyWorldCup(Long id) { + public ResultUtil cancelMyWorldCup(Long id) throws Exception { WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getById(id); WorldCupPayment worldCupPayment = this.getById(worldCupPaymentParticipant.getWorldCupPaymentId()); WorldCup worldCup = worldCupService.getById(worldCupPayment.getWorldCupId()); @@ -82,16 +93,32 @@ //总排款金额(排除已经参加比赛的数据) BigDecimal multiply = worldCupPayment.getUnitPrice().multiply(new BigDecimal(list1.size())); //微信支付 + + List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list(); + Integer storeId = list.get(0).getStoreId(); + Store store = storeClient.queryStoreById(storeId); if(worldCupPayment.getPayType() == 1){ - Map<String, String> map = payMoneyUtil.wxRefund(worldCupPayment.getPayOrderNo(), worldCupPayment.getCode(), - worldCupPayment.getAmount().toString(), multiply.toString(), "/base/worldCup/wxRefundWorldCupCallback"); - if(!"SUCCESS".equals(map.get("return_code"))){ - System.err.println("-------------微信退款失败---------"); - System.err.println(map.get("return_msg")); - return ResultUtil.error("微信退款失败"); - }else{ - worldCupPayment.setRefundAmount(multiply); - this.updateById(worldCupPayment); + if (store.getOperatorId()!=null && store.getOperatorId()!=0){ + String smidVx= storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); + if (!StringUtils.hasLength(smidVx)){ + System.err.println("运营商未配置微信商户号,获取支付失败!"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String codeRefund = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);// 退款单号 + // 运营商退款 + payMoneyUtil.weixinRefundV3(smidVx, codeRefund, worldCupPayment.getPayOrderNo(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxRefundWorldCupCallback1"); + }else { + Map<String, String> map = payMoneyUtil.wxRefund(worldCupPayment.getPayOrderNo(), worldCupPayment.getCode(), + worldCupPayment.getAmount().toString(), multiply.toString(), "/base/worldCup/wxRefundWorldCupCallback"); + if (!"SUCCESS".equals(map.get("return_code"))) { + System.err.println("-------------微信退款失败---------"); + System.err.println(map.get("return_msg")); + return ResultUtil.error("微信退款失败"); + } else { + worldCupPayment.setRefundAmount(multiply); + worldCupPayment.setWorldCupId(null); + this.updateById(worldCupPayment); + } } } //支付宝支付 -- Gitblit v1.7.1