|
|
@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.lang.StringUtils; |
|
|
|
import org.jeecg.common.api.vo.Result; |
|
|
|
import org.jeecg.config.shiro.ShiroRealm; |
|
|
|
import org.jeecg.modules.apiBean.PageBean; |
|
|
|
import org.jeecg.modules.apiService.OrderService; |
|
|
|
import org.jeecg.modules.apiUtils.CommonUtils; |
|
|
|
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; |
|
|
|
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; |
|
|
|
import org.jeecg.modules.pay.MpWxPayService; |
|
|
@ -20,6 +22,8 @@ import org.jeecg.modules.teambuyOrderLeader.entity.TeambuyOrderLeader; |
|
|
|
import org.jeecg.modules.teambuyOrderLeader.service.ITeambuyOrderLeaderService; |
|
|
|
import org.jeecg.modules.teambuyOrderMember.entity.TeambuyOrderMember; |
|
|
|
import org.jeecg.modules.teambuyOrderMember.service.ITeambuyOrderMemberService; |
|
|
|
import org.jeecg.modules.teambuyTeamLeader.entity.TeambuyTeamLeader; |
|
|
|
import org.jeecg.modules.teambuyTeamLeader.service.ITeambuyTeamLeaderService; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
@ -28,6 +32,7 @@ import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
public class OrderServiceImpl implements OrderService { |
|
|
|
/******************************************************************************************************************/ |
|
|
@ -40,6 +45,9 @@ public class OrderServiceImpl implements OrderService { |
|
|
|
//用户信息 |
|
|
|
@Resource |
|
|
|
private IHanHaiMemberService hanHaiMemberService; |
|
|
|
//团长信息 |
|
|
|
@Resource |
|
|
|
private ITeambuyTeamLeaderService teambuyTeamLeaderService; |
|
|
|
//团餐订单信息 |
|
|
|
@Resource |
|
|
|
private ITeambuyOrderLeaderService teambuyOrderLeaderService; |
|
|
@ -58,7 +66,7 @@ public class OrderServiceImpl implements OrderService { |
|
|
|
public Result<?> queryLeaderOrderList(String token, TeambuyOrderLeader teambuyOrderLeader, PageBean pageBean) { |
|
|
|
//权限验证 |
|
|
|
//HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
HanHaiMember hanHaiMember = hanHaiMemberService.getById("1898983659468853250"); |
|
|
|
HanHaiMember hanHaiMember = hanHaiMemberService.getById("1919589727643111426"); |
|
|
|
//返回信息 |
|
|
|
String massege = ""; |
|
|
|
//分页信息 |
|
|
@ -84,7 +92,12 @@ public class OrderServiceImpl implements OrderService { |
|
|
|
query.eq(TeambuyOrderLeader::getStatus, teambuyOrderLeader.getStatus()); |
|
|
|
} |
|
|
|
//团餐订单所属 |
|
|
|
query.eq(TeambuyOrderLeader::getUserId, hanHaiMember.getId()); |
|
|
|
TeambuyTeamLeader leader = teambuyTeamLeaderService |
|
|
|
.lambdaQuery() |
|
|
|
.eq(TeambuyTeamLeader::getUserId, hanHaiMember.getId()) |
|
|
|
.one(); |
|
|
|
//团长id |
|
|
|
query.eq(TeambuyOrderLeader::getUserId, leader.getId()); |
|
|
|
//按照创建时间降序排列 |
|
|
|
query.orderByDesc(TeambuyOrderLeader::getCreateTime); |
|
|
|
|
|
|
@ -146,7 +159,7 @@ public class OrderServiceImpl implements OrderService { |
|
|
|
public Result<?> queryMemberOrderList(String token, TeambuyOrderMember teambuyOrderMember, PageBean pageBean) { |
|
|
|
//权限验证 |
|
|
|
//HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
HanHaiMember hanHaiMember = hanHaiMemberService.getById("1898983659468853250"); |
|
|
|
HanHaiMember hanHaiMember = hanHaiMemberService.getById("1919589727643111426"); |
|
|
|
//返回信息 |
|
|
|
String massege = ""; |
|
|
|
//分页信息 |
|
|
@ -206,266 +219,284 @@ public class OrderServiceImpl implements OrderService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// //查看团餐订单详情 |
|
|
|
// @Override |
|
|
|
// public Result<?> queryLeaderOrderById(String token, String id) { |
|
|
|
// //权限验证 |
|
|
|
// HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
// //返回信息 |
|
|
|
// String massege = ""; |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //订单信息 |
|
|
|
// MassageOrder order = massageOrderService |
|
|
|
// .lambdaQuery() |
|
|
|
// .eq(MassageOrder::getId, id) |
|
|
|
// .eq(MassageOrder::getUserId, hanHaiMember.getId()) |
|
|
|
// .one(); |
|
|
|
// if(null == order){ |
|
|
|
// return Result.error("订单详情查询失败,请检查输入的订单编号:", order); |
|
|
|
// } |
|
|
|
// //项目信息 |
|
|
|
// MassageItem item = massageItemService.getById(order.getItemId()); |
|
|
|
// order.setMassageItem(item); |
|
|
|
// |
|
|
|
// return Result.OK("订单详情", order); |
|
|
|
// }catch (Exception e){ |
|
|
|
// e.printStackTrace(); |
|
|
|
// return Result.error("订单详情查询失败"); |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// //查看订单列表 |
|
|
|
// @Override |
|
|
|
// public Result<?> queryOrderList(String token, MassageOrder massageOrder, PageBean pageBean) { |
|
|
|
// //权限验证 |
|
|
|
// HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
// //返回信息 |
|
|
|
// String massege = ""; |
|
|
|
// //分页信息 |
|
|
|
// Page<MassageOrder> page = null; |
|
|
|
// //查询信息 |
|
|
|
// LambdaQueryChainWrapper<MassageOrder> query = null; |
|
|
|
// //返回信息 |
|
|
|
// Page<MassageOrder> pageList = null; |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //分页 |
|
|
|
// page = new Page<MassageOrder>(pageBean.getPageNo(), pageBean.getPageSize()); |
|
|
|
// query = massageOrderService |
|
|
|
// .lambdaQuery(); |
|
|
|
// |
|
|
|
// //组装查询条件 |
|
|
|
// if(StringUtils.isNotBlank(massageOrder.getStatus())){ |
|
|
|
// //订单状态 |
|
|
|
// query.eq(MassageOrder::getStatus, massageOrder.getStatus()); |
|
|
|
// } |
|
|
|
// //订单所属 |
|
|
|
// query.eq(MassageOrder::getUserId, hanHaiMember.getId()); |
|
|
|
// //按照排序编号升序排列 |
|
|
|
// query.orderByDesc(MassageOrder::getCreateTime); |
|
|
|
// |
|
|
|
// //获取订单信息 |
|
|
|
// pageList = query.page(page); |
|
|
|
// if(null == pageList){ |
|
|
|
// return Result.OK("订单列表为空", pageList); |
|
|
|
// } |
|
|
|
// for (MassageOrder record : pageList.getRecords()) { |
|
|
|
// MassageItem item = massageItemService.getById(record.getItemId()); |
|
|
|
// record.setMassageItem(item); |
|
|
|
// } |
|
|
|
// |
|
|
|
// return Result.OK("订单列表", pageList); |
|
|
|
// }catch (Exception e){ |
|
|
|
// e.printStackTrace(); |
|
|
|
// return Result.error("订单列表查询失败"); |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
// //查看订单详情 |
|
|
|
// @Override |
|
|
|
// public Result<?> queryOrderById(String token, String id) { |
|
|
|
// //权限验证 |
|
|
|
// HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
// //返回信息 |
|
|
|
// String massege = ""; |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //订单信息 |
|
|
|
// MassageOrder order = massageOrderService |
|
|
|
// .lambdaQuery() |
|
|
|
// .eq(MassageOrder::getId, id) |
|
|
|
// .eq(MassageOrder::getUserId, hanHaiMember.getId()) |
|
|
|
// .one(); |
|
|
|
// if(null == order){ |
|
|
|
// return Result.error("订单详情查询失败,请检查输入的订单编号:", order); |
|
|
|
// } |
|
|
|
// //项目信息 |
|
|
|
// MassageItem item = massageItemService.getById(order.getItemId()); |
|
|
|
// order.setMassageItem(item); |
|
|
|
// |
|
|
|
// return Result.OK("订单详情", order); |
|
|
|
// }catch (Exception e){ |
|
|
|
// e.printStackTrace(); |
|
|
|
// return Result.error("订单详情查询失败"); |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
// //创建订单 |
|
|
|
// @Override |
|
|
|
// public Result<?> createOrder(String token, MassageOrder massageOrder, String payType) { |
|
|
|
// //权限验证 |
|
|
|
// HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //订单信息 |
|
|
|
// String payNo = IdWorker.getIdStr();//生成订单号 |
|
|
|
// massageOrder.setId(payNo); |
|
|
|
// massageOrder.setUserId(hanHaiMember.getId()); |
|
|
|
// |
|
|
|
// //查询服务信息 |
|
|
|
// MassageItem item = massageItemService.getById(massageOrder.getItemId()); |
|
|
|
// |
|
|
|
// //创建订单 |
|
|
|
// massageOrderService.save(massageOrder); |
|
|
|
// |
|
|
|
// //订单支付 |
|
|
|
// switch (payType){ |
|
|
|
// //微信支付 |
|
|
|
// case "0": |
|
|
|
// //吊起微信支付 |
|
|
|
// BigDecimal price = massageOrder.getAmount();//价格 |
|
|
|
// String productName = item.getTitle();//服务名称 |
|
|
|
// |
|
|
|
// String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
// int i1 = Double.valueOf(s).intValue(); |
|
|
|
// Object appOrder = mpWxPayService.createOrder( |
|
|
|
// "购买"+ productName , |
|
|
|
// "127.0.0.1", |
|
|
|
// massageOrder.getId(), |
|
|
|
// i1, |
|
|
|
// massageOrder.getId(), |
|
|
|
// hanHaiMember.getAppletOpenid(), |
|
|
|
// massageOrder.toString()); |
|
|
|
// return Result.OK("支付成功",appOrder); |
|
|
|
// |
|
|
|
// //余额支付 |
|
|
|
// case "1": |
|
|
|
// //用户余额 |
|
|
|
// BigDecimal balance = hanHaiMember.getPrice(); |
|
|
|
// //订单实付金额 |
|
|
|
// BigDecimal amount = massageOrder.getAmount(); |
|
|
|
// |
|
|
|
// if(balance.compareTo(amount) == 1 ){ |
|
|
|
// //等同于a>b |
|
|
|
// balance = balance.subtract(amount); |
|
|
|
// } |
|
|
|
// //修改用户余额 |
|
|
|
// hanHaiMemberService.updateById(hanHaiMember); |
|
|
|
// |
|
|
|
// //修改订单信息 |
|
|
|
// massageOrder.setStatus("1");//订单状态 |
|
|
|
// massageOrder.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
// massageOrderService.updateById(massageOrder); |
|
|
|
// return Result.OK("支付成功"); |
|
|
|
// |
|
|
|
// } |
|
|
|
// return Result.error("支付失败"); |
|
|
|
// }catch (Exception e){ |
|
|
|
// e.printStackTrace(); |
|
|
|
// return Result.error("支付失败"); |
|
|
|
// } |
|
|
|
// |
|
|
|
// } |
|
|
|
|
|
|
|
// //支付订单 |
|
|
|
// @Override |
|
|
|
// public Result<?> payOrder(String token, String orderId, String payType) { |
|
|
|
// //权限验证 |
|
|
|
// HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //订单信息 |
|
|
|
// MassageOrder massageOrder = massageOrderService.getById(orderId); |
|
|
|
// |
|
|
|
// //查询服务信息 |
|
|
|
// MassageItem item = massageItemService.getById(massageOrder.getItemId()); |
|
|
|
// |
|
|
|
// //订单支付 |
|
|
|
// switch (payType){ |
|
|
|
// //微信支付 |
|
|
|
// case "0": |
|
|
|
// //吊起微信支付 |
|
|
|
// BigDecimal price = massageOrder.getAmount();//价格 |
|
|
|
// String productName = item.getTitle();//服务名称 |
|
|
|
// |
|
|
|
// String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
// int i1 = Double.valueOf(s).intValue(); |
|
|
|
// Object appOrder = mpWxPayService.createOrder( |
|
|
|
// "购买"+ productName , |
|
|
|
// "127.0.0.1", |
|
|
|
// massageOrder.getId(), |
|
|
|
// i1, |
|
|
|
// massageOrder.getId(), |
|
|
|
// hanHaiMember.getAppletOpenid(), |
|
|
|
// massageOrder.toString()); |
|
|
|
// return Result.OK("支付成功",appOrder); |
|
|
|
// |
|
|
|
// //余额支付 |
|
|
|
// case "1": |
|
|
|
// //用户余额 |
|
|
|
// BigDecimal balance = hanHaiMember.getPrice(); |
|
|
|
// //订单实付金额 |
|
|
|
// BigDecimal amount = massageOrder.getAmount(); |
|
|
|
// |
|
|
|
// if(balance.compareTo(amount) == 1 ){ |
|
|
|
// //等同于a>b |
|
|
|
// balance = balance.subtract(amount); |
|
|
|
// }else { |
|
|
|
// return Result.error("余额不足,支付失败"); |
|
|
|
// } |
|
|
|
// //修改用户余额 |
|
|
|
// hanHaiMember.setPrice(balance); |
|
|
|
// hanHaiMemberService.updateById(hanHaiMember); |
|
|
|
// |
|
|
|
// //修改订单信息 |
|
|
|
// massageOrder.setStatus("1");//订单状态 |
|
|
|
// massageOrder.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
// massageOrderService.updateById(massageOrder); |
|
|
|
// return Result.OK("支付成功"); |
|
|
|
// |
|
|
|
// } |
|
|
|
// |
|
|
|
// return Result.error("支付失败"); |
|
|
|
// |
|
|
|
// }catch (Exception e){ |
|
|
|
// e.printStackTrace(); |
|
|
|
// return Result.error("支付失败"); |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
// //订单支付回调 |
|
|
|
// public Result<?> payOrderNotify(String requestBody){ |
|
|
|
// WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); |
|
|
|
// String outTradeNo = notify.getOutTradeNo(); |
|
|
|
// log.info("支付回调订单号码:"+outTradeNo); |
|
|
|
// |
|
|
|
// try{ |
|
|
|
// //查询订单信息 |
|
|
|
// MassageOrder massageOrder = massageOrderService.getById(outTradeNo); |
|
|
|
// //如果订单存在则修改订单状态 |
|
|
|
// if (null != massageOrder){ |
|
|
|
// if("0".equals(massageOrder.getStatus())){ |
|
|
|
// massageOrder.setStatus("1"); |
|
|
|
// } |
|
|
|
// massageOrderService.updateById(massageOrder); |
|
|
|
// } |
|
|
|
// |
|
|
|
// }catch (Exception e){ |
|
|
|
// log.info("支付回调失败,订单号码:"+outTradeNo); |
|
|
|
// e.printStackTrace(); |
|
|
|
// } |
|
|
|
// return null; |
|
|
|
// } |
|
|
|
//创建订单 |
|
|
|
@Override |
|
|
|
public Result<?> createOrder(String token, TeambuyOrderMember teambuyOrderMember, String payType) { |
|
|
|
//权限验证 |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
|
|
|
|
try{ |
|
|
|
//订单信息 |
|
|
|
String payNo = IdWorker.getIdStr();//生成订单号 |
|
|
|
teambuyOrderMember.setId(payNo); |
|
|
|
teambuyOrderMember.setUserId(hanHaiMember.getId()); |
|
|
|
|
|
|
|
//订单信息编辑 |
|
|
|
teambuyOrderMember.setTitle("的订单");//订单名称 |
|
|
|
teambuyOrderMember.setUserId(hanHaiMember.getId());//订单拥有者 |
|
|
|
teambuyOrderMember.setOrderLeaderId("");//团餐订单编号 |
|
|
|
|
|
|
|
//查询团长信息 |
|
|
|
|
|
|
|
|
|
|
|
//创建团员订单 |
|
|
|
teambuyOrderMemberService.save(teambuyOrderMember); |
|
|
|
|
|
|
|
//订单支付 |
|
|
|
switch (payType){ |
|
|
|
//微信支付 |
|
|
|
case "0": |
|
|
|
//吊起微信支付 |
|
|
|
BigDecimal price = teambuyOrderMember.getPricePay();//价格 |
|
|
|
String productName = teambuyOrderMember.getTitle();//服务名称 |
|
|
|
|
|
|
|
String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ productName , |
|
|
|
"127.0.0.1", |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
i1, |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
teambuyOrderMember.toString()); |
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
|
|
|
|
//余额支付 |
|
|
|
case "1": |
|
|
|
//用户余额 |
|
|
|
BigDecimal balance = hanHaiMember.getPrice(); |
|
|
|
//订单实付金额 |
|
|
|
BigDecimal amount = teambuyOrderMember.getPricePay(); |
|
|
|
|
|
|
|
if(balance.compareTo(amount) == 1 ){ |
|
|
|
//等同于a>b |
|
|
|
balance = balance.subtract(amount); |
|
|
|
}else { |
|
|
|
return Result.error("余额不足"); |
|
|
|
} |
|
|
|
//修改用户余额 |
|
|
|
hanHaiMember.setPrice(balance); |
|
|
|
hanHaiMemberService.updateById(hanHaiMember); |
|
|
|
|
|
|
|
//修改订单信息 |
|
|
|
teambuyOrderMember.setStatus("1");//订单状态 |
|
|
|
teambuyOrderMember.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
teambuyOrderMemberService.updateById(teambuyOrderMember); |
|
|
|
return Result.OK("支付成功"); |
|
|
|
|
|
|
|
} |
|
|
|
return Result.error("支付失败"); |
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
return Result.error("支付失败"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//创建订单 |
|
|
|
@Override |
|
|
|
public Result<?> createOrder2(String token, TeambuyOrderMember teambuyOrderMember, String payType, String leaderId, String goodss) { |
|
|
|
//权限验证 |
|
|
|
//HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
HanHaiMember hanHaiMember = hanHaiMemberService.getById("1919589727643111426"); |
|
|
|
|
|
|
|
try{ |
|
|
|
//订单信息 |
|
|
|
String payNo = IdWorker.getIdStr();//生成订单号 |
|
|
|
teambuyOrderMember.setId(payNo); |
|
|
|
teambuyOrderMember.setUserId(hanHaiMember.getId()); |
|
|
|
|
|
|
|
//订单信息编辑 |
|
|
|
teambuyOrderMember.setTitle("的订单");//订单名称 |
|
|
|
teambuyOrderMember.setUserId(hanHaiMember.getId());//订单拥有者 |
|
|
|
teambuyOrderMember.setOrderLeaderId("");//团餐订单编号 |
|
|
|
|
|
|
|
//查询团长信息 |
|
|
|
TeambuyTeamLeader teamLeader = teambuyTeamLeaderService.getById(leaderId); |
|
|
|
if(null == teamLeader){ |
|
|
|
return Result.error("团长不存在,请查看团长id是否正确" + leaderId); |
|
|
|
} |
|
|
|
|
|
|
|
//查询团长正在团餐的订单,如果没有则创建团餐订单 |
|
|
|
TeambuyOrderLeader orderLeader = teambuyOrderLeaderService |
|
|
|
.lambdaQuery() |
|
|
|
.eq(TeambuyOrderLeader::getUserId, leaderId) |
|
|
|
.eq(TeambuyOrderLeader::getStatus, 0) |
|
|
|
.one(); |
|
|
|
if(null == orderLeader){ |
|
|
|
TeambuyOrderLeader orderLeader1 = new TeambuyOrderLeader(); |
|
|
|
orderLeader1.setTitle("团长的订单"); |
|
|
|
orderLeader1.setUserId(teamLeader.getId()); |
|
|
|
teambuyOrderLeaderService.save(orderLeader1); |
|
|
|
|
|
|
|
//延迟2s |
|
|
|
//Thread.sleep(2000); |
|
|
|
|
|
|
|
TeambuyOrderLeader orderLeader2 = teambuyOrderLeaderService |
|
|
|
.lambdaQuery() |
|
|
|
.eq(TeambuyOrderLeader::getUserId, leaderId) |
|
|
|
.eq(TeambuyOrderLeader::getStatus, 0) |
|
|
|
.one(); |
|
|
|
teambuyOrderMember.setOrderLeaderId(orderLeader2.getId()); |
|
|
|
}else { |
|
|
|
teambuyOrderMember.setOrderLeaderId(orderLeader.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
//创建团员订单 |
|
|
|
teambuyOrderMemberService.save(teambuyOrderMember); |
|
|
|
|
|
|
|
//创建团员餐品信息 |
|
|
|
List<TeambuyOrderGoods> list = new ArrayList<>(); |
|
|
|
String[] goods = goodss.split(";"); |
|
|
|
for (int i = 0; i < goods.length; i++) { |
|
|
|
String[] param = goods[i].split(","); |
|
|
|
TeambuyOrderGoods goods1 = new TeambuyOrderGoods(); |
|
|
|
goods1.setOrderId(teambuyOrderMember.getId());//团员订单id |
|
|
|
goods1.setGoodsId(param[0]);//商品id |
|
|
|
goods1.setNum(Integer.valueOf(param[1]));//商品数量 |
|
|
|
goods1.setPrice(BigDecimal.valueOf(Long.parseLong(param[2])));//商品总价格 |
|
|
|
list.add(goods1); |
|
|
|
} |
|
|
|
teambuyOrderGoodsService.saveBatch(list); |
|
|
|
|
|
|
|
//订单支付 |
|
|
|
switch (payType){ |
|
|
|
//微信支付 |
|
|
|
case "0": |
|
|
|
//吊起微信支付 |
|
|
|
BigDecimal price = teambuyOrderMember.getPricePay();//价格 |
|
|
|
String productName = teambuyOrderMember.getTitle();//服务名称 |
|
|
|
|
|
|
|
String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ productName , |
|
|
|
"127.0.0.1", |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
i1, |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
teambuyOrderMember.toString()); |
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
|
|
|
|
//余额支付 |
|
|
|
case "1": |
|
|
|
//用户余额 |
|
|
|
BigDecimal balance = hanHaiMember.getPrice(); |
|
|
|
//订单实付金额 |
|
|
|
BigDecimal amount = teambuyOrderMember.getPricePay(); |
|
|
|
|
|
|
|
if(balance.compareTo(amount) == 1 ){ |
|
|
|
//等同于a>b |
|
|
|
balance = balance.subtract(amount); |
|
|
|
}else { |
|
|
|
return Result.error("余额不足"); |
|
|
|
} |
|
|
|
//修改用户余额 |
|
|
|
hanHaiMember.setPrice(balance); |
|
|
|
hanHaiMemberService.updateById(hanHaiMember); |
|
|
|
|
|
|
|
//修改订单信息 |
|
|
|
teambuyOrderMember.setStatus("1");//订单状态 |
|
|
|
teambuyOrderMember.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
teambuyOrderMemberService.updateById(teambuyOrderMember); |
|
|
|
return Result.OK("支付成功"); |
|
|
|
|
|
|
|
} |
|
|
|
return Result.error("支付失败"); |
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
return Result.error("支付失败"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//支付订单 |
|
|
|
@Override |
|
|
|
public Result<?> payOrder(String token, String orderId, String payType) { |
|
|
|
//权限验证 |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
|
|
|
|
try{ |
|
|
|
//订单信息 |
|
|
|
TeambuyOrderMember teambuyOrderMember = teambuyOrderMemberService.getById(orderId); |
|
|
|
|
|
|
|
//订单支付 |
|
|
|
switch (payType){ |
|
|
|
//微信支付 |
|
|
|
case "0": |
|
|
|
//吊起微信支付 |
|
|
|
BigDecimal price = teambuyOrderMember.getPricePay();//价格 |
|
|
|
String productName = teambuyOrderMember.getTitle();//服务名称 |
|
|
|
|
|
|
|
String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ productName , |
|
|
|
"127.0.0.1", |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
i1, |
|
|
|
teambuyOrderMember.getId(), |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
teambuyOrderMember.toString()); |
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
|
|
|
|
//余额支付 |
|
|
|
case "1": |
|
|
|
//用户余额 |
|
|
|
BigDecimal balance = hanHaiMember.getPrice(); |
|
|
|
//订单实付金额 |
|
|
|
BigDecimal amount = teambuyOrderMember.getPricePay(); |
|
|
|
|
|
|
|
if(balance.compareTo(amount) == 1 ){ |
|
|
|
//等同于a>b |
|
|
|
balance = balance.subtract(amount); |
|
|
|
}else { |
|
|
|
return Result.error("余额不足,支付失败"); |
|
|
|
} |
|
|
|
//修改用户余额 |
|
|
|
hanHaiMember.setPrice(balance); |
|
|
|
hanHaiMemberService.updateById(hanHaiMember); |
|
|
|
|
|
|
|
//修改订单信息 |
|
|
|
teambuyOrderMember.setStatus("1");//订单状态 |
|
|
|
teambuyOrderMember.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
teambuyOrderMemberService.updateById(teambuyOrderMember); |
|
|
|
return Result.OK("支付成功"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return Result.error("支付失败"); |
|
|
|
|
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
return Result.error("支付失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//订单支付回调 |
|
|
|
public Result<?> payOrderNotify(String requestBody){ |
|
|
|
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); |
|
|
|
String outTradeNo = notify.getOutTradeNo(); |
|
|
|
log.info("支付回调订单号码:"+outTradeNo); |
|
|
|
|
|
|
|
try{ |
|
|
|
//查询订单信息 |
|
|
|
TeambuyOrderMember teambuyOrderMember = teambuyOrderMemberService.getById(outTradeNo); |
|
|
|
//如果订单存在则修改订单状态 |
|
|
|
if (null != teambuyOrderMember){ |
|
|
|
if("0".equals(teambuyOrderMember.getStatus())){ |
|
|
|
teambuyOrderMember.setStatus("1");//订单状态 |
|
|
|
teambuyOrderMember.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 |
|
|
|
teambuyOrderMemberService.updateById(teambuyOrderMember); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}catch (Exception e){ |
|
|
|
log.info("支付回调失败,订单号码:"+outTradeNo); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |