提交 e54ab1c6 authored 作者: zhouzhigang's avatar zhouzhigang

--no commit message

上级 f5c8d8f7
package com.zrqx.school.sysuser.client;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.zrqx.core.constant.third.ThirdRequestPath;
import com.zrqx.core.form.third.alipay.AlipayForm;
import com.zrqx.core.form.third.alipay.AlipayRefundForm;
import com.zrqx.core.form.third.wechartpay.WeChartPayForm;
import com.zrqx.core.form.third.wechartpay.WeChartRefundForm;
import com.zrqx.core.form.third.yeepay.YeePayForm;
import com.zrqx.core.form.third.yeepay.YeeRefundForm;
import com.zrqx.core.model.third.alipay.AlipayQueryReturn;
import com.zrqx.core.model.third.wechart.WecartPayReturn;
import com.zrqx.core.model.third.wechart.WecartQueryReturn;
import com.zrqx.core.model.third.wechart.WechartRefundReturn;
import com.zrqx.core.model.third.yeepay.YeePayQueryReturn;
import com.zrqx.core.model.third.yeepay.YeeRefundResult;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.school.sysuser.client.PayClientHystric;
/**
* 图书服务远程调用
* @author ydm
* @date 2018年7月11日下午4:08:41
*/
@FeignClient(name="third",fallback=PayClientHystric.class)
public interface PayClient {
/**
* 支付宝支付
* @param id
* @param type
* @return
* @author ydm
* @date: 2018年8月17日 下午4:09:53
*/
@PostMapping(ThirdRequestPath.ALIPAY+ThirdRequestPath.PAY)
public CallBack<String> aliPay(@RequestBody AlipayForm alipay);
/**
* 支付宝查询
* @param out_trade_no 商户订单号
* @return
* @author ydm
* @date: 2018年8月27日 上午9:47:43
*/
@GetMapping(ThirdRequestPath.ALIPAY+ThirdRequestPath.QUERY)
public CallBack<AlipayQueryReturn> aliPayQuery(@RequestParam("out_trade_no")String out_trade_no);
/**
* 易宝支付
* @param out_trade_no
* @return
* @author lw
* @date: 2018年12月24日 上午9:25:04
*/
@PostMapping(ThirdRequestPath.YEEPAY + ThirdRequestPath.PAY)
public CallBack<String> yeePay(@RequestBody YeePayForm alipay);
/**
* 易宝支付查询
* @param p2_Order 商户订单号
* @return
* @author lw
* @date: 2018年12月24日 上午9:53:53
*/
@GetMapping(ThirdRequestPath.YEEPAY + ThirdRequestPath.QUERY)
public CallBack<YeePayQueryReturn> yeePayQuery(@RequestParam("p2_Order")String p2_Order);
/**
* 微信支付
* @param alipay
* @return
* @author ydm
* @date: 2018年8月17日 下午4:15:35
*/
@GetMapping(ThirdRequestPath.WECHART+ThirdRequestPath.PAY)
public CallBack<WecartPayReturn> wechatPay(@RequestBody WeChartPayForm wcf);
/**
* 微信查询
* @param out_trade_no 订单号
* @return
* @author ydm
* @date: 2018年8月27日 上午9:49:26
*/
@GetMapping(ThirdRequestPath.WECHART+ThirdRequestPath.QUERY)
public CallBack<WecartQueryReturn> wechatPayQuery(@RequestParam("out_trade_no")String out_trade_no);
/**
* 支付宝退款
* @param alipayRefund
* @return
* @author ray
* @date: 2018年9月3日 上午11:11:20
*/
@PostMapping(ThirdRequestPath.ALIPAY+ThirdRequestPath.REFUND)
String aliRefund(@RequestBody AlipayRefundForm alipayRefund);
/**
* 微信退款
* @param out_trade_no
* @return
* @author ray
* @date: 2018年9月3日 上午11:11:30
*/
@GetMapping(ThirdRequestPath.WECHART+ThirdRequestPath.REFUND)
CallBack<WechartRefundReturn> wechartRefund( @RequestBody WeChartRefundForm wcrf);
/**
* 易宝退款
* @param form
* @return
* @author lw
* @date: 2018年12月25日 上午10:00:18
*/
@PostMapping(ThirdRequestPath.YEEPAY + ThirdRequestPath.REFUND)
CallBack<YeeRefundResult> yeeRefund(@RequestBody YeeRefundForm form);
/**
* 易宝撤单
* @return
* @author lw
* @date: 2019年1月7日 下午5:04:06
*/
@PostMapping(ThirdRequestPath.YEEPAY + ThirdRequestPath.CANCEL)
boolean cancelOrder_yee(@RequestBody String code);
/**
* 微信撤单
* @param out_trade_no
* @return
* @author lw
* @date: 2019年1月7日 下午5:08:51
*/
@PostMapping(ThirdRequestPath.WECHART + ThirdRequestPath.CLOSE + ThirdRequestPath.OID)
boolean cancelOrder_wechat(@RequestParam(ThirdRequestPath.OBJECTID) String out_trade_no);
@GetMapping(ThirdRequestPath.ALIPAY + ThirdRequestPath.CLOSE)
boolean cancelOrder_ali(@RequestParam("out_trade_no") String out_trade_no);
}
package com.zrqx.school.sysuser.client;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.zrqx.core.form.third.alipay.AlipayForm;
import com.zrqx.core.form.third.alipay.AlipayRefundForm;
import com.zrqx.core.form.third.wechartpay.WeChartPayForm;
import com.zrqx.core.form.third.wechartpay.WeChartRefundForm;
import com.zrqx.core.form.third.yeepay.YeePayForm;
import com.zrqx.core.form.third.yeepay.YeeRefundForm;
import com.zrqx.core.model.third.alipay.AlipayQueryReturn;
import com.zrqx.core.model.third.wechart.WecartPayReturn;
import com.zrqx.core.model.third.wechart.WecartQueryReturn;
import com.zrqx.core.model.third.wechart.WechartCloseReturn;
import com.zrqx.core.model.third.wechart.WechartRefundReturn;
import com.zrqx.core.model.third.yeepay.YeePayQueryReturn;
import com.zrqx.core.model.third.yeepay.YeeRefundResult;
import com.zrqx.core.util.response.CallBack;
/**
* 第三方支付服务熔断器
* user:order
* @author ydm
* @date 2018年7月11日下午4:08:02
*/
@Component
public class PayClientHystric implements PayClient{
private static final Logger log = LoggerFactory.getLogger(PayClientHystric.class);
@Override
public CallBack<String> aliPay(AlipayForm alipay) {
log.info("支付失败");
return CallBack.fail();
}
@Override
public CallBack<String> yeePay(YeePayForm alipay) {
log.info("熔断器-调用三方发起易宝支付失败");
return CallBack.fail();
}
@Override
public CallBack<WecartPayReturn> wechatPay(WeChartPayForm wcf) {
log.info("支付失败");
return CallBack.fail();
}
@Override
public CallBack<AlipayQueryReturn> aliPayQuery(String out_trade_no) {
log.info("查询失败");
return CallBack.fail();
}
@Override
public CallBack<WecartQueryReturn> wechatPayQuery(String out_trade_no) {
log.info("查询失败");
return CallBack.fail();
}
@Override
public CallBack<YeePayQueryReturn> yeePayQuery(String p2_Order) {
log.info("熔断器-调用三方发起易宝支付查询失败");
return CallBack.fail();
}
/**支付宝退款
* @see com.zrqx.order.client.PayClient#aliRefund(com.zrqx.core.form.third.alipay.AlipayRefundForm)
* @param alipayRefund
* @return
* @author ray
* @date: 2018年8月22日 下午4:12:45
*/
@Override
public String aliRefund(AlipayRefundForm alipayRefund) {
log.info("支付宝退款异常");
// return CallBack.fail();
return null;
}
/**微信退款
* @see com.zrqx.order.client.PayClient#wechartRefund(java.lang.String)
* @param out_trade_no
* @return
* @author ray
* @date: 2018年8月22日 下午4:12:45
*/
@Override
public CallBack<WechartRefundReturn> wechartRefund(WeChartRefundForm wcrf) {
log.info("微信退款异常");
return CallBack.fail();
}
@Override
public CallBack<YeeRefundResult> yeeRefund(YeeRefundForm form) {
log.info("易宝退款异常");
return null;
}
@Override
public boolean cancelOrder_yee(String code) {
log.info("易宝撤单-熔断器");
return false;
}
@Override
public boolean cancelOrder_wechat(String out_trade_no) {
log.info("微信撤单-熔断器");
return false;
}
@Override
public boolean cancelOrder_ali(String out_trade_no) {
log.info("支付宝撤单-熔断器");
return false;
}
}
......@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.school.sysuser.SchoolRequestPath;
import com.zrqx.core.form.school.sysuser.fg.studentorder.OrderPayForm;
import com.zrqx.core.form.school.sysuser.fg.studentorder.PayForm;
import com.zrqx.core.form.school.sysuser.fg.studentorder.QueryStudentOrderForm;
import com.zrqx.core.model.member.school.School;
......@@ -90,5 +91,33 @@ public class StudentOrderController {
public CallBack<Boolean> confirm(@RequestBody PayForm form){
return CallBack.success(studentOrderService.confirm(form));
}
@ApiOperation("去支付")
@PostMapping(SchoolRequestPath.TO_PAY)
public CallBack<?> toPay(@RequestBody OrderPayForm form){
Integer orderId = form.getOrderId();
Integer payType = form.getPayType();
Integer wechatPayType = form.getWechatPayType();
return CallBack.success(studentOrderService.toPay(orderId,payType,wechatPayType));
}
@ApiOperation("支付宝支付")
@PostMapping(SchoolRequestPath.ALIPAY_TO_PAY)
public String ToPayAlipay(@RequestBody OrderPayForm form){
Integer orderId = form.getOrderId();
Integer payType = form.getPayType();
Integer wechatPayType = form.getWechatPayType();
return studentOrderService.toPayAlipay(orderId,payType,wechatPayType);
}
@ApiOperation("易宝支付")
@PostMapping(SchoolRequestPath.YEE_TO_PAY)
public String ToPayYee(@RequestBody OrderPayForm form){
Integer orderId = form.getOrderId();
Integer payType = form.getPayType();
Integer wechatPayType = form.getWechatPayType();
return studentOrderService.toPayYee(orderId,payType,wechatPayType);
}
}
......@@ -54,5 +54,9 @@ public class StudentOrderInfoController {
CallBack<OrderPayVo> validateOrderPay(String oid) {
return CallBack.success(studentOrderInfoService.validateOrderPay(oid));
}
}
package com.zrqx.school.sysuser.manage.studentorder;
import java.math.BigDecimal;
import java.util.List;
import com.zrqx.core.enums.school.sysuser.StudentOrderStatusEnum;
import com.zrqx.core.model.school.studentorder.StudentOrder;
import com.zrqx.core.vo.schoolsysuser.fg.splitorder.SplitOrderVo;
......@@ -25,5 +27,54 @@ public interface StudentOrderManage {
* @data 2019年8月28日 上午11:33:35
*/
StudentOrder query(Integer id);
/**
* 根据订单号查询订单详情
* @param code
* @return
* @auther zzg
* @data 2019年9月12日 下午2:09:24
*/
StudentOrder getOrderByCode(String code);
/**
* 修改支付方式
* @param o
* @return
* @auther zzg
* @data 2019年9月12日 下午2:11:52
*/
boolean updateOrder(StudentOrder o);
/**
* 根据订单号获取订单支付金额
* @param oid
* @return
* @auther zzg
* @data 2019年9月12日 下午2:19:22
*/
BigDecimal getPaymentById(String oid);
/**
* 更新订单状态为已支付
* @param oid
* @param payType
* @param trade_no
* @return
* @auther zzg
* @data 2019年9月12日 下午2:26:03
*/
Integer updateOrderToIsPay(String oid, String payType, String trade_no);
/**
* 根据id获取订单对象
* @param oid
* @return
* @auther zzg
* @data 2019年9月12日 下午2:41:12
*/
StudentOrder getOrderById(Integer oid);
}
package com.zrqx.school.sysuser.manage.studentorder;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
......@@ -10,6 +12,8 @@ import org.springframework.stereotype.Component;
import com.zrqx.core.enums.BooleanStatusEnum;
import com.zrqx.core.enums.env.EnvironmentInterface;
import com.zrqx.core.enums.school.sysuser.StudentOrderStatusEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.school.studentorder.StudentOrder;
import com.zrqx.core.service.BaseManageImpl;
......@@ -64,6 +68,63 @@ public class StudentOrderManageImpl extends BaseManageImpl<StudentOrder,Integer>
return order;
}
@Override
public StudentOrder getOrderByCode(String code) {
StudentOrder record = new StudentOrder();
record.setOrderNumber(code);
return studentOrderMapper.selectOne(record);
}
@Override
public boolean updateOrder(StudentOrder o) {
studentOrderMapper.updateByPrimaryKeySelective(o);
return true;
}
@Override
public BigDecimal getPaymentById(String oid) {
StudentOrder record = new StudentOrder();
record.setOrderNumber(oid);
StudentOrder o = studentOrderMapper.selectOne(record);
if(o == null){
throw new BaseException("未找到订单");
}
return o.getPayment();
}
@Override
public Integer updateOrderToIsPay(String oid, String payType, String trade_no) {
StudentOrder record = new StudentOrder();
record.setOrderNumber(oid);
StudentOrder o = studentOrderMapper.selectOne(record);
if(o == null){
throw new BaseException("未找到订单");
}
if (!String.valueOf(StudentOrderStatusEnum.WAIT_PAY.getCode()).equals(o.getPayStatus()) &&
!String.valueOf(StudentOrderStatusEnum.CANCELLED.getCode()).equals(o.getPayStatus())) {
String message = "订单状态不为待支付状态,已取消状态,订单状态不能修改为已支付,订单号:" + o.getOrderNumber()
+ ",订单状态:" + o.getPayStatus() + ",订单状态中文:"
+ StudentOrderStatusEnum.getName(o.getPayStatus());
logger.warn(message);
throw new BusinessValidateException(message);
}
o.setPayType(payType);//支付类型
o.setPayTime(new Date());
o.setPayStatus(StudentOrderStatusEnum.HAVE_PAID.getCode());
o.setPayTime(new Date());
o.setPayCode(trade_no);
studentOrderMapper.updateByPrimaryKeySelective(o);
return 1;
}
@Override
public StudentOrder getOrderById(Integer oid) {
return studentOrderMapper.selectByPrimaryKey(oid);
}
}
......@@ -11,29 +11,29 @@ public interface PayProxy {
* @return
* @author ydm
* @date: 2018年8月17日 上午10:32:28
*//*
*/
String pay(BasePayForm form);
*//**
/**
* 验证价格
* @param oid
* @param type
* @return
* @author ydm
* @date: 2018年8月17日 下午4:33:24
*//*
*/
@Deprecated
String validate(String oid, Integer type);
*//**
/**
* 第三方支付所需要的订单信息
* @param oid 订单号
* @param type 支付种类(订单,充值卡等)
* @return
* @author lpf
* @date: 2018年11月21日 上午10:10:34
*//*
*/
OrderPayVo validateOrderPay(String oid, Integer type);
*//**
/**
* 支付完成后回调函数
* @param code 订单编号
* @param total_amount 支付金额
......@@ -42,17 +42,17 @@ public interface PayProxy {
* @return
* @author ydm
* @date: 2018年8月17日 下午4:34:09
*//*
*/
String updateCallBackResult(String code, String total_amount, Integer type, String trade_no);
*//**
/**
* 查询订单是否被支付
* @param oid
* @return 1已支付0未支付
* @author ydm
* @date: 2018年8月27日 上午9:53:21
*//*
Integer pay_query(Integer oid);*/
*/
Integer pay_query(Integer oid);
}
......@@ -28,7 +28,6 @@ import com.zrqx.school.sysuser.mapper.classmanagement.FgClassManagementMapper;
import com.zrqx.school.sysuser.mapper.major.FgMajorMapper;
import com.zrqx.school.sysuser.mapper.studentorder.StudentOrderInfoMapper;
import com.zrqx.school.sysuser.mapper.studentorder.StudentOrderMapper;
import com.zrqx.school.sysuser.service.order.FgOrderInfoServiceImpl;
@Service
public class StudentOrderInfoServiceImpl extends BaseModelServiceImpl<StudentOrderInfo,Integer> implements StudentOrderInfoService{
......@@ -81,6 +80,7 @@ public class StudentOrderInfoServiceImpl extends BaseModelServiceImpl<StudentOrd
BeanUtils.copyProperties(order, vo);
vo.setName(student.getName());
vo.setStuNumber(student.getStudentNum());
vo.setId(student.getId());
//获取班级名称
ClassManagement cm = fgClassManagementMapper.selectByPrimaryKey(student.getClassId());
vo.setClassName(cm.getName());
......
......@@ -86,5 +86,40 @@ public interface StudentOrderService extends BaseService<StudentOrder,Integer>{
* @data 2019年9月6日 上午10:19:39
*/
boolean confirm(PayForm form);
/**
* 去支付
* @param orderId 订单id
* @param payType 支付类型 0支付宝1微信2易宝支付
* @param wechatPayType 微信支付类型 0公众号支付1扫码支付2app支付
* @return
* @auther zzg
* @data 2019年9月12日 下午3:03:34
*/
String toPay(Integer orderId,Integer payType, Integer wechatPayType);
/**
* 支付宝支付
* @param orderId
* @param payType
* @param wechatPayType
* @return
* @auther zzg
* @data 2019年9月12日 下午3:07:55
*/
String toPayAlipay(Integer orderId,Integer payType, Integer wechatPayType);
/**
* 易宝支付
* @param orderId
* @param payType
* @param wechatPayType
* @return
* @auther zzg
* @data 2019年9月12日 下午3:09:08
*/
String toPayYee(Integer orderId, Integer payType, Integer wechatPayType);
}
......@@ -11,10 +11,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.commons.redis.FgRedisManage;
import com.zrqx.core.enums.BusinessTypeEnum;
import com.zrqx.core.enums.MemberTypeEnum;
import com.zrqx.core.enums.school.sysuser.StudentOrderStatusEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.form.school.sysuser.fg.studentorder.PayForm;
import com.zrqx.core.form.school.sysuser.fg.studentorder.QueryStudentOrderForm;
import com.zrqx.core.form.third.BasePayForm;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.distributor.Distributor;
import com.zrqx.core.model.member.school.School;
......@@ -30,6 +33,7 @@ import com.zrqx.core.vo.schoolsysuser.fg.studentorder.StudentOrderInfoVo;
import com.zrqx.core.vo.schoolsysuser.fg.studentorder.StudentOrderVo;
import com.zrqx.school.sysuser.client.BgMemberClient;
import com.zrqx.school.sysuser.mapper.studentorder.StudentOrderMapper;
import com.zrqx.school.sysuser.proxy.PayProxy;
@Service
public class StudentOrderServiceImpl extends BaseModelServiceImpl<StudentOrder,Integer> implements StudentOrderService{
......@@ -40,6 +44,8 @@ public class StudentOrderServiceImpl extends BaseModelServiceImpl<StudentOrder,I
private BgMemberClient bgMemberClient;
@Autowired
private FgRedisManage redis;
@Autowired
private PayProxy proxyClient;
@Override
public BaseMapper<StudentOrder> getMapper() {
......@@ -162,8 +168,54 @@ public class StudentOrderServiceImpl extends BaseModelServiceImpl<StudentOrder,I
return true;
}
@Override
public String toPay(Integer orderId,Integer payType, Integer wechatPayType) {
StudentOrder o = selectByPrimaryKey(orderId);
if(o == null){
throw new BaseException("未找到订单");
}
BasePayForm form = new BasePayForm();
form.setCode(o.getOrderNumber());
form.setPayType(payType+"");
form.setBusinessType(BusinessTypeEnum.ORDER.getValue()+"");
form.setId(orderId+"");
form.setWechatPayType(wechatPayType);
return proxyClient.pay(form);
}
@Override
public String toPayAlipay(Integer orderId,Integer payType, Integer wechatPayType) {
StudentOrder o = selectByPrimaryKey(orderId);
if(o == null){
throw new BaseException("未找到订单");
}
BasePayForm form = new BasePayForm();
form.setCode(o.getOrderNumber());
form.setPayType(payType+"");
form.setBusinessType(BusinessTypeEnum.ORDER.getValue()+"");
form.setId(orderId+"");
form.setWechatPayType(wechatPayType);
return proxyClient.pay(form);
}
public String toPayYee(Integer orderId, Integer payType, Integer wechatPayType){
StudentOrder o = selectByPrimaryKey(orderId);
if(o == null){
throw new BaseException("未找到订单");
}
BasePayForm form = new BasePayForm();
form.setCode(o.getOrderNumber());
form.setPayType(payType+"");
form.setBusinessType(BusinessTypeEnum.ORDER.getValue()+"");
form.setPayment(String.valueOf(o.getPayment()));
form.setId(orderId+"");
form.setWechatPayType(wechatPayType);
return proxyClient.pay(form);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论