feat:发票添加申请人

feat:添加微信小程序的用户入口
This commit is contained in:
dzc committed 2026-01-15 09:26:44 +08:00
1 parent d84b294966
commit f1d6e2f2f6
26 files changed
+550 -77

No files matched your search

@@ -7,14 +7,15 @@ import lombok.Getter;
import java.util.Arrays;
/**
* 第三方面密类型
* 第三方免密支付状态
*/
@AllArgsConstructor
@Getter
public enum HardThirdMiStatusEnum {
CREATE_ORDER("10", "创建订单"),
PAY("20", "支付订单"),
PAY_SUCCESS("20", "支付成功"),
PAY_ERROR("21", "支付失败"),
REFUND("30", "取消/退款"),
;
@@ -7,7 +7,7 @@ import lombok.Getter;
import java.util.Arrays;
/**
* 第三方面密类型
* 第三方免密类型
*/
@AllArgsConstructor
@Getter
@@ -0,0 +1,26 @@
package com.bsd.pjcloud.hard.api.dto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class HardThirdMiOrderDto extends HardThirdMiOrderEntity {
/**
* 创建订单时间
*/
private LocalDateTime[] createOrderTimeList;
/**
* 支付时间
*/
private LocalDateTime[] payOrderTimeList;
/**
* 退款时间
*/
private LocalDateTime[] refundOrderTimeList;
}
@@ -19,7 +19,6 @@ import java.time.LocalDateTime;
@Schema(description = "硬件商品免密订单")
public class HardThirdMiOrderEntity extends Model<HardThirdMiOrderEntity> {
/**
* 编号
*/
@@ -63,6 +62,18 @@ public class HardThirdMiOrderEntity extends Model<HardThirdMiOrderEntity> {
@Schema(description = "订单id")
private Long orderId;
/**
* 退款id
*/
@Schema(description = "退款id")
private Long refundId;
/**
* 设备id
*/
@Schema(description = "设备id")
private Long hardId;
/**
* 外部订单号
*/
@@ -117,6 +128,12 @@ public class HardThirdMiOrderEntity extends Model<HardThirdMiOrderEntity> {
@Schema(description = "支付金额")
private int payPrice;
/**
* 退款金额
*/
@Schema(description = "退款金额")
private int refundPrice;
/**
* 原始 sign json 数据
*/
@@ -0,0 +1,30 @@
package com.bsd.pjcloud.hard.api.vo;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface;
import lombok.Data;
import java.util.List;
@Data
public class HardThirdMiOrderVo extends HardThirdMiOrderEntity implements BaseHardInterface {
/**
* 用户相关
*/
private String username;
private String userMobile;
private String userAvatar;
/**
* 设备相关
*/
private String hardName;
private String hardType;
private List<String> hardTypeCodes;
}
@@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiPayDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
import com.bsd.pjcloud.hard.service.HardThirdMiOrderService;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
@@ -55,6 +57,15 @@ public class HardThirdMiOrderController {
return R.ok();
}
/**
* 退款
*/
@Operation(summary = "退款", description = "退款")
@GetMapping("/refund")
public R refund(@RequestParam("id") Long id) {
hardThirdMiOrderService.refund(id);
return R.ok();
}
/**
* 分页查询
@@ -62,9 +73,8 @@ public class HardThirdMiOrderController {
@Operation(summary = "分页查询", description = "分页查询")
@GetMapping("/page")
@PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_view')")
public R getHardThirdMiOrderPage(@ParameterObject Page page, @ParameterObject HardThirdMiOrderEntity hardThirdMiOrder) {
LambdaQueryWrapper<HardThirdMiOrderEntity> wrapper = Wrappers.lambdaQuery();
return R.ok(hardThirdMiOrderService.page(page, wrapper));
public R<Page<HardThirdMiOrderVo>> getHardThirdMiOrderPage(@ParameterObject Page page, @ParameterObject HardThirdMiOrderDto dto) {
return R.ok(hardThirdMiOrderService.scopePageJoin(page, dto, null));
}
/**
@@ -1,9 +1,14 @@
package com.bsd.pjcloud.hard.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface HardThirdMiOrderMapper extends PjcloudBaseMapper<HardThirdMiOrderEntity> {
@@ -19,4 +24,6 @@ public interface HardThirdMiOrderMapper extends PjcloudBaseMapper<HardThirdMiOrd
.eq(HardThirdMiOrderEntity::getOrderId, orderId)
);
}
Page<HardThirdMiOrderVo> scopePageJoin(Page page, @Param("dto") HardThirdMiOrderDto dto, DataScope dataScope);
}
@@ -1,22 +1,35 @@
package com.bsd.pjcloud.hard.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiPayDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import jakarta.validation.constraints.NotNull;
import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
public interface HardThirdMiOrderService extends IService<HardThirdMiOrderEntity> {
/**
* 分页查询
*/
Page<HardThirdMiOrderVo> scopePageJoin(Page page, HardThirdMiOrderDto dto, DataScope dataScope);
/**
* 刷新订单
*/
void refresh(Long id);
HardThirdMiOrderEntity refresh(Long id);
/**
* 后台支付
*/
void adminPay(HardThirdMiPayDto dto);
/**
* 退款
*/
void refund(Long id);
/**
* 根据授权id查询授权订单
*/
@@ -17,6 +17,11 @@ public interface MiniAlipayService {
*/
String miDynamicSign(Long userId, UserTypeEnum userType, Long authId);
/**
* 免密授权(需要押金)
*/
ZhimaCreditPayafteruseCreditbizorderCreateResponse miDynamicCreate(Long userId, UserTypeEnum userType, Long authId);
/**
* 查询免密授权
*/
@@ -45,6 +50,6 @@ public interface MiniAlipayService {
/**
* 支付宝免密(取消/退款)
*/
AlipayTradeRefundResponse miCancelOrRefund(String authId, String refundId, int price);
AlipayTradeRefundResponse miCancelOrRefund(HardThirdMiOrderEntity thirdOrder);
}
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alipay.api.response.AlipayTradeCreateResponse;
import com.alipay.api.response.ZhimaCreditPayafteruseCreditbizorderCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -150,7 +151,6 @@ public class HardAuthServiceImpl extends ServiceImpl<HardAuthMapper, HardAuthEnt
HardAppCreateThirdDoorOrderVo res = new HardAppCreateThirdDoorOrderVo();
// AlipayTradeCreateResponse alipayRes = miniAlipayService.miCreateOrder(appUser.getOpenid(), authEntity.getId(), dto.getUserId(), dto.getUserType());
AlipayTradeCreateResponse alipayRes = miniAlipayService.miCreateOrder(appUser.getOpenid(), authEntity.getId(), dto.getUserId(), dto.getUserType());
if (ObjectUtil.isEmpty(alipayRes)) {
throw new RuntimeException("创建支付宝免密订单失败");
@@ -269,6 +269,7 @@ public class HardDoorFlowServiceImpl extends ServiceImpl<HardDoorFlowMapper, Har
updateMiOrderObj.setOrderId(orderId);
updateMiOrderObj.setFlowId(flowDetail.getId());
updateMiOrderObj.setOutOrderNo(String.valueOf(orderId));
updateMiOrderObj.setHardId(flowDetail.getHardId());
hardThirdMiOrderMapper.updateById(updateMiOrderObj);
// 微信免密支付
if (ObjectUtil.equals(thirdOrder.getBizType(), HardThirdMiTypeEnum.MI_WECHAT.getType())) {
@@ -3,18 +3,35 @@ package com.bsd.pjcloud.hard.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alipay.api.response.ZhimaCreditPayafteruseCreditbizorderQueryResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.admin.api.vo.UserVO;
import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.hard.api.constant.HardThirdMiStatusEnum;
import com.bsd.pjcloud.hard.api.constant.HardThirdMiTypeEnum;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiOrderDto;
import com.bsd.pjcloud.hard.api.dto.HardThirdMiPayDto;
import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto;
import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity;
import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity;
import com.bsd.pjcloud.hard.api.utils.HardUtil;
import com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo;
import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo;
import com.bsd.pjcloud.hard.mapper.HardThirdMiOrderMapper;
import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper;
import com.bsd.pjcloud.hard.service.HardThirdMiOrderService;
import com.bsd.pjcloud.hard.service.MiniAlipayService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
/**
* 硬件商品免密订单
@@ -23,13 +40,27 @@ import java.math.BigDecimal;
@AllArgsConstructor
public class HardThirdMiOrderServiceImpl extends ServiceImpl<HardThirdMiOrderMapper, HardThirdMiOrderEntity> implements HardThirdMiOrderService {
private final HardManagerMapper hardManagerMapper;
private final MiniAlipayService miniAlipayService;
private final RemoteUserService userService;
/**
* 分页查询
*/
@Override
public Page<HardThirdMiOrderVo> scopePageJoin(Page page, HardThirdMiOrderDto dto, DataScope dataScope) {
Page<HardThirdMiOrderVo> pageList = baseMapper.scopePageJoin(page, dto, dataScope);
disposeList(pageList.getRecords());
return pageList;
}
/**
* 刷新订单
*/
@Override
public void refresh(Long id) {
public HardThirdMiOrderEntity refresh(Long id) {
HardThirdMiOrderEntity order = baseMapper.selectById(id);
if (ObjectUtil.isEmpty(order)) {
throw new RuntimeException("订单不存在");
@@ -37,7 +68,7 @@ public class HardThirdMiOrderServiceImpl extends ServiceImpl<HardThirdMiOrderMap
// 微信免密支付
if (ObjectUtil.equals(order.getBizType(), HardThirdMiTypeEnum.MI_WECHAT.getType())) {
return;
return null;
}
// 支付宝-芝麻先享
if (ObjectUtil.equals(order.getBizType(), HardThirdMiTypeEnum.MI_ALIPAY.getType())) {
@@ -67,13 +98,14 @@ public class HardThirdMiOrderServiceImpl extends ServiceImpl<HardThirdMiOrderMap
break;
// 扣款成功状态
case "TRADE_FINISHED":
updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY.getType());
updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY_SUCCESS.getType());
break;
}
}
baseMapper.updateById(updateObj);
return;
return baseMapper.selectById(order.getId());
}
return null;
}
/**
@@ -102,6 +134,33 @@ public class HardThirdMiOrderServiceImpl extends ServiceImpl<HardThirdMiOrderMap
}
}
/**
* 退款
*/
@Override
public void refund(Long id) {
HardThirdMiOrderEntity order = baseMapper.selectById(id);
if (ObjectUtil.isEmpty(order) || ObjectUtil.isNotEmpty(order.getOrderId())) {
throw new RuntimeException("订单不存在");
}
order = refresh(id);
// 微信免密支付
if (ObjectUtil.equals(order.getBizType(), HardThirdMiTypeEnum.MI_WECHAT.getType())) {
return;
}
// 支付宝-芝麻先享
if (ObjectUtil.equals(order.getBizType(), HardThirdMiTypeEnum.MI_ALIPAY.getType())) {
if (ObjectUtil.equals(order.getOrderStatus(), HardThirdMiStatusEnum.REFUND.getType())) {
throw new RuntimeException("支付宝-芝麻先享,此订单已退款");
}
if (ObjectUtil.notEqual(order.getOrderStatus(), HardThirdMiStatusEnum.PAY_SUCCESS.getType())) {
throw new RuntimeException("支付宝-芝麻先享,此订单未支付");
}
miniAlipayService.miCancelOrRefund(order);
}
}
/**
* 根据授权id查询授权订单
*/
@@ -111,4 +170,42 @@ public class HardThirdMiOrderServiceImpl extends ServiceImpl<HardThirdMiOrderMap
.eq(HardThirdMiOrderEntity::getAuthId, authId)
);
}
private void disposeList(List<HardThirdMiOrderVo> list) {
if (ObjectUtil.isEmpty(list)) return;
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
// 用户部门
CompletableFuture<Void> userFuture = CompletableFuture.runAsync(() -> {
RequestContextHolder.setRequestAttributes(requestAttributes);
List<Long> userIds = list.stream().map(HardThirdMiOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList();
if (ObjectUtil.isNotEmpty(userIds)) {
List<UserVO> userList = userService.getUserDeptByIds(userIds).getData();
if (ObjectUtil.isNotEmpty(userList)) {
Map<Long, UserVO> map = CollectionUtils.convertMap(userList, UserVO::getUserId);
for (HardThirdMiOrderVo item : list) {
UserVO userVO = map.get(item.getUserId());
if (ObjectUtil.isEmpty(userVO)) continue;
item.setUsername(userVO.getName());
item.setUserMobile(userVO.getPhone());
item.setUserAvatar(userVO.getAvatar());
}
}
}
});
// 设备
CompletableFuture<Void> deviceFuture = CompletableFuture.runAsync(() -> {
RequestContextHolder.setRequestAttributes(requestAttributes);
List<Long> hardIds = list.stream().map(HardThirdMiOrderVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList();
if (ObjectUtil.isNotEmpty(hardIds)) {
HardManagerDto hardManagerDto = new HardManagerDto();
hardManagerDto.setIds(hardIds);
List<HardManagerEntity> hardList = hardManagerMapper.list(hardManagerDto);
if (ObjectUtil.isNotEmpty(hardList)) {
HardUtil.convertHardList(list, CollectionUtils.convertMap(hardList, HardManagerEntity::getId));
}
}
});
CompletableFuture.allOf(userFuture, deviceFuture).join();
}
}
@@ -126,6 +126,51 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
}
}
/**
* 免密授权(需要押金)
*/
@Override
public ZhimaCreditPayafteruseCreditbizorderCreateResponse miDynamicCreate(Long userId, UserTypeEnum userType, Long authId) {
int depositPricePrice = 300;
HardThirdMiOrderEntity thirdOrder = new HardThirdMiOrderEntity();
thirdOrder.setBizType(HardThirdMiTypeEnum.MI_ALIPAY.getType());
thirdOrder.setAuthId(authId);
thirdOrder.setUserId(userId);
thirdOrder.setDepositPrice(depositPricePrice);
thirdOrder.setUserType(userType.getStatus());
thirdOrder.setCreateOrderTime(LocalDateTime.now());
thirdOrder.setOrderStatus(HardThirdMiStatusEnum.CREATE_ORDER.getType());
ZhimaCreditPayafteruseCreditbizorderCreateRequest request = new ZhimaCreditPayafteruseCreditbizorderCreateRequest();
ZhimaCreditPayafteruseCreditbizorderCreateModel model = new ZhimaCreditPayafteruseCreditbizorderCreateModel();
model.setOutOrderNo(String.valueOf(authId));
model.setAmountType("RISK_AMOUNT");
model.setZmServiceId(conf.getZmServiceId());
model.setCategoryId("credit_pay_after_use");
model.setOrderAmount(new BigDecimal(depositPricePrice).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
model.setProductCode("CREDIT_PAY_AFTER_USE");
model.setSubject("浦江智能柜芝麻先享");
model.setBody("浦江智能柜芝麻先享");
request.setBizModel(model);
System.out.println(JSONUtil.toJsonStr(model));
try {
ZhimaCreditPayafteruseCreditbizorderCreateResponse response = getClient().sdkExecute(request);
if (!response.isSuccess()) {
log.error("|免密授权(需要押金)|失败,json|{}", response.getBody());
return null;
}
return response;
} catch (Exception e) {
e.printStackTrace();
log.error("|免密授权(需要押金)|异常", e);
return null;
} finally {
hardThirdMiOrderMapper.insert(thirdOrder);
}
}
/**
* 查询面密授权
*/
@@ -209,7 +254,6 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
// 一般是芝麻信用评估不通过、未开通等
if (List.of("ZHIMA_CHECK_NO_PASS", "ZHIMA_EVALUATE_NO_PASS", "CREDIT_AGREEMENT_INVALID").contains(response.getCode())) {
miDynamicCreate(authId, orderId);
}
response.getCode();
@@ -256,10 +300,13 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
*/
@Override
public AlipayTradeCreateResponse miCreateOrder(String openId, Long authId, Long userId, UserTypeEnum userType) {
int depositPricePrice = 10;
HardThirdMiOrderEntity thirdOrder = new HardThirdMiOrderEntity();
thirdOrder.setBizType(HardThirdMiTypeEnum.MI_ALIPAY.getType());
thirdOrder.setAuthId(authId);
thirdOrder.setUserId(userId);
thirdOrder.setDepositPrice(depositPricePrice);
thirdOrder.setUserType(userType.getStatus());
thirdOrder.setCreateOrderTime(LocalDateTime.now());
thirdOrder.setOrderStatus(HardThirdMiStatusEnum.CREATE_ORDER.getType());
@@ -273,7 +320,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
// 设置订单附加信息
bizContent.putOnce("body", "浦江智能柜芝麻先享");
// 设置订单金额
bizContent.putOnce("total_amount", 0.01);
bizContent.putOnce("total_amount", new BigDecimal(depositPricePrice).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
// 固定
bizContent.putOnce("product_code", "JSAPI_PAY");
// 用户登录id
@@ -344,11 +391,12 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
updateObj.setPayOrderTime(LocalDateTime.now());
updateObj.setOrderPrice(totalPrice);
updateObj.setPayPrice(totalPrice);
updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY_ERROR.getType());
AlipayTradeOrderPayRequest request = new AlipayTradeOrderPayRequest();
AlipayTradeOrderPayModel model = new AlipayTradeOrderPayModel();
model.setOutRequestNo(String.valueOf(thirdOrder.getOrderId()));
model.setTradeNo(thirdOrder.getOutOrderNo());
model.setTradeNo(thirdOrder.getThirdOrderNo());
model.setFulfillmentAmount(new BigDecimal(totalPrice).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP).toString());
model.setOrderPayMode("CREDIT_FULFILLMENT_ZM");
try {
@@ -360,7 +408,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
}
log.info("|支付宝免密扣款|成功,json|{}", response.getBody());
if (ObjectUtil.equals(response.getCode(), "10000")) {
updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY.getType());
updateObj.setOrderStatus(HardThirdMiStatusEnum.PAY_SUCCESS.getType());
return true;
}
return false;
@@ -369,9 +417,7 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
log.error("|支付宝免密扣款|异常", e);
return false;
} finally {
if (ObjectUtil.isNotEmpty(updateObj.getOrderStatus())) {
hardThirdMiOrderMapper.updateById(updateObj);
}
hardThirdMiOrderMapper.updateById(updateObj);
}
}
@@ -379,15 +425,15 @@ public class MiniAlipayServiceImpl implements MiniAlipayService {
* 支付宝免密(取消/退款)
*/
@Override
public AlipayTradeRefundResponse miCancelOrRefund(String authId, String refundId, int price) {
public AlipayTradeRefundResponse miCancelOrRefund(HardThirdMiOrderEntity thirdOrder) {
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
JSONObject bizContent = new JSONObject();
// 订单总金额
bizContent.putOnce("refund_amount", new BigDecimal(price).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
bizContent.putOnce("refund_amount", new BigDecimal(thirdOrder.getRefundId()).divide(BigDecimal.valueOf(thirdOrder.getRefundPrice()), 2, RoundingMode.HALF_UP));
// 商家订单唯一号
bizContent.putOnce("out_trade_no", authId);
bizContent.putOnce("out_request_no", refundId);
bizContent.putOnce("out_trade_no", String.valueOf(thirdOrder.getAuthId()));
bizContent.putOnce("out_request_no", String.valueOf(thirdOrder.getRefundId()));
//扩展参数
JSONObject extendParam = new JSONObject();
extendParam.putOnce("is_fulfilled", "true");
@@ -976,14 +976,6 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
if (isPay) {
// 更新订单状态
getSelf().orderSuccess(dto, false);
// 更新第三方订单
HardThirdMiOrderEntity thirdOrderObj = new HardThirdMiOrderEntity();
thirdOrderObj.setId(thirdOrder.getId());
thirdOrderObj.setOrderPrice(totalPrice);
thirdOrderObj.setPayPrice(totalPrice);
thirdOrderObj.setPayOrderTime(LocalDateTime.now());
thirdOrderObj.setOrderStatus(HardThirdMiStatusEnum.PAY.getType());
hardThirdMiOrderMapper.updateById(thirdOrderObj);
}
}
}
@@ -3,4 +3,71 @@
<mapper namespace="com.bsd.pjcloud.hard.mapper.HardThirdMiOrderMapper">
<sql id="selectA">
select a.id,
a.biz_type,
a.user_id,
a.user_type,
a.auth_id,
a.flow_id,
a.order_id,
a.refund_id,
a.hard_id,
a.out_order_no,
a.third_order_no,
a.create_order_time,
a.pay_order_time,
a.refund_order_time,
a.order_status,
a.deposit_price,
a.order_price,
a.pay_price,
a.refund_price,
a.org_sign_json,
a.org_order_json,
a.create_by,
a.create_time,
a.update_by,
a.update_time,
a.del_flag,
a.tenant_id
</sql>
<sql id="whereA">
a.del_flag = '0'
<if test="dto.bizType != null and dto.bizType != '' ">
and a.biz_type = #{dto.bizType}
</if>
<if test="dto.userId != null ">
and a.user_id = #{dto.userId}
</if>
<if test="dto.hardId != null ">
and a.hard_id = #{dto.hardId}
</if>
<if test="dto.userType != null and dto.userType != '' ">
and a.user_type = #{dto.userType}
</if>
<if test="dto.orderStatus != null and dto.orderStatus != '' ">
and a.order_status = #{dto.orderStatus}
</if>
<if test="dto.createOrderTimeList != null and dto.createOrderTimeList.length == 2">
and a.create_order_time between #{dto.createOrderTimeList[0]} and #{dto.createOrderTimeList[1]}
</if>
<if test="dto.payOrderTimeList != null and dto.payOrderTimeList.length == 2">
and a.pay_order_time between #{dto.payOrderTimeList[0]} and #{dto.payOrderTimeList[1]}
</if>
<if test="dto.refundOrderTimeList != null and dto.refundOrderTimeList.length == 2">
and a.refund_order_time between #{dto.refundOrderTimeList[0]} and #{dto.refundOrderTimeList[1]}
</if>
</sql>
<select id="scopePageJoin" resultType="com.bsd.pjcloud.hard.api.vo.HardThirdMiOrderVo">
<include refid="selectA"/>
from hard_third_mi_order a
<where>
<include refid="whereA"/>
</where>
order by a.create_order_time desc , a.id desc
</select>
</mapper>