记得上下班打卡 | git大法好,push需谨慎

Commit 462d2331 authored by 胡佳晨's avatar 胡佳晨

提交代码

parent 874b70d6
...@@ -47,4 +47,13 @@ public class PayOrderParam { ...@@ -47,4 +47,13 @@ public class PayOrderParam {
@ApiModelProperty(value = "支付类型") @ApiModelProperty(value = "支付类型")
@NotNull(message = "必传") @NotNull(message = "必传")
private String payType; private String payType;
@ApiModelProperty(value = "支付来源")
@NotNull(message = "必传")
private String deviceFrom;
@ApiModelProperty(value = "openId")
private String openId;
@ApiModelProperty(value = "showUrl")
private String showUrl;
@ApiModelProperty(value = "returnUrl")
private String returnUrl;
} }
package com.liquidnet.service.kylin.dto.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class PayDataVo implements Serializable {
private static final long serialVersionUID = -5841205289132250565L;
private String appid;
private String noncestr;
private String packages;
private String partnerid;
private String prepayid;
private String sign;
private long timestamp;
}
package com.liquidnet.service.kylin.dto.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class PayResultVo implements Serializable {
private static final long serialVersionUID = 1541552316829686035L;
private String code;
private String order_code;
private String order_id;
private BigDecimal price;
private PayDataVo pay_data;
}
...@@ -4,6 +4,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -4,6 +4,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.PayResultVo;
import com.liquidnet.service.kylin.entity.KylinOrderTickets; import com.liquidnet.service.kylin.entity.KylinOrderTickets;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -20,10 +21,10 @@ import java.util.List; ...@@ -20,10 +21,10 @@ import java.util.List;
public interface IKylinOrderTicketsService extends IService<KylinOrderTickets> { public interface IKylinOrderTicketsService extends IService<KylinOrderTickets> {
// 下单前判断接口(判断是否可锁定库存)(无订单->待支付->可支付) // 下单前判断接口(判断是否可锁定库存)(无订单->待支付->可支付)
ResponseDto<String>checkCanOrder(PayOrderParam payOrderParam); ResponseDto<PayResultVo>checkCanOrder(PayOrderParam payOrderParam);
// 下单接口(无订单->待支付->可支付) // 下单接口(无订单->待支付->可支付)
ResponseDto<String> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData); ResponseDto<PayResultVo> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData);
// 再次支付(待支付->可支付->倒计时结束释放库存) // 再次支付(待支付->可支付->倒计时结束释放库存)
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.vo.PayResultVo;
import com.liquidnet.service.kylin.service.impl.KylinOrderTicketsServiceImpl; import com.liquidnet.service.kylin.service.impl.KylinOrderTicketsServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -29,7 +30,7 @@ public class KylinOrderTicketsController { ...@@ -29,7 +30,7 @@ public class KylinOrderTicketsController {
@PostMapping("pre") @PostMapping("pre")
@ApiOperation("下单") @ApiOperation("下单")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<String> checkCanOrder(@RequestBody PayOrderParam payOrderParam) { public ResponseDto<PayResultVo> checkCanOrder(@RequestBody PayOrderParam payOrderParam) {
return orderTicketsService.checkCanOrder(payOrderParam); return orderTicketsService.checkCanOrder(payOrderParam);
} }
......
...@@ -17,9 +17,11 @@ import org.springframework.beans.BeanUtils; ...@@ -17,9 +17,11 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
...@@ -46,7 +48,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -46,7 +48,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
private FeignAdamBaseClient feignAdamBaseClient; private FeignAdamBaseClient feignAdamBaseClient;
@Override @Override
public ResponseDto<String> checkCanOrder(PayOrderParam payOrderParam) { public ResponseDto<PayResultVo> checkCanOrder(PayOrderParam payOrderParam) {
boolean isDownGeneral = false; boolean isDownGeneral = false;
try { try {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
...@@ -67,7 +69,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -67,7 +69,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
int performanceBuyCount; //演出下所有票种购买数量 int performanceBuyCount; //演出下所有票种购买数量
int ticketBuyCount;// 单一票种购买数量 int ticketBuyCount;// 单一票种购买数量
boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员 boolean isMember = feignAdamBaseClient.isMember(uid).getData();//获取是否是会员
// boolean isMember = false;
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (ticketData.getIsExclusive() == 1) { if (ticketData.getIsExclusive() == 1) {
memberType = 2; memberType = 2;
...@@ -168,7 +169,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -168,7 +169,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} }
@Override @Override
public ResponseDto<String> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData) { public ResponseDto<PayResultVo> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData) {
LinkedList<String> sqls = new LinkedList<>(); LinkedList<String> sqls = new LinkedList<>();
LinkedList<Object[]> paramsList = new LinkedList<>(); LinkedList<Object[]> paramsList = new LinkedList<>();
String source = CurrentUtil.getCliSource(); String source = CurrentUtil.getCliSource();
...@@ -193,7 +194,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -193,7 +194,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setUserId(uid); orderTickets.setUserId(uid);
Map token = CurrentUtil.getTokenClaims(); Map token = CurrentUtil.getTokenClaims();
orderTickets.setUserName((String) token.get("nickname")); orderTickets.setUserName((String) token.get("nickname"));
orderTickets.setUserMobile((String)token.get("mobile")); orderTickets.setUserMobile((String) token.get("mobile"));
orderTickets.setPerformanceTitle(performanceData.getTitle()); orderTickets.setPerformanceTitle(performanceData.getTitle());
orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId)); orderTickets.setOrderCode(IDGenerator.ticketOrderCode(orderTicketId));
orderTickets.setPayCode(""); orderTickets.setPayCode("");
...@@ -208,8 +209,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -208,8 +209,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
} else { } else {
orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0"))); orderTickets.setPriceTotal(ticketData.getPrice().multiply(new BigDecimal(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : new BigDecimal("0")));
} }
orderTickets.setPriceActual(orderTickets.getPriceTotal());
orderTickets.setPriceVoucher(new BigDecimal("0.0")); orderTickets.setPriceVoucher(new BigDecimal("0.0"));
orderTickets.setPriceActual(new BigDecimal("0.0"));
orderTickets.setPriceExpress(ticketData.getPriceExpress()); orderTickets.setPriceExpress(ticketData.getPriceExpress());
orderTickets.setPriceRefund(new BigDecimal("0.0")); orderTickets.setPriceRefund(new BigDecimal("0.0"));
orderTickets.setRefundNumber(0); orderTickets.setRefundNumber(0);
...@@ -233,7 +235,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -233,7 +235,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets.setPayCountdownMinute(performanceData.getPayCountdownMinute()); orderTickets.setPayCountdownMinute(performanceData.getPayCountdownMinute());
orderTickets.setCreatedAt(LocalDateTime.now()); orderTickets.setCreatedAt(LocalDateTime.now());
orderTickets.setUpdatedAt(null); orderTickets.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket.add"); sqls.add("kylin_order_ticket.add");
paramsList.add(orderTickets.getAddObject()); paramsList.add(orderTickets.getAddObject());
...@@ -250,7 +251,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -250,7 +251,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketStatus.setPayStatus(0); orderTicketStatus.setPayStatus(0);
orderTicketStatus.setCreatedAt(LocalDateTime.now()); orderTicketStatus.setCreatedAt(LocalDateTime.now());
orderTicketStatus.setUpdatedAt(null); orderTicketStatus.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_status.add"); sqls.add("kylin_order_ticket_status.add");
paramsList.add(orderTicketStatus.getAddObject()); paramsList.add(orderTicketStatus.getAddObject());
...@@ -268,7 +268,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -268,7 +268,6 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketRelations.setTicketId(payOrderParam.getTicketId()); orderTicketRelations.setTicketId(payOrderParam.getTicketId());
orderTicketRelations.setCreatedAt(LocalDateTime.now()); orderTicketRelations.setCreatedAt(LocalDateTime.now());
orderTicketRelations.setUpdatedAt(null); orderTicketRelations.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_relation.add"); sqls.add("kylin_order_ticket_relation.add");
paramsList.add(orderTicketRelations.getAddObject()); paramsList.add(orderTicketRelations.getAddObject());
...@@ -295,13 +294,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -295,13 +294,12 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketEntities.setComment(""); orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(LocalDateTime.now()); orderTicketEntities.setCreatedAt(LocalDateTime.now());
orderTicketEntities.setUpdatedAt(null); orderTicketEntities.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_entities.add"); sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject()); paramsList.add(orderTicketEntities.getAddObject());
// 生成vo // 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo(); KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo); BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
mongoTemplate.insert(orderTicketEntitiesVo,KylinOrderTicketEntitiesVo.class.getSimpleName()); mongoTemplate.insert(orderTicketEntitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
} }
} else { } else {
for (int i = 0; i < payOrderParam.getNumber(); i++) { for (int i = 0; i < payOrderParam.getNumber(); i++) {
...@@ -322,26 +320,50 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -322,26 +320,50 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTicketEntities.setComment(""); orderTicketEntities.setComment("");
orderTicketEntities.setCreatedAt(LocalDateTime.now()); orderTicketEntities.setCreatedAt(LocalDateTime.now());
orderTicketEntities.setUpdatedAt(null); orderTicketEntities.setUpdatedAt(null);
//TODO mq sql
sqls.add("kylin_order_ticket_entities.add"); sqls.add("kylin_order_ticket_entities.add");
paramsList.add(orderTicketEntities.getAddObject()); paramsList.add(orderTicketEntities.getAddObject());
// 生成vo // 生成vo
KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo(); KylinOrderTicketEntitiesVo orderTicketEntitiesVo = new KylinOrderTicketEntitiesVo();
BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo); BeanUtils.copyProperties(orderTicketEntities, orderTicketEntitiesVo);
mongoTemplate.insert(orderTicketEntitiesVo,KylinOrderTicketEntitiesVo.class.getSimpleName()); mongoTemplate.insert(orderTicketEntitiesVo, KylinOrderTicketEntitiesVo.class.getSimpleName());
} }
} }
// 调用支付 别忘记生成支付单号 // 调用支付 别忘记生成支付单号
orderTickets.setPayCode(""); // $pay_result = zhengzai::getPayParam($pay_params, $device_from, $pay_type);
LinkedMultiValueMap<String, String> httpData = new LinkedMultiValueMap<String, String>();
httpData.add("type","TICKET");
httpData.add("price","0.01");
httpData.add("name",ticketData.getUseStart()+""+ticketData.getTitle());
httpData.add("detail",performanceData.getTitle()+"-"+ticketData.getTitle()+"-"+ticketData.getUseStart());
httpData.add("order_code",orderTickets.getOrderCode());
httpData.add("client_ip","127.0.0.1");
httpData.add("notify_url","http://www.baidu.com");
httpData.add("create_date",orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expire_time",orderTickets.getPayCountdownMinute().toString());
if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) {
httpData.add("open_id",payOrderParam.getOpenId());
}
if (payOrderParam.getPayType().equals("alipay") && payOrderParam.getDeviceFrom().equals("wap")) {
httpData.add("show_url",payOrderParam.getOpenId());
httpData.add("return_url",payOrderParam.getOpenId());
}
String returnData = HttpUtil.post("http://testpay.zhengzai.tv/"+payOrderParam.getDeviceFrom()+"/"+payOrderParam.getPayType(), httpData);
PayResultVo payResultVo = JsonUtils.fromJson(returnData,PayResultVo.class);
payResultVo.setOrder_id(orderTicketId);
payResultVo.setPrice(orderTickets.getPriceActual());
orderTickets.setPayCode(payResultVo.getOrder_code());
// 生成vo // 生成vo
KylinOrderTicketVo orderTicketVo = new KylinOrderTicketVo(); KylinOrderTicketVo orderTicketVo = new KylinOrderTicketVo();
orderTicketVo.setOrderTicket(orderTickets); orderTicketVo.setOrderTicket(orderTickets);
orderTicketVo.setOrderTicketStatus(orderTicketStatus); orderTicketVo.setOrderTicketStatus(orderTicketStatus);
orderTicketVo.setOrderTicketRelation(orderTicketRelations); orderTicketVo.setOrderTicketRelation(orderTicketRelations);
mongoTemplate.insert(orderTicketVo,KylinOrderTicketVo.class.getSimpleName()); mongoTemplate.insert(orderTicketVo, KylinOrderTicketVo.class.getSimpleName());
// 执行sql // 执行sql
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL, // rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get(sqls, paramsList)); // SqlMapping.get(sqls, paramsList));
return ResponseDto.success("下单完成"); return ResponseDto.success(payResultVo);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment