Merge branch 'master' of https://gitee.com/super-shopkeeper/chaozhanggui
# Conflicts: # pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java
This commit is contained in:
commit
df26d12b1c
|
|
@ -49,7 +49,6 @@ import lombok.Setter;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -495,8 +494,7 @@ public class MerchantOrderController {
|
|||
|
||||
|
||||
@PostMapping(value = "orderList")
|
||||
public Result<Object> posTradeQuery(HttpServletRequest request, @RequestBody BasePosReq req)throws Exception{
|
||||
|
||||
public Object posTradeQuery(HttpServletRequest request, @RequestBody BasePosReq req)throws Exception{
|
||||
verify(req.getTimestamp(),req.getRequestId(),req.getAppId(),req.getToken(), req.getReqData());
|
||||
|
||||
PosTradeQueryReq tradeQueryReq=JSONObject.parseObject(req.getReqData(),PosTradeQueryReq.class);
|
||||
|
|
@ -1392,6 +1390,7 @@ public class MerchantOrderController {
|
|||
//首先验证签
|
||||
Map<String, String> tokenMap = TokenUtil.getToken(timestamp, requestId, appId, reqData);
|
||||
boolean sign = tokenMap.get("TOKEN").equals(token);
|
||||
System.out.println(token);
|
||||
MsgException.check(!sign,"签名错误");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,15 @@ package cn.pluss.platform.pos;
|
|||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class ReturnFundsReq extends BasePosReq{
|
||||
public class ReturnFundsReq implements Serializable {
|
||||
|
||||
|
||||
private String orderNumber;
|
||||
|
||||
private String sn;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -427,6 +427,8 @@ public interface MerchantOrderService extends IService<MerchantOrder> {
|
|||
// void sendPayCallBackArrival(String userId,String orderNumber,Double consumeFee);
|
||||
|
||||
|
||||
Result<Object> posTradeQuery(String requestId,String merchantCode,String date,String type,Integer page,Integer size);
|
||||
JSONObject posTradeQuery(String requestId,String merchantCode,String date,String type,Integer page,Integer size);
|
||||
|
||||
JSONObject posReturnFunds(String requestId,String orderNumber,String refundReason,String type, String noticeCode) ;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package cn.pluss.platform.merchantOrder.impl;
|
|||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.pluss.platform.IdCardService;
|
||||
import cn.pluss.platform.PushService;
|
||||
import cn.pluss.platform.activityConsumReturn.ActivityConsumReturnService;
|
||||
|
|
@ -2503,7 +2504,7 @@ public class MerchantOrderServiceImpl extends ServiceImpl<MerchantOrderMapper, M
|
|||
}
|
||||
|
||||
@Override
|
||||
public Result<Object> posTradeQuery(String requestId,String merchantCode, String date, String type, Integer pageIndex, Integer pageSize) {
|
||||
public JSONObject posTradeQuery(String requestId,String merchantCode, String date, String type, Integer pageIndex, Integer pageSize) {
|
||||
QueryWrapper<MerchantOrder> queryWrapper=new QueryWrapper<>();
|
||||
|
||||
queryWrapper.eq("merchantCode",merchantCode);
|
||||
|
|
@ -2571,7 +2572,153 @@ public class MerchantOrderServiceImpl extends ServiceImpl<MerchantOrderMapper, M
|
|||
}
|
||||
resp.put("respData",null);
|
||||
}
|
||||
return ResultGenerator.genSuccessResult(resp);
|
||||
return resp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject posReturnFunds(String requestId,String orderNumber, String refundReason, String type, String noticeCode) {
|
||||
JSONObject object=new JSONObject();
|
||||
// 更新通知的处理状态
|
||||
if (StringUtil.isNotEmpty(noticeCode)) {
|
||||
Notice queryNotice = new Notice();
|
||||
queryNotice.setNoticeCode(noticeCode);
|
||||
List<Notice> queryNoticeList = noticeService.queryNoticeList(queryNotice);
|
||||
if (queryNoticeList != null && queryNoticeList.size() > 0) {
|
||||
queryNotice = queryNoticeList.get(0);
|
||||
queryNotice.setIsDeal(1);
|
||||
queryNotice.setIsApply(1);
|
||||
noticeService.updateNotice(queryNotice);
|
||||
}
|
||||
}
|
||||
|
||||
MerchantOrderVO order = checkRefundOrderParams(orderNumber);
|
||||
order.setRemark(refundReason);
|
||||
MerchantChannelStatus channel = null;
|
||||
if("2".equals(order.getAisleSwitch())){
|
||||
channel = merchantChannelStatusService.getByMerchantCode(order.getMerchantCode(), 1);
|
||||
}else{
|
||||
channel = merchantChannelStatusService.getByMerchantCode(order.getMerchantCode(), Integer.valueOf(order.getAisleSwitch()));
|
||||
}
|
||||
MsgException.checkNull(channel,"订单通道获取异常");
|
||||
MsgException.check("7".equals(channel.getStatus()),"实时到账审核中,请耐心等待或者联系客服!");
|
||||
MsgException.check(!channel.isPayment(),"当前进件状态未通过,请耐心等待或联系客服!");
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
MerchantRefundOrder refundOrder = new MerchantRefundOrder();
|
||||
if (channel.getChannel() == 1) {
|
||||
resultMap = sxfPayService.refundPay(order, channel.getMerchantId());
|
||||
} else if (channel.getChannel() == 2) {
|
||||
MsgException.throwException("通道已关闭!");
|
||||
} else if (channel.getChannel() == 3) {
|
||||
resultMap = ryxPayService.refundPay(order, channel.getMerchantId());
|
||||
} else if (channel.getChannel() == 4) {
|
||||
resultMap = ysPayOldService.refundPay(order, channel.getMerchantId());
|
||||
}else if(channel.getChannel()==5){
|
||||
resultMap = lkLPayServiceImpl.refundPay(order,channel.getMerchantCode());
|
||||
}
|
||||
|
||||
else {
|
||||
object.put("code",ResultCode.FAIL);
|
||||
object.put("msg","不存在的通道");
|
||||
object.put("requestId",requestId);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
if (ResultCode.SUCCESS.code() != (Integer) resultMap.get("code")) {
|
||||
object.put("code",ResultCode.FAIL);
|
||||
object.put("msg",resultMap.get("msg") + "");
|
||||
object.put("requestId",requestId);
|
||||
return object;
|
||||
}
|
||||
MerchantOrder update = new MerchantOrder();
|
||||
if(StringUtil.isNotEmpty(order.getMarketAmt()) && order.getMarketAmt().doubleValue() > 0){
|
||||
update.setId(order.getId());
|
||||
update.setMarketAmt(BigDecimal.ZERO);
|
||||
}
|
||||
update.setRefundAmt(BigDecimal.valueOf(order.getConsumeFee()));
|
||||
merchantOrderMapper.updateById(update);
|
||||
refundOrder.convert(order, resultMap, channel.getMerchantId());
|
||||
order.setId(null);
|
||||
order.setUpdateTime(new Date());
|
||||
order.setStatus("2");
|
||||
order.setMarketAmt(BigDecimal.ZERO);
|
||||
order.setRefundAmt(BigDecimal.valueOf(order.getConsumeFee()));
|
||||
merchantOrderMapper.insert(order);
|
||||
realFansService.removeProfit(order.getOrderNumber());
|
||||
merchantRefundOrderMapper.insert(refundOrder);
|
||||
if("app".equals(type)){
|
||||
//向小程序后台推送退款消息
|
||||
String url = "https://shop.shouyinbei.net/addons/we7_wmall/payment/refund/notify.php";
|
||||
JSONObject params = new JSONObject();
|
||||
params.put("orderNumber",orderNumber);
|
||||
try {
|
||||
String result = HttpUtil.doPostJson(url, params.toJSONString());
|
||||
log.info("================>【app退款】消息通知结果:{}<================",result);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.info("================>【app退款】消息通知异常,异常信息:{}<================",e.getMessage());
|
||||
}
|
||||
}else{
|
||||
pushService.pushMsg(String.valueOf(order.getUserId()), PushService.REFUND_ORDER);
|
||||
}
|
||||
|
||||
|
||||
|
||||
object.put("code",ResultCode.SUCCESS);
|
||||
|
||||
object.put("requestId",requestId);
|
||||
|
||||
JSONObject data=new JSONObject();
|
||||
data.put("orderNumber",orderNumber);
|
||||
|
||||
switch (channel.getChannel()){
|
||||
case 1:
|
||||
JSONObject response=JSONObject.parseObject(resultMap.get("data")+"");
|
||||
String status=response.getString("tranSts");
|
||||
if("REFUNDSUC".equals(status)){
|
||||
data.put("status","1");
|
||||
object.put("msg","成功");
|
||||
}else if("REFUNDING".equals(status)){
|
||||
data.put("status","2");
|
||||
object.put("msg","退款中");
|
||||
}else if("REFUNDFAIL".equals(status)){
|
||||
data.put("status","3");
|
||||
object.put("msg","退款失败");
|
||||
}
|
||||
data.put("refundNo",response.get("origUuid"));
|
||||
data.put("refundTime",response.containsKey("finishTime")?response.get("finishTime"):null);
|
||||
data.put("refundAmt",response.get("amt"));
|
||||
data.put("oPayAmt",order.getConsumeFee());
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
//待修改
|
||||
response=JSONObject.parseObject(resultMap.get("data")+"");
|
||||
data.put("status","1");
|
||||
object.put("msg","成功");
|
||||
data.put("refundNo",response.get("out_trade_no"));
|
||||
data.put("refundTime",response.get("trade_time"));
|
||||
data.put("refundAmt",response.get("refund_amount"));
|
||||
data.put("oPayAmt",order.getConsumeFee());
|
||||
break;
|
||||
case 5:
|
||||
response=JSONObject.parseObject(resultMap.get("data")+"");
|
||||
data.put("status","1");
|
||||
object.put("msg","成功");
|
||||
data.put("refundNo",response.get("out_trade_no"));
|
||||
data.put("refundTime",response.get("trade_time"));
|
||||
data.put("refundAmt",response.get("refund_amount"));
|
||||
data.put("oPayAmt",order.getConsumeFee());
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return object;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue