mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
Merge branch 'HuiFu' into dev
# Conflicts: # jsowell-admin/src/main/java/com/jsowell/service/OrderService.java
This commit is contained in:
@@ -90,6 +90,37 @@ public class PayController extends BaseController {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 会员充值余额
|
||||
*/
|
||||
@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) {
|
||||
response = new RestApiResponse<>();
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 7002 支付订单
|
||||
* http://localhost:8080/uniapp/pay/payOrder
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package com.jsowell.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import com.huifu.adapay.model.Payment;
|
||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
@@ -9,7 +15,9 @@ import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.TitleTypeEnum;
|
||||
import com.jsowell.common.enums.uniapp.BalanceChangesEnum;
|
||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.enums.ykc.ScenarioEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.AdapayUtil;
|
||||
import com.jsowell.common.util.JWTUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.id.IdUtils;
|
||||
@@ -23,8 +31,10 @@ import com.jsowell.pile.dto.BindingCardDTO;
|
||||
import com.jsowell.pile.dto.CreateInvoiceTitleDTO;
|
||||
import com.jsowell.pile.dto.MemberRegisterAndLoginDTO;
|
||||
import com.jsowell.pile.dto.MemberRegisterDTO;
|
||||
import com.jsowell.pile.dto.PaymentScenarioDTO;
|
||||
import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO;
|
||||
import com.jsowell.pile.dto.WechatLoginDTO;
|
||||
import com.jsowell.pile.dto.WeixinPayDTO;
|
||||
import com.jsowell.pile.service.IMemberBasicInfoService;
|
||||
import com.jsowell.pile.service.IMemberInvoiceTitleService;
|
||||
import com.jsowell.pile.service.IMemberPlateNumberRelationService;
|
||||
@@ -42,10 +52,12 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cglib.beans.BeanMap;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Service
|
||||
@@ -76,6 +88,9 @@ public class MemberService {
|
||||
@Autowired
|
||||
private IMemberInvoiceTitleService memberInvoiceTitleService;
|
||||
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
|
||||
/**
|
||||
* 校验短信验证码
|
||||
* @param dto
|
||||
@@ -381,4 +396,42 @@ public class MemberService {
|
||||
int i = memberInvoiceTitleService.insertMemberInvoiceTitle(title);
|
||||
log.info("新增{}条发票抬头", i);
|
||||
}
|
||||
|
||||
public Map<String, Object> rechargeBalance(WeixinPayDTO dto) throws Exception {
|
||||
PaymentScenarioDTO paymentScenarioDTO = new PaymentScenarioDTO();
|
||||
paymentScenarioDTO.setType(ScenarioEnum.BALANCE.getValue());
|
||||
paymentScenarioDTO.setMemberId(dto.getMemberId());
|
||||
dto.setAttach(JSONObject.toJSONString(paymentScenarioDTO));
|
||||
dto.setDescription("会员充值余额");
|
||||
return orderService.weixinPayV3(dto);
|
||||
}
|
||||
|
||||
public Map<String, Object> rechargeBalanceWithAdapay(WeixinPayDTO dto) throws Exception {
|
||||
// 封装对象
|
||||
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
||||
createAdaPaymentParam.setOrder_no(IdUtils.fastSimpleUUID());
|
||||
createAdaPaymentParam.setPay_amt(AdapayUtil.formatAmount(dto.getAmount()));
|
||||
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", dto.getOpenId())));
|
||||
//异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数
|
||||
createAdaPaymentParam.setNotify_url("https://api.jsowellcloud.com/uniapp/pay/adapayCallback");
|
||||
try {
|
||||
log.info("创建汇付支付参数:{}", JSONObject.toJSONString(createAdaPaymentParam));
|
||||
Map<String, Object> response = Payment.create(BeanMap.create(createAdaPaymentParam));
|
||||
log.info("创建汇付支付参数反参:{}", JSONObject.toJSONString(response));
|
||||
if (response != null && !response.isEmpty()) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(response.get("expend").toString());
|
||||
JSONObject pay_info = jsonObject.getJSONObject("pay_info");
|
||||
Map<String, Object> resultMap = JSONObject.parseObject(pay_info.toJSONString(), new TypeReference<Map<String, Object>>() {});
|
||||
return resultMap;
|
||||
}
|
||||
} catch (BaseAdaPayException e) {
|
||||
log.error("汇付-获取支付对象发生异常", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
package com.jsowell.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.alibaba.fastjson2.TypeReference;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import com.huifu.adapay.model.Payment;
|
||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||
@@ -24,6 +29,7 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.enums.ykc.ScenarioEnum;
|
||||
import com.jsowell.common.enums.ykc.StartTypeEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.AdapayUtil;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.SecurityUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
@@ -66,7 +72,6 @@ import com.jsowell.pile.transaction.service.TransactionService;
|
||||
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
|
||||
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
|
||||
import com.jsowell.pile.vo.base.PileInfoVO;
|
||||
import com.jsowell.pile.vo.base.StationInfoVO;
|
||||
import com.jsowell.pile.vo.uniapp.InvoiceRecordVO;
|
||||
import com.jsowell.pile.vo.uniapp.MemberVO;
|
||||
import com.jsowell.pile.vo.uniapp.OrderVO;
|
||||
@@ -83,6 +88,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cglib.beans.BeanMap;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -151,6 +157,8 @@ public class OrderService {
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
private List<String> stationIdList = Lists.newArrayList("1", "2");
|
||||
|
||||
/**
|
||||
* 生成订单
|
||||
*
|
||||
@@ -191,7 +199,42 @@ public class OrderService {
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
|
||||
// 微信支付
|
||||
dto.setOrderBasicInfo(orderInfo);
|
||||
Map<String, Object> weixinMap = wechatPayOrder(dto);
|
||||
Map<String, Object> weixinMap = null;
|
||||
if (stationIdList.contains("all") || stationIdList.contains(orderInfo.getStationId())) {
|
||||
weixinMap = adapayPayOrder(dto);
|
||||
} else {
|
||||
weixinMap = wechatPayOrder(dto);
|
||||
}
|
||||
// 返回微信支付参数
|
||||
resultMap.put("weixinMap", weixinMap);
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_ALIPAY.getValue())) { // 支付宝支付
|
||||
// TODO 返回支付宝支付参数
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { // 白名单支付
|
||||
// 白名单支付可以直接调支付回调方法
|
||||
dto.setPayAmount(new BigDecimal("500"));
|
||||
whiteListPayOrder(dto);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
|
||||
public Map<String, Object> payOrderWithAdapay(PayOrderDTO dto) {
|
||||
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||
if (orderInfo == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
|
||||
}
|
||||
if (!StringUtils.equals(orderInfo.getPayStatus(), "0")) {
|
||||
// 订单已支付
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_ORDER_IS_NOT_TO_BE_PAID_ERROR);
|
||||
}
|
||||
Map<String, Object> resultMap = Maps.newHashMap();
|
||||
if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue())) {
|
||||
// 余额支付
|
||||
balancePayOrder(dto);
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())) {
|
||||
// 微信支付 使用adapay
|
||||
dto.setOrderBasicInfo(orderInfo);
|
||||
Map<String, Object> weixinMap = adapayPayOrder(dto);
|
||||
// 返回微信支付参数
|
||||
resultMap.put("weixinMap", weixinMap);
|
||||
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_ALIPAY.getValue())) { // 支付宝支付
|
||||
@@ -206,7 +249,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 白名单支付订单逻辑
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
private void whiteListPayOrder(PayOrderDTO dto) {
|
||||
@@ -221,14 +263,70 @@ public class OrderService {
|
||||
payOrderSuccessCallback(callbackDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用汇付支付
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> adapayPayOrder(PayOrderDTO dto) {
|
||||
log.info("===============使用汇付支付");
|
||||
// 相同参数重复请求,返回同一个支付对象
|
||||
String redisKey = "ADAPAY_ORDER_PARAM:" + dto.getOrderCode();
|
||||
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
||||
if (cacheObject != null) {
|
||||
return cacheObject;
|
||||
}
|
||||
|
||||
OrderBasicInfo orderInfo = dto.getOrderBasicInfo();
|
||||
if (orderInfo == null) {
|
||||
// 订单为空重新查询
|
||||
orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode());
|
||||
}
|
||||
// 获取openId
|
||||
String openId = memberService.getOpenIdByCode(dto.getCode());
|
||||
if (StringUtils.isBlank(openId)) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_GET_OPEN_ID_BY_CODE_ERROR);
|
||||
}
|
||||
|
||||
// 封装对象
|
||||
CreateAdaPaymentParam createAdaPaymentParam = new CreateAdaPaymentParam();
|
||||
createAdaPaymentParam.setOrder_no(orderInfo.getOrderCode());
|
||||
// createAdaPaymentParam.setPay_amt(new DecimalFormat("#.00").format(dto.getPayAmount()));
|
||||
createAdaPaymentParam.setPay_amt(AdapayUtil.formatAmount(dto.getPayAmount()));
|
||||
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", openId)));
|
||||
try {
|
||||
log.info("创建汇付支付参数:{}", JSONObject.toJSONString(createAdaPaymentParam));
|
||||
Map<String, Object> response = Payment.create(BeanMap.create(createAdaPaymentParam));
|
||||
if (response != null && !response.isEmpty()) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(response.get("expend").toString());
|
||||
JSONObject pay_info = jsonObject.getJSONObject("pay_info");
|
||||
Map<String, Object> resultMap = JSONObject.parseObject(pay_info.toJSONString(), new TypeReference<Map<String, Object>>() {
|
||||
});
|
||||
if (resultMap != null) {
|
||||
// 表示已经获取到支付参数了,后续再有支付请求就拒绝
|
||||
redisCache.setCacheObject(redisKey, resultMap, 15, TimeUnit.MINUTES);
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
} catch (BaseAdaPayException e) {
|
||||
log.error("汇付-获取支付对象发生异常", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信支付订单逻辑 获取支付参数
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private Map<String, Object> wechatPayOrder(PayOrderDTO dto) throws Exception {
|
||||
// 相同参数重复请求,返回同一个支付对象
|
||||
String redisKey = "WECHAT_PAY_ORDER_PARAM:" + dto.getOrderCode();
|
||||
Map<String, Object> cacheObject = redisCache.getCacheObject(redisKey);
|
||||
if (cacheObject != null) {
|
||||
@@ -264,7 +362,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 余额支付订单逻辑
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
private void balancePayOrder(PayOrderDTO dto) {
|
||||
@@ -689,7 +786,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 查询订单详情信息
|
||||
*
|
||||
* @param orderCode 订单编号
|
||||
* @return
|
||||
*/
|
||||
@@ -778,7 +874,7 @@ public class OrderService {
|
||||
// 使用余额支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel());
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())) {
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())){
|
||||
// 使用微信支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel());
|
||||
@@ -788,7 +884,7 @@ public class OrderService {
|
||||
payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo());
|
||||
payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId());
|
||||
}
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())) {
|
||||
} else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())){
|
||||
// 使用白名单支付
|
||||
payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue());
|
||||
payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel());
|
||||
@@ -831,7 +927,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 获取小程序订单详情
|
||||
*
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@@ -907,7 +1002,7 @@ public class OrderService {
|
||||
// monitorDataList是按照时间倒序的,chargingDataList需要按照时间正序
|
||||
Collections.reverse(chargingDataList);
|
||||
vo.setChargingDataList(chargingDataList);
|
||||
}
|
||||
}
|
||||
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
if (orderDetail != null) {
|
||||
@@ -930,7 +1025,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 根据订单号查询充电桩启动状态
|
||||
*
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@@ -950,7 +1044,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 人工结算订单
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
public boolean manualSettlementOrder(ManualSettlementDTO dto) {
|
||||
@@ -1004,7 +1097,6 @@ public class OrderService {
|
||||
|
||||
/**
|
||||
* 当前登录会员 获取支付方式
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
public List<PayModeVO> getPayMode(GetPayModeDTO dto) {
|
||||
@@ -1040,9 +1132,11 @@ public class OrderService {
|
||||
|
||||
public List<OrderVO> queryUninvoicedOrderList(QueryOrderDTO dto) {
|
||||
int i = 15;
|
||||
|
||||
// 查询最近15天完成的订单
|
||||
LocalDateTime dateTime = LocalDateTime.now().plusDays(-i);
|
||||
List<OrderVO> orderList = orderBasicInfoService.getListByMemberIdAndOrderStatus(dto.getMemberId(), Lists.newArrayList("6"), dateTime, dto.getStationId());
|
||||
List<OrderVO> orderList = orderBasicInfoService.getListByMemberIdAndOrderStatus(dto.getMemberId(), Lists.newArrayList("6"), dateTime);
|
||||
|
||||
// 过滤掉订单金额为0的
|
||||
orderList = orderList.stream()
|
||||
.filter(x -> x.getOrderAmount().compareTo(BigDecimal.ZERO) > 0)
|
||||
@@ -1050,6 +1144,7 @@ public class OrderService {
|
||||
if (CollectionUtils.isEmpty(orderList)) {
|
||||
return orderList;
|
||||
}
|
||||
|
||||
// 查询最近60天申请开票记录
|
||||
QueryInvoiceRecordDTO build = QueryInvoiceRecordDTO.builder()
|
||||
.memberId(dto.getMemberId())
|
||||
@@ -1059,37 +1154,22 @@ public class OrderService {
|
||||
if (CollectionUtils.isEmpty(orderInvoiceRecords)) {
|
||||
return orderList;
|
||||
}
|
||||
|
||||
// 排除掉已经申请过的订单
|
||||
List<String> orderCodeList = orderInvoiceRecords.stream() // 转化为 Stream
|
||||
.map(OrderInvoiceRecord::getOrderCodes) // 获取 OrderInvoiceRecord 中的 orderCodes 字符串
|
||||
.flatMap(str -> Arrays.stream(str.split(","))) // 分隔逗号并转化为 Stream
|
||||
.collect(Collectors.toList()); // 收集为 List<String>
|
||||
|
||||
orderList = orderList.stream()
|
||||
.filter(x -> !orderCodeList.contains(x.getOrderCode()))
|
||||
.collect(Collectors.toList());
|
||||
return orderList;
|
||||
}
|
||||
|
||||
public List<StationInfoVO> queryUninvoicedStationList(QueryOrderDTO dto) {
|
||||
dto.setStationId(null);
|
||||
List<OrderVO> orderVOS = queryUninvoicedOrderList(dto);
|
||||
if (CollectionUtils.isEmpty(orderVOS)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
// 根据站点分组
|
||||
List<StationInfoVO> stationInfoVOS = orderVOS.stream()
|
||||
.map(
|
||||
x -> StationInfoVO.builder()
|
||||
.stationId(x.getStationId())
|
||||
.stationName(x.getStationName())
|
||||
.build()
|
||||
).distinct().collect(Collectors.toList());
|
||||
return stationInfoVOS;
|
||||
return orderList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 申请开票
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
public void applyOrderInvoice(ApplyOrderInvoiceDTO dto) {
|
||||
@@ -1168,4 +1248,7 @@ public class OrderService {
|
||||
.build();
|
||||
}
|
||||
|
||||
public void adapayCallback(HttpServletRequest request, WechatPayNotifyParameter body) {
|
||||
log.info("");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user