|
|
@@ -1,11 +1,14 @@
|
|
|
package com.izouma.awesomeadmin.web;
|
|
|
|
|
|
import com.github.kevinsawicki.http.HttpRequest;
|
|
|
-import com.izouma.awesomeadmin.enums.PayApiErrCode;
|
|
|
+import com.izouma.awesomeadmin.constant.PayConstant;
|
|
|
+import com.izouma.awesomeadmin.dto.PayResult;
|
|
|
+import com.izouma.awesomeadmin.dto.Result;
|
|
|
import com.izouma.awesomeadmin.model.PayCodeInfo;
|
|
|
+import com.izouma.awesomeadmin.model.PayCodeOrder;
|
|
|
+import com.izouma.awesomeadmin.model.PayCodeStock;
|
|
|
import com.izouma.awesomeadmin.model.UserInfo;
|
|
|
-import com.izouma.awesomeadmin.service.PayCodeInfoService;
|
|
|
-import com.izouma.awesomeadmin.service.UserInfoService;
|
|
|
+import com.izouma.awesomeadmin.service.*;
|
|
|
import com.izouma.awesomeadmin.util.MbappUtil;
|
|
|
import com.izouma.awesomeadmin.util.PayApiUtil;
|
|
|
import com.izouma.awesomeadmin.util.PropertiesFileLoader;
|
|
|
@@ -17,9 +20,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
|
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Controller
|
|
|
@@ -34,6 +43,16 @@ public class PayApiController {
|
|
|
@Autowired
|
|
|
private PayCodeInfoService payCodeInfoService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PayCodeStockService payCodeStockService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PayCodeOrderService payCodeOrderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OSSFileService OSSFileService;
|
|
|
+
|
|
|
+
|
|
|
@RequestMapping(value = "/testPush", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
public String testPush(@RequestParam(required = true, value = "abc") String abc) {
|
|
|
@@ -66,6 +85,27 @@ public class PayApiController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/genSign", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public Map genSign(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+ Map<String, String> notifyMap = getRequstParameter(request);
|
|
|
+
|
|
|
+ String sign = PayApiUtil.generateSignature(notifyMap, notifyMap.get("apikey"));
|
|
|
+ notifyMap.put("sign_type", "MD5"); //签名方式
|
|
|
+ notifyMap.put("sign", sign); //签名
|
|
|
+
|
|
|
+ return notifyMap;
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("genSign失败", e);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return null;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@RequestMapping(value = "/notify", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
@@ -91,23 +131,18 @@ public class PayApiController {
|
|
|
/**
|
|
|
* 获取支付码列表
|
|
|
*
|
|
|
- * @param request
|
|
|
+ * @param request mch_id
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/payCodeList", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public Map payCodeList(HttpServletRequest request) {
|
|
|
- Map<String, Object> result = new HashMap<>();
|
|
|
- result.put("return_code", "FAIL");
|
|
|
- result.put("return_msg", PayApiErrCode.INVALID_REQUEST);
|
|
|
+ public PayResult payCodeList(HttpServletRequest request) {
|
|
|
try {
|
|
|
|
|
|
Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
|
|
|
if (StringUtils.isBlank(reqDataMap.get("mch_id"))) {
|
|
|
- result.put("return_code", "FAIL");
|
|
|
- result.put("return_msg", PayApiErrCode.LACK_PARAMS);
|
|
|
- return result;
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
}
|
|
|
|
|
|
UserInfo userInfo = new UserInfo();
|
|
|
@@ -115,18 +150,14 @@ public class PayApiController {
|
|
|
userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
|
|
|
if (userInfo == null) {
|
|
|
- result.put("return_code", "FAIL");
|
|
|
- result.put("return_msg", PayApiErrCode.MCHID_NOT_EXIST);
|
|
|
- return result;
|
|
|
+ return PayConstant.MCHID_NOT_EXIST;
|
|
|
}
|
|
|
|
|
|
String mch_key = userInfo.getApikey();
|
|
|
|
|
|
|
|
|
if (!PayApiUtil.isPayResultNotifySignatureValid(reqDataMap, mch_key)) {
|
|
|
- result.put("return_code", "FAIL");
|
|
|
- result.put("return_msg", PayApiErrCode.SIGNERROR);
|
|
|
- return result;
|
|
|
+ return PayConstant.SIGNERROR;
|
|
|
}
|
|
|
|
|
|
int userId = userInfo.getId();
|
|
|
@@ -137,11 +168,7 @@ public class PayApiController {
|
|
|
|
|
|
List<PayCodeInfo> payCodeInfoList = payCodeInfoService.getPayCodeInfoList(payCodeInfo);
|
|
|
|
|
|
-
|
|
|
- result.put("return_code", "SUCCESS");
|
|
|
- result.put("return_msg", "成功");
|
|
|
- result.put("return_data", payCodeInfoList);
|
|
|
- return result;
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeInfoList);
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
@@ -149,9 +176,812 @@ public class PayApiController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取支付码详情
|
|
|
+ *
|
|
|
+ * @param request mch_id pay_code_id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/payCodeDetail", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult payCodeDetail(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("pay_code_id"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ PayCodeInfo payCodeInfo = payCodeInfoService.getPayCodeInfoById(reqDataMap.get("pay_code_id"));
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeInfo);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("获取支付码详情异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取支付码库存列表
|
|
|
+ *
|
|
|
+ * @param request mch_id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/payCodeStockList", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult payCodeStockList(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("pay_code_id"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+ int codeId = Integer.valueOf(reqDataMap.get("pay_code_id"));
|
|
|
+
|
|
|
+ PayCodeStock payCodeStock = new PayCodeStock();
|
|
|
+ payCodeStock.setCodeId(codeId);
|
|
|
+ payCodeStock.setUserId(userId);
|
|
|
+
|
|
|
+ List<PayCodeStock> payCodeStockList = payCodeStockService.getPayCodeStockList(payCodeStock);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeStockList);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("获取支付码库存列表异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取全部可用价格
|
|
|
+ *
|
|
|
+ * @param request mch_id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/allUsedMoney", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult allUsedMoney(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<PayCodeStock> payCodeStockList = payCodeStockService.getPayCodeStockAllUsedMoney(null);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeStockList);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("获取支付码库存列表异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据金额获取全部可用付款类型
|
|
|
+ *
|
|
|
+ * @param request mch_id money
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/allUsedPayType", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult allUsedPayType(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ PayCodeStock payCodeStock = new PayCodeStock();
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("money"))) {
|
|
|
+ payCodeStock.setMoney(BigDecimal.valueOf(Integer.valueOf(reqDataMap.get("money"))));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<PayCodeStock> payCodeStockList = payCodeStockService.getPayCodeStockAllUsedPayType(payCodeStock);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeStockList);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("获取支付码库存列表异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 随机获取可用付款库存
|
|
|
+ *
|
|
|
+ * @param request mch_id payType money
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/randomStock", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult randomStock(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("payType")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("money"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeStock payCodeStock = new PayCodeStock();
|
|
|
+ payCodeStock.setMoney(BigDecimal.valueOf(Integer.valueOf(reqDataMap.get("money"))));
|
|
|
+ payCodeStock.setPayType(reqDataMap.get("payType"));
|
|
|
+
|
|
|
+ PayCodeStock pp = payCodeStockService.getRandomStock(payCodeStock);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", pp);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("获取支付码库存列表异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交订单
|
|
|
+ *
|
|
|
+ * @param request mch_id stockId appname
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/submitOrder", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult submitOrder(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("stockId")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("appname"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeOrder payCodeOrder = new PayCodeOrder();
|
|
|
+ payCodeOrder.setStockId(Integer.valueOf(reqDataMap.get("stockId")));
|
|
|
+ payCodeOrder.setUserId(userId);
|
|
|
+ payCodeOrder.setAppname(reqDataMap.get("appname"));
|
|
|
+
|
|
|
+ Result pp = payCodeOrderService.submit(payCodeOrder);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", pp);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("提交订单异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询订单详情
|
|
|
+ *
|
|
|
+ * @param request mch_id orderCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/orderDetail", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult orderDetail(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("orderCode"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ PayCodeOrder payCodeOrder = new PayCodeOrder();
|
|
|
+ payCodeOrder.setOrderCode(reqDataMap.get("orderCode"));
|
|
|
+
|
|
|
+ PayCodeOrder pp = payCodeOrderService.getPayCodeOrder(payCodeOrder);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", pp);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("查询订单详情异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询订单列表(codeowner)
|
|
|
+ *
|
|
|
+ * @param request mch_id statusFlag
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/codeownerOrderList", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult codeownerOrderList(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+ PayCodeOrder payCodeOrder = new PayCodeOrder();
|
|
|
+ payCodeOrder.setCodeowner(userId);
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("statusFlag"))) {
|
|
|
+ payCodeOrder.setStatusFlag(Integer.valueOf(reqDataMap.get("statusFlag")));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<PayCodeOrder> pp = payCodeOrderService.getPayCodeOrderList(payCodeOrder);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", pp);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("查询订单列表(codeowner)异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询订单列表(下单)
|
|
|
+ *
|
|
|
+ * @param request mch_id statusFlag
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/myOrderList", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult myOrderList(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+ PayCodeOrder payCodeOrder = new PayCodeOrder();
|
|
|
+ payCodeOrder.setUserId(userId);
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("statusFlag"))) {
|
|
|
+ payCodeOrder.setStatusFlag(Integer.valueOf(reqDataMap.get("statusFlag")));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<PayCodeOrder> pp = payCodeOrderService.getPayCodeOrderList(payCodeOrder);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", pp);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("查询订单列表(codeowner)异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 支付订单
|
|
|
+ *
|
|
|
+ * @param request mch_id orderCode remark
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/pay", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult pay(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("orderCode"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeOrder payCodeOrder = new PayCodeOrder();
|
|
|
+ payCodeOrder.setOrderCode(reqDataMap.get("orderCode"));
|
|
|
+
|
|
|
+ PayCodeOrder pp = payCodeOrderService.getPayCodeOrder(payCodeOrder);
|
|
|
+ if (userId != pp.getCodeowner()) {
|
|
|
+ return PayConstant.NOAUTH;
|
|
|
+ }
|
|
|
+
|
|
|
+ payCodeOrder.setId(pp.getId());
|
|
|
+ payCodeOrder.setPayMoney(pp.getMoney());
|
|
|
+ payCodeOrder.setRemark(reqDataMap.get("remark"));
|
|
|
+
|
|
|
+ Result result = payCodeOrderService.pay(payCodeOrder);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", result);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("查询订单列表(codeowner)异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新接单状态
|
|
|
+ *
|
|
|
+ * @param request mch_id opened
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/opened", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult opened(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("opened"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+ UserInfo updateUser = new UserInfo();
|
|
|
+ updateUser.setId(userId);
|
|
|
+ updateUser.setOpened(reqDataMap.get("opened"));
|
|
|
+
|
|
|
+ userInfoService.updateUserInfo(updateUser);
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功");
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("更新接单状态异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建支付码
|
|
|
+ *
|
|
|
+ * @param request mch_id codeName payType image
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/createPayCodeInfo", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult createPayCodeInfo(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("codeName")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("payType")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("image"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeInfo payCodeInfo = new PayCodeInfo();
|
|
|
+ payCodeInfo.setUserId(userId);
|
|
|
+ payCodeInfo.setCodeName(reqDataMap.get("codeName"));
|
|
|
+ payCodeInfo.setPayType(reqDataMap.get("payType"));
|
|
|
+ payCodeInfo.setImage(reqDataMap.get("image"));
|
|
|
+ payCodeInfo.setUseFlag("Y");
|
|
|
+
|
|
|
+ payCodeInfoService.createPayCodeInfo(payCodeInfo);
|
|
|
+
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeInfo);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("查询订单列表(codeowner)异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新支付码
|
|
|
+ *
|
|
|
+ * @param request mch_id pay_code_id codeName payType image,autoTimeover
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/updatePayCodeInfo", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult updatePayCodeInfo(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("pay_code_id"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+ int codeId = Integer.valueOf(reqDataMap.get("pay_code_id"));
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeInfo pp = payCodeInfoService.getPayCodeInfoById(reqDataMap.get("pay_code_id"));
|
|
|
+ if (userId != pp.getUserId()) {
|
|
|
+ return PayConstant.NOAUTH;
|
|
|
+ }
|
|
|
+
|
|
|
+ PayCodeInfo payCodeInfo = new PayCodeInfo();
|
|
|
+ payCodeInfo.setId(codeId);
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("codeName"))) {
|
|
|
+ payCodeInfo.setCodeName(reqDataMap.get("codeName"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("payType"))) {
|
|
|
+ payCodeInfo.setPayType(reqDataMap.get("payType"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("image"))) {
|
|
|
+ payCodeInfo.setImage(reqDataMap.get("image"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("autoTimeover"))) {
|
|
|
+
|
|
|
+ payCodeInfo.setAutoTimeover(reqDataMap.get("autoTimeover"));
|
|
|
+ }
|
|
|
+
|
|
|
+ payCodeInfoService.updatePayCodeInfo(payCodeInfo);
|
|
|
+
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeInfo);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("更新支付码异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建付款码库存
|
|
|
+ *
|
|
|
+ * @param request mch_id pay_code_id name money amount,regenerate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/createPayCodeStock", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult createPayCodeStock(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("pay_code_id")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("name")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("money")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("amount")) ||
|
|
|
+ StringUtils.isBlank(reqDataMap.get("regenerate"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+ int codeId = Integer.valueOf(reqDataMap.get("pay_code_id"));
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeInfo pp = payCodeInfoService.getPayCodeInfoById(reqDataMap.get("pay_code_id"));
|
|
|
+ if (userId != pp.getUserId()) {
|
|
|
+ return PayConstant.NOAUTH;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeStock payCodeStock = new PayCodeStock();
|
|
|
+ payCodeStock.setUseFlag("Y");
|
|
|
+ payCodeStock.setCodeId(codeId);
|
|
|
+ payCodeStock.setName(reqDataMap.get("name"));
|
|
|
+ payCodeStock.setPayType(pp.getPayType());
|
|
|
+ payCodeStock.setAmount(Integer.valueOf(reqDataMap.get("amount")));
|
|
|
+ payCodeStock.setMoney(BigDecimal.valueOf(Integer.valueOf(reqDataMap.get("money"))));
|
|
|
+ payCodeStock.setRegenerate(reqDataMap.get("regenerate"));
|
|
|
+ payCodeStock.setUserId(userId);
|
|
|
+
|
|
|
+ payCodeStockService.createPayCodeStock(payCodeStock);
|
|
|
+
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeStock);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("创建付款码库存 异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新付款码库存
|
|
|
+ *
|
|
|
+ * @param request mch_id stock_id name money amount,regenerate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/updatePayCodeStock", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult updatePayCodeStock(HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("stock_id"))) {
|
|
|
+ return PayConstant.LACK_PARAMS;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = (UserInfo) resultUser.get("userInfo");
|
|
|
+ int userId = userInfo.getId();
|
|
|
+ int stockId = Integer.valueOf(reqDataMap.get("stock_id"));
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeStock pp = payCodeStockService.getPayCodeStockById(reqDataMap.get("stock_id"));
|
|
|
+ if (userId != pp.getUserId()) {
|
|
|
+ return PayConstant.NOAUTH;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ PayCodeStock payCodeStock = new PayCodeStock();
|
|
|
+ payCodeStock.setId(stockId);
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("name"))) {
|
|
|
+
|
|
|
+ payCodeStock.setName(reqDataMap.get("name"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("amount"))) {
|
|
|
+
|
|
|
+ payCodeStock.setAmount(Integer.valueOf(reqDataMap.get("amount")));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("money"))) {
|
|
|
+ payCodeStock.setMoney(BigDecimal.valueOf(Integer.valueOf(reqDataMap.get("money"))));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(reqDataMap.get("regenerate"))) {
|
|
|
+ payCodeStock.setRegenerate(reqDataMap.get("regenerate"));
|
|
|
+ }
|
|
|
+
|
|
|
+ payCodeStockService.updatePayCodeStock(payCodeStock);
|
|
|
+
|
|
|
+
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", payCodeStock);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("创建付款码库存 异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "/uploadFile")
|
|
|
+ @ResponseBody
|
|
|
+ public PayResult uploadFile(HttpServletRequest request) {
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ Map<String, String> reqDataMap = getRequstParameter(request);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Object> resultUser = getUserInfo(reqDataMap);
|
|
|
+
|
|
|
+ if (resultUser.get("userInfo") == null) {
|
|
|
+ return (PayResult) resultUser.get("result");
|
|
|
+ }
|
|
|
+
|
|
|
+ CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
|
|
|
+ if (multipartResolver.isMultipart(request)) {
|
|
|
+ MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
|
|
|
+ Iterator it = multiRequest.getFileNames();
|
|
|
+ List<String> paths = new ArrayList<>();
|
|
|
+ while (it.hasNext()) {
|
|
|
+ MultipartFile file = multiRequest.getFile(it.next().toString());
|
|
|
+ if (file != null) {
|
|
|
+ try {
|
|
|
+ Random random = new Random();
|
|
|
+ StringBuilder randomCode = new StringBuilder();
|
|
|
+ for (int i = 0; i < 8; i++) {
|
|
|
+ randomCode.append(Integer.toString(random.nextInt(36), 36));
|
|
|
+ }
|
|
|
+ String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
|
|
|
+ String fileType = file.getContentType().substring(0, file.getContentType().indexOf("/"));
|
|
|
+ String uploadPath = String.format("%s/%s-%s%s", fileType, new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss").format(new Date()), randomCode, ext);
|
|
|
+ String path = OSSFileService.upload(file.getInputStream(), uploadPath);
|
|
|
+ paths.add(path);
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new PayResult(PayConstant.SUCCESS, "成功", paths);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("创建付款码库存 异常", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PayConstant.INVALID_REQUEST;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private Map<String, Object> getUserInfo(Map<String, String> reqDataMap) throws Exception {
|
|
|
+
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
+ if (StringUtils.isBlank(reqDataMap.get("mch_id"))) {
|
|
|
+ result.put("result", PayConstant.LACK_PARAMS);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ UserInfo userInfo = new UserInfo();
|
|
|
+ userInfo.setPhone(reqDataMap.get("mch_id"));
|
|
|
+ userInfo = userInfoService.getSingleUserInfo(userInfo);
|
|
|
+
|
|
|
+ if (userInfo == null) {
|
|
|
+ result.put("result", PayConstant.MCHID_NOT_EXIST);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ String mch_key = userInfo.getApikey();
|
|
|
+
|
|
|
+ if (!PayApiUtil.isPayResultNotifySignatureValid(reqDataMap, mch_key)) {
|
|
|
+
|
|
|
+ result.put("result", PayConstant.SIGNERROR);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ result.put("userInfo", userInfo);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private Map<String, String> getRequstParameter(HttpServletRequest request) {
|
|
|
Map<String, String> reqDataMap = new HashMap<>();
|
|
|
|