mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
Merge branch 'dev' into HuiFu
# Conflicts: # jsowell-admin/src/main/java/com/jsowell/api/uniapp/PayController.java # jsowell-admin/src/test/java/SpringBootTestController.java
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package com.jsowell.api.uniapp;
|
package com.jsowell.api.uniapp;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.huifu.adapay.core.AdapayCore;
|
import com.huifu.adapay.core.AdapayCore;
|
||||||
@@ -9,12 +8,14 @@ import com.jsowell.common.annotation.Anonymous;
|
|||||||
import com.jsowell.common.core.controller.BaseController;
|
import com.jsowell.common.core.controller.BaseController;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
|
import com.jsowell.common.enums.ykc.ScenarioEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.response.RestApiResponse;
|
import com.jsowell.common.response.RestApiResponse;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.common.util.id.IdUtils;
|
import com.jsowell.common.util.id.IdUtils;
|
||||||
import com.jsowell.pile.dto.GetPayModeDTO;
|
import com.jsowell.pile.dto.GetPayModeDTO;
|
||||||
import com.jsowell.pile.dto.PayOrderDTO;
|
import com.jsowell.pile.dto.PayOrderDTO;
|
||||||
|
import com.jsowell.pile.dto.PaymentScenarioDTO;
|
||||||
import com.jsowell.pile.dto.WeixinPayDTO;
|
import com.jsowell.pile.dto.WeixinPayDTO;
|
||||||
import com.jsowell.pile.vo.uniapp.PayModeVO;
|
import com.jsowell.pile.vo.uniapp.PayModeVO;
|
||||||
import com.jsowell.service.MemberService;
|
import com.jsowell.service.MemberService;
|
||||||
@@ -72,48 +73,15 @@ public class PayController extends BaseController {
|
|||||||
}
|
}
|
||||||
dto.setOpenId(openId);
|
dto.setOpenId(openId);
|
||||||
// 充值余额 附加参数
|
// 充值余额 附加参数
|
||||||
Map<String, Object> weixinMap = memberService.rechargeBalance(dto);
|
PaymentScenarioDTO paymentScenarioDTO = new PaymentScenarioDTO();
|
||||||
|
paymentScenarioDTO.setType(ScenarioEnum.BALANCE.getValue());
|
||||||
|
paymentScenarioDTO.setMemberId(memberId);
|
||||||
|
dto.setAttach(JSONObject.toJSONString(paymentScenarioDTO));
|
||||||
|
dto.setDescription("会员充值余额");
|
||||||
|
Map<String, Object> weixinMap = orderService.weixinPayV3(dto);
|
||||||
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
|
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("会员充值余额 error", e);
|
response = new RestApiResponse<>();
|
||||||
response = new RestApiResponse<>(ReturnCodeEnum.CODE_MEMBER_RECHARGE_BALANCE_ERROR);
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 会员充值余额
|
|
||||||
* http://localhost:8080/uniapp/pay/rechargeBalance
|
|
||||||
*
|
|
||||||
* @param request
|
|
||||||
* @param dto
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@PostMapping("/rechargeBalance")
|
|
||||||
public RestApiResponse<?> rechargeBalance(HttpServletRequest request, @RequestBody WeixinPayDTO dto) {
|
|
||||||
logger.info("会员充值余额 param:{}", dto.toString());
|
|
||||||
RestApiResponse<?> response;
|
|
||||||
try {
|
|
||||||
if (StringUtils.isBlank(dto.getCode()) || StringUtils.isBlank(dto.getAmount())) {
|
|
||||||
return new RestApiResponse<>(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
|
|
||||||
}
|
|
||||||
// 鉴权
|
|
||||||
String memberId = getMemberIdByAuthorization(request);
|
|
||||||
if (StringUtils.isBlank(memberId)) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_TOKEN_ERROR);
|
|
||||||
}
|
|
||||||
dto.setMemberId(memberId);
|
|
||||||
String openId = memberService.getOpenIdByCode(dto.getCode());
|
|
||||||
if (StringUtils.isBlank(openId)) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_GET_OPEN_ID_BY_CODE_ERROR);
|
|
||||||
}
|
|
||||||
dto.setOpenId(openId);
|
|
||||||
// 充值余额 附加参数
|
|
||||||
Map<String, Object> weixinMap = memberService.rechargeBalanceWithAdapay(dto);
|
|
||||||
response = new RestApiResponse<>(ImmutableMap.of("weixinMap", weixinMap));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("会员充值余额 error", e);
|
|
||||||
response = new RestApiResponse<>(ReturnCodeEnum.CODE_MEMBER_RECHARGE_BALANCE_ERROR);
|
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
@@ -150,6 +118,7 @@ public class PayController extends BaseController {
|
|||||||
if (isLock) {
|
if (isLock) {
|
||||||
map = orderService.payOrder(dto);
|
map = orderService.payOrder(dto);
|
||||||
}
|
}
|
||||||
|
// Map<String, Object> map = orderService.payOrder(dto);
|
||||||
response = new RestApiResponse<>(map);
|
response = new RestApiResponse<>(map);
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
logger.warn("支付订单 warn param:{}", dto.toString(), e);
|
logger.warn("支付订单 warn param:{}", dto.toString(), e);
|
||||||
@@ -167,55 +136,6 @@ public class PayController extends BaseController {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* adapay支付订单
|
|
||||||
* http://localhost:8080/uniapp/pay/payOrderWithAdapay
|
|
||||||
*
|
|
||||||
* @param request
|
|
||||||
* @param dto
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@PostMapping("/payOrderWithAdapay")
|
|
||||||
public RestApiResponse<?> payOrderWithAdapay(HttpServletRequest request, @RequestBody PayOrderDTO dto) {
|
|
||||||
logger.info("adapay支付订单 param:{}", dto.toString());
|
|
||||||
RestApiResponse<?> response;
|
|
||||||
|
|
||||||
// 支付订单加锁
|
|
||||||
String lockKey = "pay_order_" + dto.getOrderCode();
|
|
||||||
String lockValue = IdUtils.fastUUID();
|
|
||||||
try {
|
|
||||||
String memberId = getMemberIdByAuthorization(request);
|
|
||||||
if (StringUtils.isBlank(memberId)) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_TOKEN_ERROR);
|
|
||||||
}
|
|
||||||
if (dto.getPayAmount() == null) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
|
|
||||||
}
|
|
||||||
dto.setMemberId(memberId);
|
|
||||||
dto.setLockValue(lockValue);
|
|
||||||
// redis锁
|
|
||||||
Boolean isLock = redisCache.lock(lockKey, lockValue, 60);
|
|
||||||
Map<String, Object> map = null;
|
|
||||||
if (isLock) {
|
|
||||||
map = orderService.payOrderWithAdapay(dto);
|
|
||||||
}
|
|
||||||
response = new RestApiResponse<>(map);
|
|
||||||
} catch (BusinessException e) {
|
|
||||||
logger.warn("adapay支付订单 warn param:{}", dto.toString(), e);
|
|
||||||
response = new RestApiResponse<>(e.getCode(), e.getMessage());
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("adapay支付订单 error param:{}", dto.toString(), e);
|
|
||||||
response = new RestApiResponse<>(ReturnCodeEnum.CODE_ORDER_PAY_ERROR);
|
|
||||||
} finally {
|
|
||||||
// 支付订单解锁
|
|
||||||
if (lockValue.equals(redisCache.getCacheObject(lockKey).toString())) {
|
|
||||||
redisCache.unLock(lockKey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.info("adapay支付订单 result:{}", JSONObject.toJSONString(response));
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 7003 获取支付方式
|
* 7003 获取支付方式
|
||||||
* http://localhost:8080/uniapp/pay/getPayMode
|
* http://localhost:8080/uniapp/pay/getPayMode
|
||||||
@@ -261,7 +181,6 @@ public class PayController extends BaseController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信退款回调接口
|
* 微信退款回调接口
|
||||||
*
|
|
||||||
* @param request
|
* @param request
|
||||||
* @param body
|
* @param body
|
||||||
* @return
|
* @return
|
||||||
@@ -314,10 +233,11 @@ public class PayController extends BaseController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 汇付支付回调
|
* 汇付支付回调
|
||||||
* https://api.jsowellcloud.com/uniapp/pay/refund
|
* https://api.jsowellcloud.com/uniapp/pay/adapayCallback
|
||||||
*/
|
*/
|
||||||
@PostMapping("/adapayCallback")
|
@PostMapping("/adapayCallback")
|
||||||
public void callback(HttpServletRequest request) {
|
public void callback(HttpServletRequest request) {
|
||||||
|
logger.info("汇付支付回调 request:{}", JSONObject.toJSONString(request));
|
||||||
try {
|
try {
|
||||||
//验签请参data
|
//验签请参data
|
||||||
String data = request.getParameter("data");
|
String data = request.getParameter("data");
|
||||||
@@ -327,18 +247,17 @@ public class PayController extends BaseController {
|
|||||||
boolean checkSign;
|
boolean checkSign;
|
||||||
//验签请参publicKey
|
//验签请参publicKey
|
||||||
String publicKey = AdapayCore.PUBLIC_KEY;
|
String publicKey = AdapayCore.PUBLIC_KEY;
|
||||||
logger.info("汇付支付回调验签请参:data={}sign={}", data, sign);
|
logger.info("汇付支付回调验签请参data={}, sign={}", data, sign);
|
||||||
//验签
|
//验签
|
||||||
checkSign = AdapaySign.verifySign(data, sign, publicKey);
|
checkSign = AdapaySign.verifySign(data, sign, publicKey);
|
||||||
if (checkSign) {
|
if (checkSign) {
|
||||||
//验签成功逻辑
|
//验签成功逻辑
|
||||||
System.out.println("汇付支付回调成功返回数据data:" + data);
|
logger.info("汇付支付回调成功返回数据data:{}", data);
|
||||||
} else {
|
} else {
|
||||||
//验签失败逻辑
|
//验签失败逻辑
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("汇付支付回调失败 request:{}", JSON.toJSONString(request));
|
logger.error("汇付支付回调失败 error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
|
||||||
import com.huifu.adapay.model.Payment;
|
|
||||||
import com.jsowell.JsowellApplication;
|
import com.jsowell.JsowellApplication;
|
||||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
|
||||||
import com.jsowell.adapay.service.AdapayService;
|
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.ykc.LoginRequestData;
|
import com.jsowell.common.core.domain.ykc.LoginRequestData;
|
||||||
@@ -14,15 +9,12 @@ import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
|
|||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.ykc.OrderStatusEnum;
|
import com.jsowell.common.enums.ykc.OrderStatusEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.BytesUtil;
|
import com.jsowell.common.util.*;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.http.HttpUtils;
|
||||||
import com.jsowell.common.util.DictUtils;
|
|
||||||
import com.jsowell.common.util.JWTUtils;
|
|
||||||
import com.jsowell.common.util.StringUtils;
|
|
||||||
import com.jsowell.common.util.YKCUtils;
|
|
||||||
import com.jsowell.common.util.id.SnUtils;
|
import com.jsowell.common.util.id.SnUtils;
|
||||||
import com.jsowell.common.util.id.SnowflakeIdWorker;
|
import com.jsowell.common.util.id.SnowflakeIdWorker;
|
||||||
import com.jsowell.common.util.ip.AddressUtils;
|
import com.jsowell.common.util.ip.AddressUtils;
|
||||||
|
import com.jsowell.common.util.lianlian.LianLianUtils;
|
||||||
import com.jsowell.netty.command.ykc.IssueQRCodeCommand;
|
import com.jsowell.netty.command.ykc.IssueQRCodeCommand;
|
||||||
import com.jsowell.netty.command.ykc.ProofreadTimeCommand;
|
import com.jsowell.netty.command.ykc.ProofreadTimeCommand;
|
||||||
import com.jsowell.netty.handler.HeartbeatRequestHandler;
|
import com.jsowell.netty.handler.HeartbeatRequestHandler;
|
||||||
@@ -34,14 +26,7 @@ import com.jsowell.pile.domain.PileBillingDetail;
|
|||||||
import com.jsowell.pile.domain.PileBillingTemplate;
|
import com.jsowell.pile.domain.PileBillingTemplate;
|
||||||
import com.jsowell.pile.domain.PileStationInfo;
|
import com.jsowell.pile.domain.PileStationInfo;
|
||||||
import com.jsowell.pile.domain.WxpayCallbackRecord;
|
import com.jsowell.pile.domain.WxpayCallbackRecord;
|
||||||
import com.jsowell.pile.dto.BasicPileDTO;
|
import com.jsowell.pile.dto.*;
|
||||||
import com.jsowell.pile.dto.BatchCreatePileDTO;
|
|
||||||
import com.jsowell.pile.dto.ImportBillingTemplateDTO;
|
|
||||||
import com.jsowell.pile.dto.QueryOrderDTO;
|
|
||||||
import com.jsowell.pile.dto.QueryPileDTO;
|
|
||||||
import com.jsowell.pile.dto.QueryStationDTO;
|
|
||||||
import com.jsowell.pile.dto.RefundableWxPayOrderData;
|
|
||||||
import com.jsowell.pile.dto.WeixinPayDTO;
|
|
||||||
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
|
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
|
||||||
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
|
import com.jsowell.pile.mapper.PileBillingTemplateMapper;
|
||||||
import com.jsowell.pile.service.IOrderBasicInfoService;
|
import com.jsowell.pile.service.IOrderBasicInfoService;
|
||||||
@@ -60,6 +45,7 @@ import com.jsowell.service.MemberService;
|
|||||||
import com.jsowell.service.OrderService;
|
import com.jsowell.service.OrderService;
|
||||||
import com.jsowell.service.PileRemoteService;
|
import com.jsowell.service.PileRemoteService;
|
||||||
import com.jsowell.service.PileService;
|
import com.jsowell.service.PileService;
|
||||||
|
import com.jsowell.thirdparty.domain.StationInfo;
|
||||||
import com.jsowell.thirdparty.service.LianLianService;
|
import com.jsowell.thirdparty.service.LianLianService;
|
||||||
import com.jsowell.wxpay.common.WeChatPayParameter;
|
import com.jsowell.wxpay.common.WeChatPayParameter;
|
||||||
import com.jsowell.wxpay.dto.AppletTemplateMessageSendDTO;
|
import com.jsowell.wxpay.dto.AppletTemplateMessageSendDTO;
|
||||||
@@ -72,7 +58,6 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.cglib.beans.BeanMap;
|
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
@@ -80,13 +65,7 @@ import org.springframework.util.StopWatch;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@ActiveProfiles("dev")
|
@ActiveProfiles("dev")
|
||||||
@SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(classes = JsowellApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
@@ -161,9 +140,6 @@ public class SpringBootTestController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IPileAuthCardService pileAuthCardService;
|
private IPileAuthCardService pileAuthCardService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AdapayService adapayService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LianLianService lianLianService;
|
private LianLianService lianLianService;
|
||||||
|
|
||||||
@@ -171,51 +147,6 @@ public class SpringBootTestController {
|
|||||||
|
|
||||||
static final String ALGORITHM_MAC = "HmacMD5";
|
static final String ALGORITHM_MAC = "HmacMD5";
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testCreateAdapay() {
|
|
||||||
adapayService.createTransactionObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建交易对象
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void test() {
|
|
||||||
// 请求参数
|
|
||||||
Map<String, Object> paymentParams = Maps.newHashMap();
|
|
||||||
paymentParams.put("order_no", "fasdftawefawefawsdcaseg");
|
|
||||||
paymentParams.put("pay_amt", "0.05");
|
|
||||||
paymentParams.put("app_id", "app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa");
|
|
||||||
paymentParams.put("pay_channel", "wx_lite");
|
|
||||||
paymentParams.put("goods_title", "Your goods_title");
|
|
||||||
paymentParams.put("goods_desc", "Your goods_desc");
|
|
||||||
paymentParams.put("description", "payment Discription");
|
|
||||||
Map<String, Object> expendMap = Maps.newHashMap();
|
|
||||||
expendMap.put("open_id", "o4REX5PYTXvwl_YXs_aGrVAqCh_c");
|
|
||||||
paymentParams.put("expend", expendMap);
|
|
||||||
// paymentParams.put("div_members", [{"amount":"0.05", "fee_flag":"Y", "member_id":"member_id_test"}]);
|
|
||||||
// 调用创建方法,获取 Payment对象_
|
|
||||||
|
|
||||||
// 封装对象
|
|
||||||
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
|
||||||
createAdaPaymentParam.setOrder_no("fasdftawefawefawsdcaseg123");
|
|
||||||
createAdaPaymentParam.setPay_amt("0.05");
|
|
||||||
createAdaPaymentParam.setApp_id("app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa"); // todo 后面移动到配置文件中
|
|
||||||
createAdaPaymentParam.setPay_channel("wx_lite"); // todo 如果以后有支付宝等别的渠道,这里需要做修改,判断是什么渠道的请求
|
|
||||||
createAdaPaymentParam.setGoods_title("充电费用1");
|
|
||||||
createAdaPaymentParam.setGoods_desc("充电费用2");
|
|
||||||
createAdaPaymentParam.setDescription("充电费用3");
|
|
||||||
createAdaPaymentParam.setExpend(JSONObject.toJSONString( ImmutableMap.of("open_id", "o4REX5PYTXvwl_YXs_aGrVAqCh_c")));
|
|
||||||
try {
|
|
||||||
// Map<String, Object> response = Payment.create(paymentParams);
|
|
||||||
Map<String, Object> response = Payment.create(BeanMap.create(createAdaPaymentParam));
|
|
||||||
System.out.println(response);
|
|
||||||
} catch (BaseAdaPayException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testupdateElecAmount() {
|
public void testupdateElecAmount() {
|
||||||
orderBasicInfoService.updateElecAmount();
|
orderBasicInfoService.updateElecAmount();
|
||||||
@@ -227,8 +158,8 @@ public class SpringBootTestController {
|
|||||||
System.out.println(pileAuthCard);
|
System.out.println(pileAuthCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
@Test
|
||||||
// public void testLianLian(){
|
public void testLianLian(){
|
||||||
// // 获取令牌
|
// // 获取令牌
|
||||||
// LianLianGetTokenDTO dto = new LianLianGetTokenDTO();
|
// LianLianGetTokenDTO dto = new LianLianGetTokenDTO();
|
||||||
// dto.setOperatorId("987654321");
|
// dto.setOperatorId("987654321");
|
||||||
@@ -247,9 +178,11 @@ public class SpringBootTestController {
|
|||||||
//
|
//
|
||||||
// .build();
|
// .build();
|
||||||
// lianLianService.pushStationInfo(dto1);
|
// lianLianService.pushStationInfo(dto1);
|
||||||
//
|
|
||||||
//
|
lianLianService.pushConnectorStatus("8800000000000101", "1");
|
||||||
// }
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -842,7 +775,7 @@ public class SpringBootTestController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetMemberToken() {
|
public void testGetMemberToken(){
|
||||||
String memberId = JWTUtils.getMemberId("eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NzY1MTY5MzgsImV4cCI6MTY3OTEwODkzOH0.4MwhZIOpnCfQloR7zEm2hwPOh2yyI2qxbBbTcv_SnZ4");
|
String memberId = JWTUtils.getMemberId("eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NzY1MTY5MzgsImV4cCI6MTY3OTEwODkzOH0.4MwhZIOpnCfQloR7zEm2hwPOh2yyI2qxbBbTcv_SnZ4");
|
||||||
System.out.println(memberId);
|
System.out.println(memberId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,16 @@
|
|||||||
<groupId>com.alibaba.fastjson2</groupId>
|
<groupId>com.alibaba.fastjson2</groupId>
|
||||||
<artifactId>fastjson2</artifactId>
|
<artifactId>fastjson2</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.huifu.adapay.core</groupId>
|
||||||
|
<artifactId>adapay-core-sdk</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.huifu.adapay</groupId>
|
||||||
|
<artifactId>adapay-java-sdk</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ public interface IPileConnectorInfoService {
|
|||||||
*/
|
*/
|
||||||
int updateConnectorStatus(String connectorCode, String status);
|
int updateConnectorStatus(String connectorCode, String status);
|
||||||
|
|
||||||
|
String pushConnectorStatus(String pileConnectorCode, String status);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过桩编号修改枪口状态
|
* 通过桩编号修改枪口状态
|
||||||
* 仅用于登录逻辑使用
|
* 仅用于登录逻辑使用
|
||||||
|
|||||||
@@ -439,6 +439,11 @@ public class PileConnectorInfoServiceImpl implements IPileConnectorInfoService {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String pushConnectorStatus(String pileConnectorCode, String status) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询充电枪口的实时数据
|
* 查询充电枪口的实时数据
|
||||||
*/
|
*/
|
||||||
@@ -527,6 +532,9 @@ public class PileConnectorInfoServiceImpl implements IPileConnectorInfoService {
|
|||||||
num = pileConnectorInfoMapper.updateConnectorStatus(pileConnectorCode, status);
|
num = pileConnectorInfoMapper.updateConnectorStatus(pileConnectorCode, status);
|
||||||
deleteRedisByPileSn(pileSn);
|
deleteRedisByPileSn(pileSn);
|
||||||
redisCache.setCacheObject(redisKey, status);
|
redisCache.setCacheObject(redisKey, status);
|
||||||
|
|
||||||
|
// 推送联联平台 设备状态变化推送接口 ConnectorStatusInfo
|
||||||
|
|
||||||
}
|
}
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.thirdparty.domain;
|
package com.jsowell.thirdparty.domain;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -17,7 +18,8 @@ public class ConnectorStatusInfo {
|
|||||||
* 充电设备接口编码 Y
|
* 充电设备接口编码 Y
|
||||||
* 充电设备接口编码,同一对接平台内唯一
|
* 充电设备接口编码,同一对接平台内唯一
|
||||||
*/
|
*/
|
||||||
private String ConnectorID;
|
@JSONField(name = "ConnectorID")
|
||||||
|
private String connectorID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充电设备接口状态 Y
|
* 充电设备接口状态 Y
|
||||||
@@ -28,7 +30,8 @@ public class ConnectorStatusInfo {
|
|||||||
* 4:占用(预约锁定)
|
* 4:占用(预约锁定)
|
||||||
* 255:故障
|
* 255:故障
|
||||||
*/
|
*/
|
||||||
private String Status;
|
@JSONField(name = "Status")
|
||||||
|
private String status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车位状态(0-未知;10-空闲;50-占用) N
|
* 车位状态(0-未知;10-空闲;50-占用) N
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public interface LianLianService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据充电站id,推送充电站信息
|
* 根据充电站id,推送充电站信息
|
||||||
* @param stationId
|
* @param dto
|
||||||
*/
|
*/
|
||||||
void pushStationInfo(LianLianPushStationInfoDTO dto);
|
void pushStationInfo(LianLianPushStationInfoDTO dto);
|
||||||
|
|
||||||
@@ -78,4 +78,12 @@ public interface LianLianService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String getToken(LianLianGetTokenDTO dto);
|
String getToken(LianLianGetTokenDTO dto);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 推送联联平台 设备状态变化推送
|
||||||
|
* @param pileConnectorCode
|
||||||
|
* @param status
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String pushConnectorStatus(String pileConnectorCode, String status);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,12 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class LianLianServiceImpl implements LianLianService {
|
public class LianLianServiceImpl implements LianLianService {
|
||||||
|
private static final String TEST_URL = "http://testdataexchange.evchargeonline.com:82/shevcs/v1/";
|
||||||
|
private static final String OPERATOR_ID = "987654321";
|
||||||
|
private static final String OPERATOR_SECRET = "1234567890abcdef";
|
||||||
|
private static final String SIG_SECRET = "1234567890abcdef"; // 签名秘钥
|
||||||
|
private static final String DATA_SECRET = "1234567890abcdef"; // 消息密钥
|
||||||
|
private static final String DATA_SECRETIV = "1234567890abcdef"; // 消息密钥初始化向量
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPileMerchantInfoService pileMerchantInfoService;
|
private IPileMerchantInfoService pileMerchantInfoService;
|
||||||
@@ -152,7 +158,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 调用联联平台接口
|
// 调用联联平台接口
|
||||||
String url = "http://testdataexchange.evchargeonline.com:82/shevcs/v1/" + "notification_stationInfo";
|
String url = TEST_URL + "notification_stationInfo";
|
||||||
|
|
||||||
String jsonStr = JSONObject.toJSONString(info);
|
String jsonStr = JSONObject.toJSONString(info);
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
@@ -169,8 +175,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args){
|
public static void main(String[] args){
|
||||||
BigDecimal bigDecimal = new BigDecimal("7").setScale(1, BigDecimal.ROUND_HALF_UP);
|
|
||||||
System.out.println(bigDecimal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -564,7 +569,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取令牌
|
* 从联联平台获取令牌
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -575,7 +580,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
String token = "";
|
String token = "";
|
||||||
try {
|
try {
|
||||||
//测试用请求地址
|
//测试用请求地址
|
||||||
String requestUrl = "http://testdataexchange.evchargeonline.com:82/shevcs/v1/query_token";
|
String requestUrl = TEST_URL + "query_token";
|
||||||
|
|
||||||
//请求data
|
//请求data
|
||||||
Map<String, String> data = new HashMap<>();
|
Map<String, String> data = new HashMap<>();
|
||||||
@@ -617,6 +622,38 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 联联平台推送 设备状态变化推送
|
||||||
|
* @param pileConnectorCode
|
||||||
|
* @param status
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String pushConnectorStatus(String pileConnectorCode, String status) {
|
||||||
|
String url = TEST_URL + "notification_stationStatus";
|
||||||
|
|
||||||
|
// 获取令牌
|
||||||
|
LianLianGetTokenDTO dto = new LianLianGetTokenDTO();
|
||||||
|
dto.setOperatorId(OPERATOR_ID);
|
||||||
|
dto.setOperatorSecret(OPERATOR_SECRET);
|
||||||
|
String token = getToken(dto);
|
||||||
|
if (StringUtils.isBlank(token)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
ConnectorStatusInfo info = ConnectorStatusInfo.builder()
|
||||||
|
.connectorID(pileConnectorCode)
|
||||||
|
.status(status)
|
||||||
|
.build();
|
||||||
|
// 调用联联平台接口
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("ConnectorStatusInfo", info);
|
||||||
|
String jsonString = JSONObject.toJSONString(json);
|
||||||
|
|
||||||
|
String result = HttpRequestUtil.sendPost(token, jsonString, url, DATA_SECRET, DATA_SECRETIV, OPERATOR_ID, SIG_SECRET);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO 推送停止充电结果 notification_stop_charge_result
|
// TODO 推送停止充电结果 notification_stop_charge_result
|
||||||
|
|
||||||
// TODO 推送充电订单信息 notification_charge_order_info
|
// TODO 推送充电订单信息 notification_charge_order_info
|
||||||
|
|||||||
Reference in New Issue
Block a user