From b9cdaf658e0a5768ac2b494a95acf3d985d5a0a0 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 22 Jan 2025 15:12:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bonus-common-biz/bonus-common-biz.iml | 132 +--------- bonus-modules/bonus-cateen/bonus-cateen.iml | 232 +----------------- bonus-modules/bonus-modules.iml | 39 +-- .../bonus-smart-canteen.iml | 231 +---------------- .../canteen/common/utils/GetCustIdUtiles.java | 5 + .../canteen/common/utils/StringUtil.java | 22 ++ .../controller/BasicsComplaintController.java | 2 +- .../impl/BasicsComplaintServiceImpl.java | 2 + .../consumer/task/TaskToInsertSysUser.java | 2 + .../canteen/pay/controller/PayController.java | 99 +++++++- .../src/main/resources/bootstrap.yml | 11 + bonus-modules/pom.xml | 4 +- bonus.iml | 37 +-- 13 files changed, 154 insertions(+), 664 deletions(-) diff --git a/bonus-common-biz/bonus-common-biz.iml b/bonus-common-biz/bonus-common-biz.iml index 7ee5a8f..1daccae 100644 --- a/bonus-common-biz/bonus-common-biz.iml +++ b/bonus-common-biz/bonus-common-biz.iml @@ -1,136 +1,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/bonus-modules/bonus-cateen/bonus-cateen.iml b/bonus-modules/bonus-cateen/bonus-cateen.iml index 6b83bf3..1daccae 100644 --- a/bonus-modules/bonus-cateen/bonus-cateen.iml +++ b/bonus-modules/bonus-cateen/bonus-cateen.iml @@ -1,236 +1,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/bonus-modules/bonus-modules.iml b/bonus-modules/bonus-modules.iml index cc4b857..30466db 100644 --- a/bonus-modules/bonus-modules.iml +++ b/bonus-modules/bonus-modules.iml @@ -1,39 +1,8 @@ - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/bonus-smart-canteen.iml b/bonus-modules/bonus-smart-canteen/bonus-smart-canteen.iml index 125f03f..1daccae 100644 --- a/bonus-modules/bonus-smart-canteen/bonus-smart-canteen.iml +++ b/bonus-modules/bonus-smart-canteen/bonus-smart-canteen.iml @@ -1,235 +1,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/GetCustIdUtiles.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/GetCustIdUtiles.java index 6b3b4f8..a252c40 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/GetCustIdUtiles.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/GetCustIdUtiles.java @@ -20,6 +20,7 @@ import com.bonus.canteen.consumer.vo.Canteen; import com.bonus.canteen.consumer.vo.Shopstall; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import java.util.HashMap; @@ -32,6 +33,7 @@ import static com.bonus.canteen.common.utils.NiuStaticUtils.*; /** * 查询个人信息工具类 */ +@Slf4j public class GetCustIdUtiles { @@ -90,6 +92,7 @@ public class GetCustIdUtiles { // Map map = makeSign(content, appsecret, bodyMap); Map map = makeSign(content, applicationidpsw, bodyMap); // HttpRequest request = HttpUtil.createPost(IpConfig.SEARCH_USER); + log.info("查询小牛用户url: "+ niusearchuserurl); HttpRequest request = HttpUtil.createPost(niusearchuserurl); request.body(JSONUtil.toJsonStr(map), ContentType.JSON.toString()); HttpResponse response = request.execute(); @@ -124,6 +127,7 @@ public class GetCustIdUtiles { // Map map = makeSign(content, appsecret, bodyMap); Map map = makeSign(content, applicationidpsw, bodyMap); // HttpRequest request = HttpUtil.createPost(IpConfig.SEARCH_USER); + log.info("查询小牛食堂url: "+ niuallocanteen); HttpRequest request = HttpUtil.createPost(niuallocanteen); request.body(JSONUtil.toJsonStr(map), ContentType.JSON.toString()); HttpResponse response = request.execute(); @@ -162,6 +166,7 @@ public class GetCustIdUtiles { // Map map = makeSign(content, appsecret, bodyMap); Map map = makeSign(content, applicationidpsw, bodyMap); // HttpRequest request = HttpUtil.createPost(IpConfig.SEARCH_USER); + log.info("查询小牛食堂档口url: "+ niualloshopll); HttpRequest request = HttpUtil.createPost(niualloshopll); request.body(JSONUtil.toJsonStr(map), ContentType.JSON.toString()); HttpResponse response = request.execute(); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/StringUtil.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/StringUtil.java index c3be3a6..9a7f381 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/StringUtil.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/common/utils/StringUtil.java @@ -39,4 +39,26 @@ public class StringUtil { return number; } + + /** + * 升成 18位的随机数 + * @param numDigits + * @return + */ + public static String generateRandomString(int numDigits) { + Random random = new Random(); + long number = 0; + + // 确保生成的数字是 18 位 + for (int i = 0; i < numDigits; i++) { + number = number * 10 + random.nextInt(10); + } + + // 确保生成的数字不会超过 long 的最大值 + if (number > Long.MAX_VALUE) { + number = Long.MAX_VALUE; + } + + return String.valueOf(number); + } } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/controller/BasicsComplaintController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/controller/BasicsComplaintController.java index 629343f..8113241 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/controller/BasicsComplaintController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/controller/BasicsComplaintController.java @@ -30,7 +30,7 @@ import static com.bonus.common.core.utils.PageUtils.startPage; @RequestMapping("basicsComplaint") public class BasicsComplaintController extends BaseController { /** - * 服务对象 + * 服务对象basicsComplaint */ @Resource private BasicsComplaintService basicsComplaintService; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/service/impl/BasicsComplaintServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/service/impl/BasicsComplaintServiceImpl.java index db52779..b80a930 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/service/impl/BasicsComplaintServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/service/impl/BasicsComplaintServiceImpl.java @@ -62,6 +62,8 @@ public class BasicsComplaintServiceImpl implements BasicsComplaintService { if (StringUtils.isNull(userid)){ return null; } + basicsComplaint.setCrby(userid.toString()); + basicsComplaint.setUpby(userid.toString()); basicsComplaint.setUptime(new Date()); basicsComplaint.setCrtime(new Date()); this.basicsComplaintDao.insert(basicsComplaint); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/task/TaskToInsertSysUser.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/task/TaskToInsertSysUser.java index 658f702..9862422 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/task/TaskToInsertSysUser.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/consumer/task/TaskToInsertSysUser.java @@ -14,6 +14,7 @@ import com.bonus.canteen.common.utils.StringUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.Date; import java.util.List; @@ -34,6 +35,7 @@ public class TaskToInsertSysUser { private SystemConfig systemConfig; @Scheduled(cron = "0 0 1 * * ?") //每天凌晨一点进行更新 + @PostConstruct // 服务启动时执行一次 // @Scheduled(fixedRate = 10000) public void TaskInsertSysUser() { // Customer custIdInfoList1 = GetCustIdUtiles.getCustIdInfo("15996330508"); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/pay/controller/PayController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/pay/controller/PayController.java index a91ab0c..e67d5a4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/pay/controller/PayController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/pay/controller/PayController.java @@ -1,12 +1,23 @@ package com.bonus.canteen.pay.controller; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.AlipayConfig; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.domain.AlipayTradeWapPayModel; +import com.alipay.api.request.AlipayTradeWapPayRequest; +import com.alipay.api.response.AlipayTradeWapPayResponse; +import com.bonus.canteen.common.utils.AlipayUtils; import com.bonus.canteen.common.utils.LeniuApiUtil; +import com.bonus.canteen.common.utils.StringUtil; import com.bonus.canteen.pay.domain.PayDeviceDTO; import com.bonus.canteen.pay.domain.PayResDTO; import com.bonus.canteen.pay.domain.RechargeResDTO; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -18,8 +29,26 @@ import static com.bonus.canteen.common.utils.NiuStaticUtils.siteurl; @RestController @RequestMapping({"/leopen"}) +@Slf4j public class PayController { + @Value("${alipay.URL}") + private String URL; + @Value("${alipay.APPID}") + private String APPID; + @Value("${alipay.PID}") + private String PID; + + @Value("${alipay.PRIVATE_KEY}") + private String PRIVATE_KEY; + @Value("${alipay.FORMAT}") + private String FORMAT; + @Value("${alipay.CHARSET}") + private String CHARSET; + @Value("${alipay.SIGN_TYPE}") + private String SIGN_TYPE; + @Value("${alipay.ALIPAY_PUBLIC_KEY}") + private String ALIPAY_PUBLIC_KEY; @ApiOperation("钱包余额查询") @PostMapping({"/account/balance/query"}) @@ -27,17 +56,36 @@ public class PayController { String api = siteurl + "/tengyun-api/leopen/account/balance/query"; HashMap bodyMap = (HashMap) LeniuApiUtil.convertObjectToMap(payResDTO); - return LeniuApiUtil.callLeniuApi(api,bodyMap).body(); + return LeniuApiUtil.callLeniuApi(api, bodyMap).body(); } @ApiOperation("钱包充值") @PostMapping({"/account/charge"}) public String getAccountCharge(@RequestBody RechargeResDTO rechargeResDTO) { + rechargeResDTO.setThirdRechargeNum(StringUtil.generateRandomString(18)); String api = siteurl + "/tengyun-api/leopen/account/charge"; HashMap bodyMap = (HashMap) LeniuApiUtil.convertObjectToMap(rechargeResDTO); - return LeniuApiUtil.callLeniuApi(api,bodyMap).body(); + //支付宝进行支付 + AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); + model.setOutTradeNo(rechargeResDTO.getThirdRechargeNum());//商户订单号 + model.setTotalAmount(rechargeResDTO.getRechargeAmount().toString());//订单总金额 + model.setSubject("充值");//订单标题 + model.setProductCode("QUICK_WAP_WAY");//产品码 + model.setSellerId(PID);//卖家支付宝 Id + AlipayTradeWapPayResponse response = getPayGoods(model); + if (response.isSuccess()) { + System.err.println("调用成功"); + return LeniuApiUtil.callLeniuApi(api, bodyMap).body(); + } else { + System.err.println("调用失败"); + // sdk 版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 + // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); + // System.out.println(diagnosisUrl); } + return "充值失败"; + } + } @@ -47,6 +95,51 @@ public class PayController { String api = siteurl + "/tengyun-api/leopen/pay/device"; HashMap bodyMap = (HashMap) LeniuApiUtil.convertObjectToMap(payDeviceDTO); - return LeniuApiUtil.callLeniuApi(api,bodyMap).body(); + return LeniuApiUtil.callLeniuApi(api, bodyMap).body(); } + + + public AlipayTradeWapPayResponse getPayGoods(AlipayTradeWapPayModel model) { + + try { + + AlipayConfig alipayConfig = new AlipayConfig(); + //设置网关地址 + alipayConfig.setServerUrl(URL); + //设置应用ID + alipayConfig.setAppId(APPID); + //设置应用私钥 + alipayConfig.setPrivateKey(PRIVATE_KEY); + //设置请求格式,固定值json + alipayConfig.setFormat(FORMAT); + //设置字符集 + alipayConfig.setCharset(CHARSET); + //设置签名类型 + alipayConfig.setSignType(SIGN_TYPE); + //设置支付宝公钥 + alipayConfig.setAlipayPublicKey(ALIPAY_PUBLIC_KEY); + AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); + AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); + request.setBizModel(model); + AlipayTradeWapPayResponse response = alipayClient.pageExecute(request, "POST"); + // 如果需要返回GET请求,请使用 + // AlipayTradeWapPayResponse response = alipayClient.pageExecute(request, "GET"); + String pageRedirectionData = response.getBody(); + System.err.println(pageRedirectionData); + return response; + /* if (response.isSuccess()) { + System.out.println("调用成功"); + } else { + System.out.println("调用失败"); + // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 + // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); + // System.out.println(diagnosisUrl); + }*/ + } catch (AlipayApiException e) { + e.printStackTrace(); + log.info("充值链接支付宝错误信息为: " + e); + return null; + } + } + } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/bootstrap.yml b/bonus-modules/bonus-smart-canteen/src/main/resources/bootstrap.yml index b3fc713..14d83c4 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/bootstrap.yml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/bootstrap.yml @@ -17,3 +17,14 @@ niu: applicationidpsw: 082d5733fc44443e992071b2bc916620 sncode: 001 serialnum: 02022840 +#niu: +# siteurl: http://10.138.55.106:58100 +# niupayurl: http://10.138.55.106:58100/tengyun-api/leopen/pay/device #地址食堂支付 +# niusearchuserurl: http://10.138.55.106:58100/tengyun-api/leopen/customer/query #地址查询用户 +# niupayreturnurl: http://10.138.55.106:58100/tengyun-api/leopen/pay/refund #地址食堂支付退钱 +# niuallocanteen: https://dev06.xnzn.net/tengyun-api/leopen/canteen/query #地址食堂列表 +# niualloshopll: https://dev06.xnzn.net/tengyun-api/leopen/stall/query #档口 +# applicationid: 396571655104630784 +# applicationidpsw: ee75c51b4a854c43ad9a85560f024068 +# sncode: 2ad34554g2 #虚拟支付设备 +# serialnum: 02022840 \ No newline at end of file diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml index c26d8ca..33b55ab 100644 --- a/bonus-modules/pom.xml +++ b/bonus-modules/pom.xml @@ -9,8 +9,8 @@ 4.0.0 - - + core-aggregator + bonus-cateen bonus-smart-canteen diff --git a/bonus.iml b/bonus.iml index cc4b857..0037200 100644 --- a/bonus.iml +++ b/bonus.iml @@ -1,39 +1,8 @@ - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file