package com.ibeetl.admin.console.web;
|
|
import com.ibeetl.admin.console.model.MoneyModel;
|
import com.ibeetl.admin.console.model.UserAccountModel;
|
import com.ibeetl.admin.console.model.UserModel;
|
import com.ibeetl.admin.console.service.CuserConsoleService;
|
import com.ibeetl.admin.console.service.MoneyConsoleService;
|
import com.ibeetl.admin.console.service.OrderManageService;
|
import com.ibeetl.admin.console.service.PayConsoleService;
|
import com.ibeetl.admin.console.util.UserLock;
|
import com.ibeetl.admin.core.util.payutil.WxUtil;
|
import com.ibeetl.admin.core.web.JsonResult;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@Controller
|
@Slf4j
|
public class PayConsoleController {
|
|
|
@Autowired
|
PayConsoleService payConsoleService;
|
|
@Autowired
|
CuserConsoleService cuserConsoleService;
|
|
@Autowired
|
MoneyConsoleService moneyConsoleService;
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
/**
|
* 微信小程序现金红包支付
|
* @param payOrderId 支付订单号
|
* @return
|
*
|
*/
|
@PostMapping("/wxxcxpay")
|
@ResponseBody
|
@UserLock
|
JsonResult<String> wxXcxPay(String userId, String payOrderId){
|
|
if(StringUtils.isEmpty(payOrderId)){
|
return JsonResult.failMessage("payOrderId不能为空");
|
}
|
|
MoneyModel moneyModel = new MoneyModel();
|
moneyModel.setPayOrderId(payOrderId);
|
moneyModel = moneyConsoleService.queryMoney(moneyModel);
|
|
if(moneyModel == null){
|
return JsonResult.failMessage("未查询到此订单号");
|
}
|
|
moneyModel.setStatus("3");
|
moneyModel.setPayFlag("3");
|
moneyModel.setExamineTime(sdf.format(new Date()));
|
if(!moneyModel.getCreateUserId().equals(userId)){
|
moneyModel.setUnpassReason("userId和支付订单里面的userId不一致");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("userId和支付订单里面的userId不一致");
|
}
|
if(StringUtils.isEmpty(moneyModel.getCreateUserId())){
|
moneyModel.setUnpassReason("用户ID不能为空");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("用户ID不能为空");
|
}
|
if(StringUtils.isEmpty(moneyModel.getMoney())){
|
moneyModel.setUnpassReason("金钱不能为空");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("金钱不能为空");
|
}
|
if(Double.parseDouble(moneyModel.getMoney()) <= 1){
|
moneyModel.setUnpassReason("金额不能等于或小于1");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("金额不能等于或小于1");
|
}
|
|
// 查询用户信息
|
UserModel userModel = cuserConsoleService.queryUserById(moneyModel.getCreateUserId());
|
if(userModel == null){
|
moneyModel.setUnpassReason("用户不存在");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("用户不存在");
|
}
|
if(userModel.getDelFlag().equals("1")){
|
moneyModel.setUnpassReason("此用户已经删除");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("此用户已经删除");
|
}
|
// 查询用户账号表
|
UserAccountModel userAccountModel = cuserConsoleService.queryAccountInfo(userModel.getUserId(), userModel.getMobilePhone());
|
if(userAccountModel == null){
|
moneyModel.setUnpassReason("此用户未查询到账户信息");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("此用户未查询到账户信息");
|
}
|
if(userAccountModel.getDelFlag().equals("1")){
|
moneyModel.setUnpassReason("账户信息已删除");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("账户信息已删除");
|
}
|
if(userAccountModel.getWithdrawMoney() == 0){
|
moneyModel.setUnpassReason("可体现金额为0");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("可体现金额为0");
|
}
|
if(userAccountModel.getWithdrawMoney() < Double.parseDouble(moneyModel.getMoney())){
|
moneyModel.setUnpassReason("可体现金额不足");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("可体现金额不足");
|
}
|
if(!userModel.getOpenId().equals(moneyModel.getOpenId())){
|
moneyModel.setUnpassReason("用户和支付的openId不一致");
|
moneyConsoleService.updateMoney(moneyModel);
|
return JsonResult.failMessage("用户和支付的openId不一致");
|
}
|
|
// 审核通过
|
moneyModel.setStatus("2");
|
moneyModel.setPayFlag("0");
|
moneyConsoleService.updateMoney(moneyModel);
|
|
Map<String, String> m = new HashMap<>();
|
// 用户openId
|
m.put("reOpenid", userModel.getOpenId());
|
// 红包金额
|
m.put("totalAmount", moneyModel.getMoney());
|
// 用户ID
|
m.put("userId", userModel.getUserId());
|
// 账号ID
|
m.put("accountId", userAccountModel.getAccountId());
|
// 当前账号余额
|
m.put("accountBeforeMoney", String.valueOf(userAccountModel.getMoney()));
|
// 当前可体现金额
|
m.put("withdrawBeforeMoney", String.valueOf(userAccountModel.getWithdrawMoney()));
|
m.put("payOrderId", moneyModel.getOrderId());
|
return payConsoleService.wxXcxPay(m, moneyModel.getWxpayFlag());
|
}
|
|
}
|