diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 6889f23bf..875969937 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -909,6 +909,28 @@ public class OrderService { // 使用微信支付 payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()); payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel()); + + // 判断是微信支付还是汇付支付 + MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode); + if (record != null) { + String paymentInstitutions = record.getPaymentInstitutions(); + if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { + // 查微信支付回调记录 + WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); + if (wxpayCallbackRecord != null) { + payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); + payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); + } + } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { + // 查询汇付支付回调 + AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); + if (adapayCallbackRecord != null) { + payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); + payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); + } + } + } + // 查微信支付回调记录 WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); if (wxpayCallbackRecord != null) { diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java index d445aa540..67d902d53 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/OrderBasicInfoController.java @@ -156,7 +156,6 @@ public class OrderBasicInfoController extends BaseController { @PreAuthorize("@ss.hasPermi('order:order:list')") @PostMapping("/getMerchantOrderList") public TableDataInfo getMerchantOrderList(@RequestBody QueryOrderDTO dto) { - PageUtils.startPage(); return getDataTable(orderBasicInfoService.getMerchantOrderInfoList(dto)); } } diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java index 705c1fa6b..eb41832ce 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileMerchantInfoController.java @@ -5,14 +5,17 @@ import com.jsowell.common.annotation.Log; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.core.page.TableDataInfo; import com.jsowell.common.enums.BusinessType; import com.jsowell.common.exception.BusinessException; +import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.SecurityUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.poi.ExcelUtil; import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.dto.CreateMerchantDTO; +import com.jsowell.pile.dto.PageDTO; import com.jsowell.pile.service.IPileMerchantInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -120,14 +123,17 @@ public class PileMerchantInfoController extends BaseController { * @return */ @PreAuthorize("@ss.hasPermi('pile:merchant:query')") - @GetMapping("/getFinancialMerchantList") - public TableDataInfo getFinancialMerchantList() { + @PostMapping("/getFinancialMerchantList") + public TableDataInfo getFinancialMerchantList(@RequestBody PageDTO dto) { + int pageNum = dto.getPageNum() == 0 ? 1 : dto.getPageNum(); + int pageSize = dto.getPageSize() == 0 ? 10 : dto.getPageSize(); // 权限过滤 AuthorizedDeptVO authorizedMap = SecurityUtils.getAuthorizedMap(); if (authorizedMap == null) { // 为空表示没有权限,返回空数组 return new TableDataInfo(); } + PageUtils.startPage(pageNum, pageSize); return getDataTable(pileMerchantInfoService.queryInfoListByIds(authorizedMap)); } } diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 6c829a447..de89ff523 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -40,7 +40,9 @@ public class CacheConstants { public static final String PILE_PROGRAM_VERSION = "pile_program_version_"; // 查询订单回调 - public static final String QUERY_ORDER_CALLBACK = "query_order_callback:"; + public static final String QUERY_ORDER_WECHAT_CALLBACK = "query_order_wechat_callback:"; + + public static final String QUERY_ORDER_ADAPAY_CALLBACK = "query_order_adapay_callback:"; // 汇付支付参数 public static final String ADAPAY_ORDER_PARAM = "adapay_order_param:"; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java index 3d921835e..414ae3c98 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java @@ -53,6 +53,63 @@ public class LoginRequestHandler extends AbstractHandler{ YKCOperateFactory.register(type, this); } + public static void main(String[] args) { + String msg = "8800000000009000020f56312e323035303000898604940121c138531304"; + byte[] msgBody = BytesUtil.str2Bcd(msg); + + int startIndex = 0; + int length = 7; + + // 桩编码 + byte[] pileSnByte = BytesUtil.copyBytes(msgBody, startIndex, length); + String pileSn = BytesUtil.binary(pileSnByte, 16); + // log.info("桩号:{}", pileSn); + + // 桩类型 0 表示直流桩, 1 表示交流桩 + startIndex += length; + length = 1; + byte[] pileTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String pileType = BytesUtil.bcd2Str(pileTypeByteArr); + + // 充电枪数量 + startIndex += length; + byte[] connectorNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String connectorNum = BytesUtil.bcd2Str(connectorNumByteArr); + + // 通信协议版本 版本号乘 10,v1.0 表示 0x0A + startIndex += length; + byte[] communicationVersionByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + // int i = Integer.parseInt(BytesUtil.bcd2Str(communicationVersionByteArr)); // 0F --> 15 + BigDecimal bigDecimal = new BigDecimal(BytesUtil.bcd2Str(communicationVersionByteArr)); + BigDecimal communicationVersionTemp = bigDecimal.divide(new BigDecimal(10)); + String communicationVersion = "v" + communicationVersionTemp; + + // 程序版本 + startIndex += length; + length = 8; + byte[] programVersionByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String programVersion = BytesUtil.ascii2Str(programVersionByteArr); + log.info("程序版本:{} length:{}", programVersion, programVersion.length()); + + // 网络连接类型 0x00 SIM 卡 0x01 LAN 0x02 WAN 0x03 其他 + startIndex += length; + length = 1; + byte[] internetConnectionTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String internetConnection = BytesUtil.bcd2Str(internetConnectionTypeByteArr); + + // sim卡 + startIndex += length; + length = 10; + byte[] simCardNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String iccid = BytesUtil.bin2HexStr(simCardNumByteArr); + + // 运营商 0x00 移动 0x02 电信 0x03 联通 0x04 其他 + startIndex += length; + length = 1; + byte[] businessTypeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String business = BytesUtil.bcd2Str(businessTypeByteArr); + } + @Override public byte[] supplyProcess(YKCDataProtocol ykcDataProtocol, Channel channel) { log.info("[===执行登录逻辑===] param:{}, channel:{}", JSONObject.toJSONString(ykcDataProtocol), channel.toString()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PageDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PageDTO.java new file mode 100644 index 000000000..be1af36e1 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PageDTO.java @@ -0,0 +1,16 @@ +package com.jsowell.pile.dto; + +import lombok.Data; + +/** + * TODO + * + * @author Lemon + * @Date 2023/7/7 13:27 + */ +@Data +public class PageDTO { + private Integer pageSize; + private Integer pageNum; + +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java index 8e41fa315..b648563c6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryOrderDTO.java @@ -63,4 +63,8 @@ public class QueryOrderDTO extends BaseEntity { * 结束时间 */ private String endTime; + + private int pageSize; + + private int pageNum; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayCallbackRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayCallbackRecordServiceImpl.java index dcff64c2f..f1de52ee3 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayCallbackRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/AdapayCallbackRecordServiceImpl.java @@ -64,7 +64,7 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ if (StringUtils.isBlank(orderCode)) { return null; } - String redisKey = CacheConstants.QUERY_ORDER_CALLBACK + orderCode; + String redisKey = CacheConstants.QUERY_ORDER_ADAPAY_CALLBACK + orderCode; AdapayCallbackRecord record = redisCache.getCacheObject(redisKey); if (record != null) { return record; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 7968050f5..bff689a09 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1987,11 +1987,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public List getMerchantOrderInfoList(QueryOrderDTO dto) { + int pageNum = dto.getPageNum() == 0 ? 1 : dto.getPageNum(); + int pageSize = dto.getPageSize() == 0 ? 10 : dto.getPageSize(); String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(new Date(), -7)); startTime = dto.getStartTime() == null ? startTime : dto.getStartTime(); dto.setStartTime(startTime); + PageUtils.startPage(pageNum, pageSize); return orderBasicInfoMapper.getMerchantOrderInfoList(dto); } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index c3ea1738a..3580d5bfc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -262,7 +262,6 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { String deptId = authorizedMap.getDeptId(); deptIds.add(deptId); } - PageUtils.startPage(); return pileMerchantInfoMapper.queryInfoListByIds(deptIds); } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayCallbackRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayCallbackRecordServiceImpl.java index d21f37cdc..cb5808e6a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayCallbackRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WxpayCallbackRecordServiceImpl.java @@ -61,7 +61,7 @@ public class WxpayCallbackRecordServiceImpl implements WxpayCallbackRecordServic if (StringUtils.isBlank(orderCode)) { return null; } - String redisKey = CacheConstants.QUERY_ORDER_CALLBACK + orderCode; + String redisKey = CacheConstants.QUERY_ORDER_WECHAT_CALLBACK + orderCode; WxpayCallbackRecord wxpayCallbackRecord = redisCache.getCacheObject(redisKey); if (wxpayCallbackRecord != null) { return wxpayCallbackRecord; diff --git a/jsowell-ui/src/api/pile/merchant.js b/jsowell-ui/src/api/pile/merchant.js index 605759392..37ef44884 100644 --- a/jsowell-ui/src/api/pile/merchant.js +++ b/jsowell-ui/src/api/pile/merchant.js @@ -53,9 +53,10 @@ export function getMerchantList(query) { } // 财务管理页面获取运营商列表 -export function getFinancialMerchantList() { +export function getFinancialMerchantList(data) { return request({ url: '/pile/merchant/getFinancialMerchantList', - method: 'get' + method: 'post', + data: data }) } diff --git a/jsowell-ui/src/router/index.js b/jsowell-ui/src/router/index.js index 481c601c0..b57c4617a 100644 --- a/jsowell-ui/src/router/index.js +++ b/jsowell-ui/src/router/index.js @@ -172,7 +172,7 @@ export const constantRoutes = [ hidden: true, children: [ { - path: "merchantVirtual", + path: "merchantVirtual/:id", component: () => import("@/views/financial/components/virtualFinance"), name: "merchantVirtual", meta: { title: "虚拟财务",activeMenu: "/financial/merchant"}, diff --git a/jsowell-ui/src/views/financial/merchant.vue b/jsowell-ui/src/views/financial/merchant.vue index cb3a9e6f5..ed621fe4a 100644 --- a/jsowell-ui/src/views/financial/merchant.vue +++ b/jsowell-ui/src/views/financial/merchant.vue @@ -1,36 +1,106 @@