Browse Source

订单详情返回车票账号密码;支付宝手机h5支付后跳转;无登录推广 保存下单手机号

zoujiajian 2 years ago
parent
commit
24ca2afb2b

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDetailView.java

@@ -70,4 +70,16 @@ public class OrderDetailView {
 
 	@DbIgnore
 	private OrderDonTransport transport;
+
+	@DbField("o.relation_id")
+	private Long relationId;
+
+	@DbField("g.logo")
+	private String logo;
+
+	@DbIgnore
+	private String account;
+
+	@DbIgnore
+	private String password;
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -252,6 +252,11 @@ public class OrderDon extends BaseEntity implements Serializable {
      */
     private Long yhsId;
 
+    /**
+     * 下单手机号
+     */
+    private String phone;
+
     public enum Status {
         /**
          * 订单状态

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -209,6 +209,12 @@ public class OrderDonBackView {
 	@DbField("odt.address")
 	private String address;
 
+	/**
+	 * 下单手机号
+	 */
+	@DbField("o.phone")
+	private String orderPhone;
+
 	@DbIgnore
 	private OrderDonWaybill waybill;
 

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java

@@ -141,4 +141,9 @@ public class OrderPayRequest {
      * 雷达链接id
      */
     private Long radarId;
+
+    /**
+     * 下单手机号
+     */
+    private String phone;
 }

+ 3 - 0
netflix-service/src/main/java/com/cyksj/config/zfb/BaseZfbConfig.java

@@ -37,6 +37,9 @@ public class BaseZfbConfig {
 	//前端成功页面
 	public static String SUCCESS_URL = "success/";
 
+	//手机支付 h5默认跳转 成功页
+	public static String DEFAULT_URL = "ticket";
+
 	public static String zfb_register_login_return_url = "yinhe/web/registerTicket";
 
 	public static String notifyUrl = "applets/order/prepay/zfb/notify";

+ 17 - 6
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -60,10 +60,7 @@ import com.cyksj.model.request.GiftCardPayReq;
 import com.cyksj.model.request.OrderAttach;
 import com.cyksj.model.request.OrderPayRequest;
 import com.cyksj.model.request.TelegramBotMsgReq;
-import com.cyksj.model.views.CouponNewUserView;
-import com.cyksj.model.views.CouponUserView;
-import com.cyksj.model.views.GiftCardGoodsSkuFrontView;
-import com.cyksj.model.views.GoodsDonSkuView;
+import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.coupon.CouponFontService;
 import com.cyksj.service.distribute.UserBusinessFrontService;
@@ -501,6 +498,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			});
 		}
 		orderDon.setPayTitle(payTitle.toString());
+		//下单手机号
+		orderDon.setPhone(payRequest.getPhone());
 		this.saveOrUpdate(orderDon);
 
 		if (orderDon.getIsDp()) {
@@ -975,8 +974,20 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			builder.field(OrderDonView::getUserId, userId);
 		}
 		OrderDetailView detail = beanSearcher.searchFirst(OrderDetailView.class, builder.build());
-		detail.setTransport(transportMapper.selectOne(Wrappers.lambdaQuery(OrderDonTransport.class).eq(OrderDonTransport::getOrderId, detail.getId()).last(" limit 1")));
-		detail.setWaybill(waybillMapper.selectOne(Wrappers.lambdaQuery(OrderDonWaybill.class).eq(OrderDonWaybill::getOrderId, detail.getId()).last(" limit 1")));
+		//获取对应车票订单 账号密码
+		RenewalView renewalView = beanSearcher.searchFirst(RenewalView.class, MapUtils.builder()
+				.field(RenewalView::getUserId, userId)
+				.field(RenewalView::getRelationId, detail.getRelationId())
+				.onlySelect(RenewalView::getAccount, RenewalView::getPassword)
+				.build());
+		if (renewalView != null) {
+			detail.setAccount(renewalView.getAccount());
+			detail.setPassword(renewalView.getPassword());
+		}
+		if (detail.getRelationId() != 0) {
+			detail.setTransport(transportMapper.selectOne(Wrappers.lambdaQuery(OrderDonTransport.class).eq(OrderDonTransport::getOrderId, detail.getId()).last(" limit 1")));
+			detail.setWaybill(waybillMapper.selectOne(Wrappers.lambdaQuery(OrderDonWaybill.class).eq(OrderDonWaybill::getOrderId, detail.getId()).last(" limit 1")));
+		}
 		return detail;
 	}
 

