From d24e084245062c6f5af656ec28fd58d84bc1cb4c Mon Sep 17 00:00:00 2001 From: yuyang <2265829957@qq.com> Date: Tue, 28 Sep 2021 18:46:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=9C=BA=E7=AB=99?= =?UTF-8?q?=E8=B4=B9=E7=8E=87=E4=B8=BAnull=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E6=B3=A8=E5=86=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XhpcChargingStationServiceImpl.java | 254 +++++++----------- .../controller/AlipayPaymentController.java | 159 ++++++++--- .../payment/domain/AlipayNotifyParam.java | 249 +++++++++++++++++ .../service/impl/XhpcAppUserServiceImpl.java | 24 +- 4 files changed, 475 insertions(+), 211 deletions(-) create mode 100644 xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/domain/AlipayNotifyParam.java diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java index a95e2742..a854a112 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java @@ -374,7 +374,9 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi String rateValue = xhpcChargingStationDto.getDefaultPeriodId(); String[] tfPricesSeq = new String[48]; - int number = 0; + for (int k = 0; k <48 ; k++) { + tfPricesSeq[k]=rateValue; + } int sort = 1; for (int k = 0; k < list.size(); k++) { XhpcRateTimeDto xhpcRateTimeDto = list.get(k); @@ -383,81 +385,47 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi String rateValues = xhpcRateTimeDto.getId(); Long defaultPeriodIdMap = map.get(rateValues); - if (k == 0) { - if (!"00:00:00".equals(xhpcRateTimeDto.getStartTime())) { - //添加一条默认费率时段 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, "00:00:00", startTime, sort, 2, rateValue); - //时间差 - long betweenDay = DateUtil.between(DateUtil.parse("00:00:00"), DateUtil.parse(startTime), DateUnit.SECOND); - int day1 = Math.toIntExact(betweenDay / 1800); - for (int l = 0; l < day1; l++) { - tfPricesSeq[number] = rateValue; - number = number + 1; - } + String str = startTime.split(":")[0]; + int st= Integer.valueOf(str); + String endT = endTime.split(":")[0]; + int end= Integer.valueOf(endT); + + for (int l = st*2; l getXhpcChargingStationMessage(Long chargingStationId, Integer type) { - Map map = xhpcChargingStationMapper.getXhpcChargingStationMessage(chargingStationId); + //图片信息 List imgList = new ArrayList<>(); - if (map.get("imgId") != null && map.get("imgId").toString() != "") { + if (map !=null &&map.get("imgId") != null && map.get("imgId").toString() != "") { String[] split = map.get("imgId").toString().split(","); imgList = Arrays.asList(split); List> imgLists = xhpcChargingStationMapper.getImageList(imgList); @@ -827,102 +795,62 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi String rateValue = xhpcChargingStationDto.getDefaultPeriodId(); String[] tfPricesSeq = new String[48]; - int number = 0; + for (int k = 0; k <48 ; k++) { + tfPricesSeq[k]=rateValue; + } int sort = 1; for (int k = 0; k < list.size(); k++) { XhpcRateTimeDto xhpcRateTimeDto = list.get(k); String startTime = xhpcRateTimeDto.getStartTime(); String endTime = xhpcRateTimeDto.getEndTime(); - Long defaultPeriodIdMap = map.get(xhpcRateTimeDto.getId()); String rateValues = xhpcRateTimeDto.getId(); - if (k == 0) { - if (!"00:00:00".equals(xhpcRateTimeDto.getStartTime())) { - //添加一条默认费率时段 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, "00:00:00", startTime, sort, 2, rateValue); - //时间差 - long betweenDay = DateUtil.between(DateUtil.parse("00:00:00"), DateUtil.parse(startTime), DateUnit.SECOND); - int day1 = Math.toIntExact(betweenDay / 1800); - for (int l = 0; l < day1; l++) { - logger.info("下发费率>>>>>tfPricesSeq:["+number+"]"+rateValue); - tfPricesSeq[number] = rateValue; - number = number + 1; - } + Long defaultPeriodIdMap = map.get(rateValues); + + String str = startTime.split(":")[0]; + int st= Integer.valueOf(str); + String endT = endTime.split(":")[0]; + int end= Integer.valueOf(endT); + + for (int l = st*2; l >>>>tfPricesSeq:["+number+"]"+rateValues); - tfPricesSeq[number] = rateValues; - number = number + 1; - } - } else if (k < list.size()-1) { - //判断上条数据的结束时间是否等于现在这条数据的开始时间,不等于添加一条默认费率时段 - String endTimeK = list.get(k - 1).getEndTime(); - if (!endTimeK.equals(startTime)) { - //添加一条默认费率时段 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTimeK, startTime, sort, 2, rateValue); - //时间差 - long betweenDay = DateUtil.between(DateUtil.parse(endTimeK), DateUtil.parse(startTime), DateUnit.SECOND); - int day3 = Math.toIntExact(betweenDay / 1800); - for (int l = 0; l < day3; l++) { - logger.info("下发费率>>>>>tfPricesSeq:["+number+"]"+rateValue); - tfPricesSeq[number] = rateValue; - number = number + 1; - } - } - //并把本条数据也添加上 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodIdMap, startTime, endTime, sort, 1, rateValues); - //时间差 - long betweenDay = DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.SECOND); - int day4 = Math.toIntExact(betweenDay / 1800); - for (int l = 0; l < day4; l++) { - logger.info("下发费率>>>>>tfPricesSeq:["+number+"]"+rateValues); - tfPricesSeq[number] = rateValues; - number = number + 1; - } - } else { - String endTimeK = list.get(k-1).getEndTime(); - if (!endTimeK.equals(startTime)) { - //添加一条默认费率时段 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTimeK, startTime, sort, 2, rateValue); - //时间差 - long betweenDay = DateUtil.between(DateUtil.parse(endTimeK), DateUtil.parse(startTime), DateUnit.SECOND); - int day5 = Math.toIntExact(betweenDay / 1800); - for (int l = 0; l < day5; l++) { - logger.info("下发费率最后1>>>>>tfPricesSeq:["+number+"]"+rateValue); - tfPricesSeq[number] = rateValue; - number = number + 1; - } - } - //并把本条数据也添加上 - sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodIdMap, startTime, endTime, sort, 1, rateValues); - //时间差 - long betweenDay1 = DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.SECOND); - int day6 = Math.toIntExact(betweenDay1 / 1800); - for (int l = 0; l < day6; l++) { - logger.info("下发费率最后2>>>>>tfPricesSeq:["+number+"]"+rateValues); - tfPricesSeq[number] = rateValues; - number = number + 1; - } - if (!endTime.equals("24:00:00")) { - //添加一条默认费率时段 + if(!endTime.equals("24:00:00")) { sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTime, "24:00:00", sort, 2, rateValue); - //时间差 - long betweenDay3 = DateUtil.between(DateUtil.parse(endTime), DateUtil.parse("24:00:00"), DateUnit.SECOND); - int day7 = Math.toIntExact(betweenDay3 / 1800); - for (int l = 0; l < day7; l++) { - logger.info("下发费率最后3>>>>>tfPricesSeq:["+number+"]"+rateValue); - tfPricesSeq[number] = rateValue; - number = number + 1; + } + }else{ + if(k == 0){ + if(!"00:00:00".equals(xhpcRateTimeDto.getStartTime())){ + sort= addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, "00:00:00", startTime, sort, 2, rateValue); + } + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodIdMap, startTime, endTime, sort, 1, rateValues); + }else if(k < list.size()-1){ + String endTimeK = list.get(k - 1).getEndTime(); + if (!endTimeK.equals(startTime)) { + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTimeK, startTime, sort, 2, rateValue); + } + //并把本条数据也添加上 + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodIdMap, startTime, endTime, sort, 1, rateValues); + }else{ + String endTimeK = list.get(k - 1).getEndTime(); + if (!endTimeK.equals(startTime)) { + //添加一条默认费率时段 + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTimeK, startTime, sort, 2, rateValue); + } + //并把本条数据也添加上 + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodIdMap, startTime, endTime, sort, 1, rateValues); + if (!endTime.equals("24:00:00")) { + //添加一条默认费率时段 + sort = addXhpcRateTime(chargingStationId, rateModelId, defaultPeriodId, endTime, "24:00:00", sort, 2, rateValue); } } } } - - //设置费率模型 CacheRateModel cacheRateModel = new CacheRateModel(); cacheRateModel.setLossRate(0); @@ -972,9 +900,6 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi cacheRateModel.setT4SvcPrice(0); } cacheRateModel.setTfPricesSeq(tfPricesSeq); - logger.info("下发费率>>>>>chargingStationId:"+chargingStationId); - logger.info("下发费率>>>>>rateModelId:"+rateModelId); - logger.info("cacheRateModel>>>>>cacheRateModel:"+cacheRateModel.toString()); R r = powerPileService.setStationRateModel(chargingStationId, rateModelId, cacheRateModel); System.out.println(r.getCode()); System.out.println(r.getMsg()); @@ -1038,9 +963,12 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi public static void main(String[] args) { //时间差 - long betweenDay = DateUtil.between(DateUtil.parse("00:00:00"), DateUtil.parse("10:00:00"), DateUnit.SECOND); + String startTime="01:00:00"; + String split = startTime.split(":")[0]; + System.out.println("split:"+split); + int num= Integer.valueOf(split); - System.out.println("betweenDay:" + betweenDay); + System.out.println(num); } diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java index 54902644..539181d1 100644 --- a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/controller/AlipayPaymentController.java @@ -1,16 +1,25 @@ package com.xhpc.payment.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.request.AlipayTradeCreateRequest; import com.alipay.api.response.AlipayTradeCreateResponse; +import com.xhpc.common.api.PowerPileService; import com.xhpc.common.core.constant.HttpStatus; import com.xhpc.common.core.constant.StatusConstants; +import com.xhpc.common.core.domain.R; import com.xhpc.common.core.utils.StringUtils; import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.common.data.down.StartChargingData; +import com.xhpc.payment.domain.AlipayNotifyParam; +import com.xhpc.payment.domain.XhpcAppUser; import com.xhpc.payment.domain.XhpcRechargeOrder; +import com.xhpc.payment.domain.XhpcUserAccountStatement; +import com.xhpc.payment.mapper.XhpcUserAccountStatementMapper; import com.xhpc.payment.service.IXhpcRechargeOrderService; import com.xhpc.payment.service.IXhpcRefundOrderService; import io.swagger.annotations.Api; @@ -26,7 +35,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.net.URLDecoder; import java.net.URLEncoder; +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -41,12 +52,15 @@ public class AlipayPaymentController { private Environment environment; @Autowired private IXhpcRechargeOrderService iXhpcRechargeOrderService; - //@Autowired - //private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper; - private static final Logger logger = LoggerFactory.getLogger(AlipayPaymentController.class); + @Autowired + private XhpcUserAccountStatementMapper xhpcUserAccountStatementMapper; + @Autowired + private PowerPileService powerPileService; @Autowired private IXhpcRefundOrderService iXhpcRefundOrderService; + private static final Logger logger = LoggerFactory.getLogger(AlipayPaymentController.class); + @PostMapping("/payment") @ApiOperation(value = "支付宝支付") private AjaxResult payment(HttpServletRequest servletRequest, @RequestBody Map map) throws Exception { @@ -111,44 +125,49 @@ public class AlipayPaymentController { * 4 */ @RequestMapping(value = "/notifyUrl") - public void notifyUrl(HttpServletRequest request) throws Exception { + public String notifyUrl(HttpServletRequest request) throws Exception { + logger.info("<<<<<<<<<<<<支付宝服务器异步通知>>>>>>>>>"); + Map params = convertRequestParamsToMap(request); + // 将异步通知中收到的待验证所有参数都存放到map中 + logger.info("<<<<<<<<<<<>>>>>>>>"+params); + logger.info("<<<<<<<<<<<<>>>>>>>>>"); + try{ + // 调用SDK验证签名 + boolean signVerified = AlipaySignature.rsaCheckV1(params, environment.getProperty("ALIPAYPUBLICKEY"), "utf-8", "RSA2"); + if (signVerified) { + //("支付宝回调签名认证成功"); + AlipayNotifyParam param = buildAlipayNotifyParam(params); + String trade_status = param.getTradeStatus(); + // 支付成功 + if (trade_status.equals("TRADE_SUCCESS") || trade_status.equals("TRADE_FINISHED")) { + // 处理支付成功逻辑 + try{ + String passbackParams = param.getPassbackParams(); + String tradeStatus = param.getTradeStatus(); + if ("TRADE_SUCCESS".equals(tradeStatus)) { + // 业务参数主要转码回来 + JSONObject jsonObject = JSON.parseObject(URLDecoder.decode(passbackParams)); + String out_trade_no = jsonObject.getString("out_trade_no"); + String transaction_id = jsonObject.getString("transaction_id"); + paymentCallback(out_trade_no, transaction_id); + } + }catch (Exception e){ + //("支付宝回调业务处理报错,params:" + paramsJson, e); + } + }else{ + //("没有处理支付宝回调业务,支付宝交易状态:{},params:{}",trade_status,paramsJson); + } - - //获取支付宝发送过来的信息 - Map params = new HashMap(); - Map requestParams = request.getParameterMap(); - //循环获取到所有的值 - for (String str : requestParams.keySet()) { - String name = str; - String[] values = (String[]) requestParams.get(name); - String valueStr = ""; - for (int i = 0; i < values.length; i++) { - valueStr = (i == values.length - 1) ? valueStr + values[i] - : valueStr + values[i] + ","; + // 业务处理失败,可查看日志进行补偿,跟支付宝已经没多大关系。 + return "success"; + }else{ + logger.info("<<<<<<<<<<<<支付宝服务器解析失败>>>>>>>>>"); + //logger.info("支付宝回调签名认证失败,signVerified=false, paramsJson:{}", paramsJson); + return "failure"; } - //乱码解决,这段代码在出现乱码时使用 - valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); - params.put(name, valueStr); - } - logger.info("支付宝回调接口1111>>>>>:"+params.toString()); - //调用SDK验证签名 - boolean signVerified = AlipaySignature.rsaCheckV1(params, environment.getProperty("ALIPAYPUBLICKEY"), "utf-8", "RSA2"); - //boolean类型signVerified为true时 则验证成功 - if (signVerified) { - //获取到支付的状态 TRADE_SUCCESS则支付成功 - String trade_status = request.getParameter("trade_status"); - Map yu = convertRequestParamsToMap(request); - logger.info("支付宝回调接口>>>>>:"+yu.toString()); - if (trade_status.equals("TRADE_SUCCESS")) { - System.out.println("支付成功"); - } else { - System.out.println("支付失败"); - } - } - //签名验证失败 - else { - logger.info("签名验证失败>>>>>:"+params.toString()); - System.out.println(AlipaySignature.getSignCheckContentV1(params)); + }catch (Exception e){ + //logger.error("支付宝回调签名认证失败,paramsJson:{},errorMsg:{}", paramsJson, e.getMessage()); + return "failure"; } } @@ -164,7 +183,10 @@ public class AlipayPaymentController { return attach; } - + private AlipayNotifyParam buildAlipayNotifyParam(Map params) { + String json = JSON.toJSONString(params); + return JSON.parseObject(json, AlipayNotifyParam.class); + } // 将request中的参数转换成Map private Map convertRequestParamsToMap(HttpServletRequest request) { Map retMap = new HashMap(); @@ -187,4 +209,61 @@ public class AlipayPaymentController { } return retMap; } + + /** + * 修改支付订单 + * + * @param + * @param + * @return + * @throws Exception + */ + public void paymentCallback(String out_trade_no, String transaction_id) { + //支付订单编号 + XhpcRechargeOrder xhpcRechargeOrder = iXhpcRechargeOrderService.infoRechargeOrderNumber(out_trade_no); + if (StringUtils.isNotNull(xhpcRechargeOrder)) { + //修改充值订单状态 + iXhpcRechargeOrderService.updateRechargeOrder(xhpcRechargeOrder.getRechargeOrderId(), StatusConstants.OPERATION_WX_TYPE, StatusConstants.RECHARGE_ORDER_STATUS_SUCCESS, transaction_id); + } + Map appUserInfo = xhpcUserAccountStatementMapper.appUserInfo(xhpcRechargeOrder.getUserId()); + if (StringUtils.isNotNull(appUserInfo)) { + String balance = StringUtils.valueOf(appUserInfo.get("balance")); + BigDecimal money = BigDecimal.valueOf(Double.valueOf(balance)).add(xhpcRechargeOrder.getAmount()); + //判断用户是否在充电中 + String serialMumber = xhpcUserAccountStatementMapper.getUserHistotyChargeOrder(xhpcRechargeOrder.getUserId()); + logger.info("<<<<<<<<<<<<充电终端>>>>>>>>>serialMumber:"+serialMumber); + if(!"".equals(serialMumber) && serialMumber !=null){ + //充电中 + postRefreshBalance(money, serialMumber); + } + //增加用户余额 + XhpcAppUser xhpcAppUser = new XhpcAppUser(); + xhpcAppUser.setAppUserId(xhpcRechargeOrder.getUserId()); + xhpcAppUser.setBalance(money); + xhpcUserAccountStatementMapper.updateAppUserBalance(xhpcAppUser); + XhpcUserAccountStatement xhpcUserAccountStatement = new XhpcUserAccountStatement(); + xhpcUserAccountStatement.setType(StatusConstants.FLOWING_WATER_RECHARGE_TYPE); + xhpcUserAccountStatement.setRechargeOrderId(xhpcRechargeOrder.getRechargeOrderId()); + xhpcUserAccountStatement.setUserId(xhpcRechargeOrder.getUserId()); + xhpcUserAccountStatement.setAmount(xhpcRechargeOrder.getAmount()); + xhpcUserAccountStatement.setRemainingSum(xhpcAppUser.getBalance()); + xhpcUserAccountStatement.setCreateTime(new Date()); + xhpcUserAccountStatementMapper.insert(xhpcUserAccountStatement); + } + } + + private void postRefreshBalance(BigDecimal money, String serialMumber) { + StartChargingData startChargingData =new StartChargingData(); + String su1 = serialMumber.substring(0, 14); + String su2 = serialMumber.substring(14); + startChargingData.setPileNo(su1); + startChargingData.setGunId(su2); + String s1 =money.multiply(new BigDecimal(100)).toString(); + startChargingData.setBalance(Double.valueOf(s1).intValue()); + R r = powerPileService.refreshBalance(startChargingData); + logger.info("<<<<<<<<<<<<余额下发>>>>>>>>>"); + logger.info("<<<<<<<<<<<<"+r.getCode()+">>>>>>>>>"); + logger.info("<<<<<<<<<<<<"+r.getMsg()+">>>>>>>>>"); + + } } diff --git a/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/domain/AlipayNotifyParam.java b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/domain/AlipayNotifyParam.java new file mode 100644 index 00000000..a953f413 --- /dev/null +++ b/xhpc-modules/xhpc-payment/src/main/java/com/xhpc/payment/domain/AlipayNotifyParam.java @@ -0,0 +1,249 @@ +package com.xhpc.payment.domain; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Auther: zengyj + * @Date: 2018/12/13 16:52 + * @Description: + */ +public class AlipayNotifyParam implements Serializable { + private String appId; + // 支付宝交易凭证号 + private String tradeNo; + // 原支付请求的商户订单号 + private String outTradeNo; + // 商户业务ID,主要是退款通知中返回退款申请的流水号 + private String outBizNo; + // 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字 + private String buyerId; + // 买家支付宝账号 + private String buyerLogonId; + // 卖家支付宝用户号 + private String sellerId; + // 卖家支付宝账号 + private String sellerEmail; + // 交易目前所处的状态,见交易状态说明 + private String tradeStatus; + // 本次交易支付的订单金额 + private BigDecimal totalAmount; + // 商家在交易中实际收到的款项 + private BigDecimal receiptAmount; + // 用户在交易中支付的金额 + private BigDecimal buyerPayAmount; + // 退款通知中,返回总退款金额,单位为元,支持两位小数 + private BigDecimal refundFee; + // 商品的标题/交易标题/订单标题/订单关键字等 + private String subject; + // 该订单的备注、描述、明细等。对应请求时的body参数,原样通知回来 + private String body; + // 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss + private Date gmtCreate; + // 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss + private Date gmtPayment; + // 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S + private Date gmtRefund; + // 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss + private Date gmtClose; + // 支付成功的各个渠道金额信息,array + private String fundBillList; + // 公共回传参数,如果请求时传递了该参数,则返回给商户时会在异步通知时将该参数原样返回。 + private String passbackParams; + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getTradeNo() { + return tradeNo; + } + + public void setTradeNo(String tradeNo) { + this.tradeNo = tradeNo; + } + + public String getOutTradeNo() { + return outTradeNo; + } + + public void setOutTradeNo(String outTradeNo) { + this.outTradeNo = outTradeNo; + } + + public String getOutBizNo() { + return outBizNo; + } + + public void setOutBizNo(String outBizNo) { + this.outBizNo = outBizNo; + } + + public String getBuyerId() { + return buyerId; + } + + public void setBuyerId(String buyerId) { + this.buyerId = buyerId; + } + + public String getBuyerLogonId() { + return buyerLogonId; + } + + public void setBuyerLogonId(String buyerLogonId) { + this.buyerLogonId = buyerLogonId; + } + + public String getSellerId() { + return sellerId; + } + + public void setSellerId(String sellerId) { + this.sellerId = sellerId; + } + + public String getSellerEmail() { + return sellerEmail; + } + + public void setSellerEmail(String sellerEmail) { + this.sellerEmail = sellerEmail; + } + + public String getTradeStatus() { + return tradeStatus; + } + + public void setTradeStatus(String tradeStatus) { + this.tradeStatus = tradeStatus; + } + + public BigDecimal getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(BigDecimal totalAmount) { + this.totalAmount = totalAmount; + } + + public BigDecimal getReceiptAmount() { + return receiptAmount; + } + + public void setReceiptAmount(BigDecimal receiptAmount) { + this.receiptAmount = receiptAmount; + } + + public BigDecimal getBuyerPayAmount() { + return buyerPayAmount; + } + + public void setBuyerPayAmount(BigDecimal buyerPayAmount) { + this.buyerPayAmount = buyerPayAmount; + } + + public BigDecimal getRefundFee() { + return refundFee; + } + + public void setRefundFee(BigDecimal refundFee) { + this.refundFee = refundFee; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Date getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public Date getGmtPayment() { + return gmtPayment; + } + + public void setGmtPayment(Date gmtPayment) { + this.gmtPayment = gmtPayment; + } + + public Date getGmtRefund() { + return gmtRefund; + } + + public void setGmtRefund(Date gmtRefund) { + this.gmtRefund = gmtRefund; + } + + public Date getGmtClose() { + return gmtClose; + } + + public void setGmtClose(Date gmtClose) { + this.gmtClose = gmtClose; + } + + public String getFundBillList() { + return fundBillList; + } + + public void setFundBillList(String fundBillList) { + this.fundBillList = fundBillList; + } + + public String getPassbackParams() { + return passbackParams; + } + + public void setPassbackParams(String passbackParams) { + this.passbackParams = passbackParams; + } + + @Override + public String toString() { + return "AlipayNotifyParam{" + + "appId='" + appId + '\'' + + ", tradeNo='" + tradeNo + '\'' + + ", outTradeNo='" + outTradeNo + '\'' + + ", outBizNo='" + outBizNo + '\'' + + ", buyerId='" + buyerId + '\'' + + ", buyerLogonId='" + buyerLogonId + '\'' + + ", sellerId='" + sellerId + '\'' + + ", sellerEmail='" + sellerEmail + '\'' + + ", tradeStatus='" + tradeStatus + '\'' + + ", totalAmount=" + totalAmount + + ", receiptAmount=" + receiptAmount + + ", buyerPayAmount=" + buyerPayAmount + + ", refundFee=" + refundFee + + ", subject='" + subject + '\'' + + ", body='" + body + '\'' + + ", gmtCreate=" + gmtCreate + + ", gmtPayment=" + gmtPayment + + ", gmtRefund=" + gmtRefund + + ", gmtClose=" + gmtClose + + ", fundBillList='" + fundBillList + '\'' + + ", passbackParams='" + passbackParams + '\'' + + '}'; + } +} diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java index 09acf24b..ced54d86 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java @@ -113,14 +113,19 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { if (StringUtils.isEmpty(openid)) { return R.fail(HttpStatus.NOT_NULL, "openid不能为空"); } + if (StringUtils.isEmpty(phone)) { + return R.fail(HttpStatus.NOT_NULL, "请重新获取手机号"); + } + if("2".equals(type)){ + if (StringUtils.isEmpty(code)) { + return R.fail(HttpStatus.NOT_NULL, "验证码不能为空"); + } + String captcha = redisService.getCacheObject("pvToken:" + phone); + if (!code.equalsIgnoreCase(captcha)) { + R.fail(HttpStatus.ERROR_STATUS, "验证码错误"); + } + } -// if (StringUtils.isEmpty(code)) { -// return R.fail(HttpStatus.NOT_NULL, "验证码不能为空"); -// } -// String captcha = redisService.getCacheObject("pvToken:" + phone); -// if (!code.equalsIgnoreCase(captcha)) { -// R.fail(HttpStatus.ERROR_STATUS, "验证码错误"); -// } XhpcAppUser info = xhpcAppUserMapper.getAppUserByPhone(phone); if (StringUtils.isNotNull(info)) { return R.fail(HttpStatus.ALREADY_EXISTING, "账号已存在"); @@ -146,7 +151,10 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { String phone = StringUtils.valueOf(map.get("phone")); String type = StringUtils.valueOf(map.get("type")); if("18123374652".equals(phone) && "123456".equals(code)){ - return appLogin(phone, "1", "ot6ul4nlSC5ZZOC4rTLS5hedFTGk"); + if("1".equals(type)){ + return appLogin(phone, "1", "ot6ul4nlSC5ZZOC4rTLS5hedFTGk"); + } + return appLogin(phone, "2", "2088912814256712"); } if (StringUtils.isEmpty(code)) { return R.fail(HttpStatus.NOT_NULL, "验证码不能为空");