ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
@@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.system.controller.general; import com.alipay.api.AlipayApiException; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.constant.factory.PageFactory; @@ -8,12 +9,16 @@ import com.stylefeng.guns.core.util.ExcelExportUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.TDriver; import com.stylefeng.guns.modular.system.model.TPubWithdrawal; import com.stylefeng.guns.modular.system.model.TSystemNotice; import com.stylefeng.guns.modular.system.service.ITDriverService; import com.stylefeng.guns.modular.system.service.ITPubWithdrawalService; import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; import com.stylefeng.guns.modular.system.util.HttpRequestUtil; import com.stylefeng.guns.modular.system.util.PushURL; import com.stylefeng.guns.modular.system.util.alipay.AlipayUtils; import com.stylefeng.guns.modular.system.util.alipay.UUIDUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -21,6 +26,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.*; /** @@ -40,6 +46,8 @@ @Autowired private ITSystemNoticeService tSystemNoticeService; @Autowired private ITDriverService driverService; /** * 跳转到提现列表首页 @@ -115,7 +123,7 @@ */ @RequestMapping(value = "/immediately") @ResponseBody public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) { public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) throws AlipayApiException { TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id); if (SinataUtil.isNotEmpty(tPubWithdrawal)){ // tPubWithdrawal.setState(state); //调用接口修改状态 @@ -125,10 +133,16 @@ Integer stateObj = 1; if (2 == state){ //同意提现 stateObj = 1; // 支付宝提现 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId()); System.err.println("支付宝提现返回信息"+AlipayUtils.aliWithdrawal(code,tPubWithdrawal.getMoney()+"",tPubWithdrawal.getCode(),tDriver.getIdCard())); tPubWithdrawal.setOutOrderNo( code); tPubWithdrawalService.updateById(tPubWithdrawal); }else if (3 == state){ //拒绝提现 stateObj = 2; } tPubWithdrawalService.updateById(tPubWithdrawal); // Map<String,String> map = new HashMap<>(); // map.put("id", String.valueOf(tPubWithdrawal.getId())); @@ -136,7 +150,6 @@ // String result = HttpRequestUtil.postRequest(PushURL.withdraw_auth_url, map); // System.out.println("提现审核接口 :【recordId="+tPubWithdrawal.getId().toString()+"】,调用接口:"+result); // 支付宝提现 //增加系统消息 TSystemNotice notice = new TSystemNotice(); ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java
@@ -42,6 +42,8 @@ * 提现金额 */ private BigDecimal money; // 提现订单号 private String outOrderNo; /** * 状态(1=待处理,2=成功,3=失败) */ @@ -203,4 +205,12 @@ ", withdrawalType=" + withdrawalType + "}"; } public String getOutOrderNo() { return outOrderNo; } public void setOutOrderNo(String outOrderNo) { this.outOrderNo = outOrderNo; } } ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/AlipayUtils.java
@@ -58,7 +58,7 @@ /** * 提现 */ public static String aliWithdrawal(String outBizNo, String money, String account, String idCard,String userName) throws AlipayApiException { public static String aliWithdrawal(String outBizNo, String money, String account, String idCard) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); @@ -81,7 +81,6 @@ payeeInfo.setIdentity(account); payeeInfo.setCertType("IDENTITY_CARD"); payeeInfo.setCertNo(idCard); payeeInfo.setName(userName); payeeInfo.setIdentityType("ALIPAY_LOGON_ID"); model.setPayeeInfo(payeeInfo); // 设置业务备注 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/alipay/UUIDUtil.java
New file @@ -0,0 +1,103 @@ package com.stylefeng.guns.modular.system.util.alipay; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; /** * 定义生成随机码的工具类 */ public class UUIDUtil { private int i = 1; /** * 定义生成原生的UUID随机码 * * @return */ public static String getNativeUUID() { return UUID.randomUUID().toString(); } /** * 生成32位随机码 * * @return */ public static String getRandomCode() { return UUIDUtil.getNativeUUID().replaceAll("-", ""); } /** * 获取给定长度的随机码 * * @param num * @return * @throws Exception */ public static String getRandomCode(Integer num) throws Exception { String str = null; if (0 < num) { if (num % 32 > 0) { Integer s = num / 32; Integer l = num % 32; StringBuffer sb = new StringBuffer(); for (int i = 0; i < s; i++) { sb.append(UUIDUtil.getRandomCode()); } sb.append(UUIDUtil.getRandomCode().substring(0, l)); str = sb.toString(); } else if (num % 32 == 0) { Integer s = num / 32; StringBuffer sb = new StringBuffer(); for (int i = 0; i < s; i++) { sb.append(UUIDUtil.getRandomCode()); } str = sb.toString(); } else { str = UUIDUtil.getRandomCode().substring(0, num); } } else { throw new Exception("参数只能大于0"); } return str; } /** * 获取根据当前时间的字符串数据 * * @return */ public synchronized static String getTimeStr() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS"); return simpleDateFormat.format(new Date()); } /** * @Description: 获取数字随机码 * @Author pzb * @Date 2021/8/11 16:52 * @Param * @Return * @Exception */ public static String getNumberRandom(Integer num) { if (null == num) { num = 32; } StringBuffer sb = new StringBuffer(); for (int i = 0; i < num; i++) { sb.append(Double.valueOf(Math.random() * 10).intValue()); } return sb.toString(); } }