+ 21 - 8
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -10,6 +10,7 @@ import com.alipay.api.domain.AlipayTradeWapPayModel;
 import com.alipay.api.request.AlipayTradePagePayRequest;
 import com.alipay.api.request.AlipayTradeWapPayRequest;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.EnvCommonService;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Codec;
@@ -22,12 +23,10 @@ import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.RegisterOrderDonMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
+import com.cyksj.mapper.order.OrderDonPostMapper;
 import com.cyksj.model.dto.AliPayParams;
 import com.cyksj.model.dto.OrderPayBuilderDto;
-import com.cyksj.model.entity.GoodsDon;
-import com.cyksj.model.entity.OrderDon;
-import com.cyksj.model.entity.RegisterOrderDon;
-import com.cyksj.model.entity.ShopConfig;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.request.OrderAttach;
 import com.cyksj.service.pay.AliPayCommonService;
 import com.cyksj.service.sys.SysConfigService;
@@ -62,6 +61,8 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 
 	private final SysConfigService sysConfigService;
 
+	private final OrderDonPostMapper orderDonPostMapper;
+
 	@Override
 	public AliPayParams unifiedPayRegister(Long orderId, String productCode, String payMode, String returnUrl) throws Exception {
 		RegisterOrderDon orderDon = registerOrderDonMapper.selectById(orderId);
@@ -122,10 +123,22 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 		//回调地址
 		String host = envCommonService.getHost();
 		String notifyUrl = String.format("%s%s", host, BaseZfbConfig.notifyUrl);
-		//手机h5 pc网站跳转
-		if (ZfbProductCode.MOBILE_WEB.getProductCode().equals(productCode) && BaseZfbConfig.qrPayMode_redirect.equals(payMode)) {
-			//页面 拼接订单号,前端从url获取订单id.
-			returnUrl = String.format("%s%s", envCommonService.getDomain(), BaseZfbConfig.SUCCESS_URL) + orderDon.getId();
+		//手机h5 跳转
+		OrderDonPost orderDonPost = orderDonPostMapper.selectOne(Wrappers.lambdaQuery(OrderDonPost.class)
+				.eq(OrderDonPost::getOrderId, orderId).last("limit 1"));
+		//百度回传 跳转
+		Boolean is_bdPost = false;
+		if (orderDonPost != null && OrderDonPost.Type.BaiDu == orderDonPost.getType()) {
+			is_bdPost = true;
+		}
+		if (ZfbProductCode.MOBILE_WEB.getProductCode().equals(productCode)) {
+			if (is_bdPost) {
+				//页面 拼接订单号,前端从url获取订单id.
+				returnUrl = String.format("%s%s", envCommonService.getDomain(), BaseZfbConfig.SUCCESS_URL) + orderDon.getId();
+			} else {
+				//默认跳转页
+				returnUrl = String.format("%s%s", envCommonService.getDomain(), BaseZfbConfig.DEFAULT_URL);
+			}
 		}
 		AliPayParams aliPayParams = builderPayParams(orderDon.getId(),
 				orderDon.getOrderNo(),

+ 1 - 5
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -60,7 +60,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.List;
@@ -376,10 +375,7 @@ public class OrderController {
      */
     @GetMapping("/get/{orderId}")
     public Result<OrderDetailView> detail(@PathVariable Long orderId, Boolean isNoLogin) {
-        Long userId = null;
-        if (isNoLogin == null || !isNoLogin) {
-            userId = StpUserUtil.getLoginIdAsLong();
-        }
+        Long userId = StpUserUtil.getUserIdAfterLogin();
 
         OrderDetailView detail = orderDonService.getDetail(orderId, userId);