From deb91eb570baecdae92aeeb105661209f59e06e2 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 01 四月 2025 14:23:46 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0 --- cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PayHuiminServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 105 insertions(+), 3 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PayHuiminServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PayHuiminServiceImpl.java index baa0086..481ac9f 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PayHuiminServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PayHuiminServiceImpl.java @@ -1,13 +1,33 @@ package com.dsh.activity.service.impl; +import cn.hutool.core.collection.CollUtil; +import com.alipay.api.AlipayApiException; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsh.activity.entity.THuiminAgreement; +import com.dsh.activity.entity.HuiminPayQuery; +import com.dsh.activity.entity.THuiminRecord; import com.dsh.activity.entity.TPayHuimin; -import com.dsh.activity.mapper.HuiminAgreementMapper; +import com.dsh.activity.entity.TStudent; +import com.dsh.activity.feignclient.account.AppUserClient; +import com.dsh.activity.feignclient.account.StudentClient; +import com.dsh.activity.feignclient.account.model.AppUser; import com.dsh.activity.mapper.PayHuiminMapper; -import com.dsh.activity.service.HuiminAgreementService; +import com.dsh.activity.model.response.SalesDetailVO; +import com.dsh.activity.service.HuiminRecordService; import com.dsh.activity.service.PayHuiminService; +import com.dsh.activity.util.DateUtil; +import com.dsh.activity.util.PayMoneyUtil; +import com.dsh.activity.util.ResultUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; /** * @author zhibing.pu @@ -15,5 +35,87 @@ */ @Service public class PayHuiminServiceImpl extends ServiceImpl<PayHuiminMapper, TPayHuimin> implements PayHuiminService { + @Autowired + private AppUserClient appUserClient; + @Autowired + private StudentClient studentClient; + @Autowired + private HuiminRecordService huiminRecordService; + @Resource + private PayMoneyUtil payMoneyUtil; + @Override + public Page<SalesDetailVO> selectPage(HuiminPayQuery query) { + Page<SalesDetailVO> salesDetailVOPage = baseMapper.selectSalesDetailPage(new Page<>(query.getCurrent(), query.getSize()), query); + List<SalesDetailVO> records = salesDetailVOPage.getRecords(); + if (CollUtil.isNotEmpty(records)){ + List<Integer> appUserIdList = records.stream().map(SalesDetailVO::getAppUserId).collect(Collectors.toList()); + List<AppUser> appUserList = appUserClient.queryAppUserBatch(appUserIdList); + Map<Integer, AppUser> appUserMap = appUserList.stream().collect(Collectors.toMap(AppUser::getId, appUser -> appUser)); + records.forEach(item->{ + AppUser appUser = appUserMap.get(item.getAppUserId()); + if (Objects.nonNull(appUser)){ + item.setUserName(appUser.getName()); + item.setPhone(appUser.getPhone()); + } + List<TStudent> studentList = studentClient.getStudentByIds(item.getStudentId()); + if (CollUtil.isNotEmpty(studentList)){ + item.setStudentName(studentList.stream().map(TStudent::getName).collect(Collectors.joining(","))); + } + }); + } + return salesDetailVOPage; + } + @Override + public Map<String, BigDecimal> getStaticsData(HuiminPayQuery query) { + return baseMapper.getStaticsData(query); + } + + @Override + public ResultUtil<?> refund(Integer id) throws AlipayApiException { + TPayHuimin payHuimin = this.getById(id); + if (Objects.nonNull(payHuimin)) { + Integer count = huiminRecordService.lambdaQuery().eq(THuiminRecord::getAppUserId, payHuimin.getAppUserId()) + .eq(THuiminRecord::getHuiminCardId, payHuimin.getCardId()) + .lt(THuiminRecord::getInsertTime, DateUtil.addDay(payHuimin.getPaymentTime(),7)) + .count(); + if (count > 0 || new Date().after(DateUtil.addDay(payHuimin.getPaymentTime(),7))) { + //超过七日或者七日内有使用记录的退款:更改状态,实际退款线下操作。 + payHuimin.setRefundStatus(3); + } else { + if (payHuimin.getPaymentType() == 1) { + Map<String, String> map = payMoneyUtil.wxRefund(payHuimin.getOrderNumber(), payHuimin.getCode(), + payHuimin.getSalesMoney().toString(), payHuimin.getSalesMoney().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 { + Map<String, String> map = payMoneyUtil.aliRefund(payHuimin.getOrderNumber(), payHuimin.getSalesMoney().toString()); + String return_code = map.get("code"); + if (!"10000".equals(return_code)) { + return ResultUtil.error(map.get("msg")); + } + String refund_id = map.get("trade_no"); + payHuimin.setRefundNumber(refund_id); + } + payHuimin.setRefundStatus(2); + } + payHuimin.setStatus(3); + payHuimin.setRefundTime(new Date()); + this.updateById(payHuimin); + } + return ResultUtil.success(); + } + + /** + * 导出数据 + * @param query + * @return + */ + @Override + public List<SalesDetailVO> exportData(HuiminPayQuery query) { + return baseMapper.exportData(query); + } } -- Gitblit v1.7.1