package com.dsh.activity.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.dsh.activity.entity.THuiminAgreement;
|
import com.dsh.activity.entity.THuiminAgreementSetting;
|
import com.dsh.activity.entity.THuiminCard;
|
import com.dsh.activity.entity.TPayHuimin;
|
import com.dsh.activity.feignclient.other.SiteClient;
|
import com.dsh.activity.feignclient.other.StoreClient;
|
import com.dsh.activity.feignclient.other.model.Store;
|
import com.dsh.activity.model.response.HuiminAgreementVO;
|
import com.dsh.activity.model.response.HuiminCardVO;
|
import com.dsh.activity.service.*;
|
import com.dsh.activity.util.PayMoneyUtil;
|
import com.dsh.activity.util.ResultUtil;
|
import com.dsh.activity.util.TokenUtil;
|
import com.dsh.activity.util.UUIDUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* 惠民卡回调
|
* @author zhibing.pu
|
* @date 2023/6/24 11:27
|
*/
|
@RestController
|
@RequestMapping("/huimin/callBack")
|
public class HuiminCallBack {
|
|
@Autowired
|
private ICouponService couponService;
|
|
|
@Autowired
|
private HuiminAgreementService huiminAgreementService;
|
|
@Autowired
|
private HuiminAgreementSettingService huiminAgreementSettingService;
|
|
@Resource
|
private HuiminCardService huiminCardService;
|
@Resource
|
private PayHuiminService payHuiminService;
|
@Resource
|
private SiteClient siteClient;
|
@Resource
|
private StoreClient storeClient;
|
@Resource
|
private PayMoneyUtil payMoneyUtil;
|
|
|
@Autowired
|
private TokenUtil tokenUtil;
|
private String smid = "2088330203191220";//平台支付宝商户号
|
|
|
/**
|
* 惠民卡支付宝支付回调接口
|
*/
|
@PostMapping("/aliPayHuiminCallback")
|
public void aliPayHuiminCallback(HttpServletRequest request, HttpServletResponse response) {
|
try {
|
Map<String, String> map = payMoneyUtil.alipayCallback(request);
|
if (null != map) {
|
String out_trade_no = map.get("out_trade_no");
|
String transaction_id = map.get("transaction_id");
|
TPayHuimin one = payHuiminService.getOne(new LambdaQueryWrapper<TPayHuimin>().eq(TPayHuimin::getCode, out_trade_no));
|
if (one!=null){
|
if (one.getStatus()==2){
|
PrintWriter out = response.getWriter();
|
out.write("success");
|
out.flush();
|
out.close();
|
}else{
|
one.setOrderNumber(transaction_id);
|
one.setStatus(2);
|
one.setPaymentTime(new Date());
|
payHuiminService.updateById(one);
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
/**
|
* 惠民卡微信支付回调接口
|
*/
|
@PostMapping("/weixinPayHuiminCallback")
|
public void weixinPayHuiminCallback(HttpServletRequest request, HttpServletResponse response) {
|
try {
|
Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
|
if (null != map) {
|
String out_trade_no = map.get("out_trade_no");
|
String transaction_id = map.get("transaction_id");
|
String result = map.get("result");
|
TPayHuimin one = payHuiminService.getOne(new LambdaQueryWrapper<TPayHuimin>().eq(TPayHuimin::getCode, out_trade_no));
|
if (one!=null){
|
if (one.getStatus()==2){
|
PrintWriter out = response.getWriter();
|
out.write(result);
|
out.flush();
|
out.close();
|
}else{
|
one.setOrderNumber(transaction_id);
|
one.setStatus(2);
|
one.setPaymentTime(new Date());
|
payHuiminService.updateById(one);
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
/**
|
* 惠民卡微信退款回调
|
* @param request
|
* @param response
|
*/
|
@ResponseBody
|
@PostMapping("/wxRefundHuiminCallback")
|
public void wxRefundHuiminCallback(HttpServletRequest request, HttpServletResponse response){
|
Map<String, String> map = payMoneyUtil.wxRefundCallback(request);
|
if(null != map){
|
String refund_id = map.get("refund_id");
|
String out_refund_no = map.get("out_refund_no");
|
String result = map.get("result");
|
TPayHuimin one = payHuiminService.getOne(new LambdaQueryWrapper<TPayHuimin>()
|
.eq(TPayHuimin::getCode, out_refund_no));
|
one.setRefundStatus(2);
|
one.setRefundTime(new Date());
|
one.setStatus(3);
|
one.setRefundNumber(refund_id);
|
payHuiminService.updateById(one);
|
PrintWriter out = null;
|
try {
|
out = response.getWriter();
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
out.println(result);
|
out.flush();
|
out.close();
|
}
|
}
|
}
|