在线支付测试

This commit is contained in:
曹磊 2024-07-03 13:40:56 +08:00
parent 882c7841a1
commit 2bc429946b
2 changed files with 658 additions and 83 deletions

View File

@ -179,12 +179,20 @@ public class AliPayController {
payDetailsDao.updateState(payDetails.getId(), 1, sdf.format(new Date()), tradeNo);
if (payDetails.getType() == 1) {
Orders orders = ordersService.selectOrdersByOrderNo(payDetails.getOrderId());
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
orders.setStatus(9);//用户已支付技师待接单
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(6);
orders.setPayTime(sdf.format(new Date()));
@ -220,7 +228,6 @@ public class AliPayController {
orders.setConsortiaId(consortia.getConsortiaId());
orders.setShopUserId(consortiaUser.getUserId());
orders.setShopUserName(consortiaUser.getUserName());
}
}
}
@ -789,19 +796,22 @@ public class AliPayController {
payDetails1.setClassify(6);
payDetailsDao.updateById(payDetails1);
}
if (type == 1) {
if(orders.getUserPackageDetailId() !=null ){
return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue());
}else{
return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
}
} else {
if(orders.getUserPackageDetailId() !=null ){
return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue());
}else{
return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
}
}
// if (type == 1) {
// if(orders.getUserPackageDetailId() !=null ){
// return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue());
// }else{
// return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
// }
// } else {
// if(orders.getUserPackageDetailId() !=null ){
// return payApp(name, orders.getOrdersNo(), orders.getTaxiMoney().doubleValue());
// }else{
// return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
// }
// }
payOrderResult(orders.getOrdersNo());
return Result.success();
}
@Login
@ -841,11 +851,13 @@ public class AliPayController {
payDetails1.setType(7);
payDetailsDao.updateById(payDetails1);
}
if (type == 1) {
return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
} else {
return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
}
// if (type == 1) {
// return payApp(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue());
// } else {
// return payH5(name, orders.getOrdersNo(), orders.getPayMoney().doubleValue(), returnUrl);
// }
payOrderResult(orders.getOrdersNo());
return Result.success();
}
@Login
@ -870,11 +882,13 @@ public class AliPayController {
payDetails.setClassify(6);
payDetails.setType(2);
payDetailsDao.insert(payDetails);
if (type == 1) {
return payApp(name, generalOrder, money);
} else {
return payH5(name, generalOrder, money, returnUrl);
}
// if (type == 1) {
// return payApp(name, generalOrder, money);
// } else {
// return payH5(name, generalOrder, money, returnUrl);
// }
payOrderResult(generalOrder);
return Result.success();
}
@ -942,12 +956,20 @@ public class AliPayController {
payDetailsDao.updateState(payDetails.getId(), 1, sdf.format(new Date()), tradeNo);
if (payDetails.getType() == 1) {
Orders orders = ordersService.selectOrdersByOrderNo(payDetails.getOrderId());
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
orders.setStatus(9);//用户已支付技师待接单
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(6);
orders.setPayTime(sdf.format(new Date()));
@ -983,7 +1005,6 @@ public class AliPayController {
orders.setConsortiaId(consortia.getConsortiaId());
orders.setShopUserId(consortiaUser.getUserId());
orders.setShopUserName(consortiaUser.getUserName());
}
}
}
@ -995,8 +1016,8 @@ public class AliPayController {
orders.setOneUserMoney(oneUserMoney);
orders.setOneArtificerMoney(oneArtificerMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
String value1 = commonInfoService.findOne(395).getValue();
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
@ -1004,7 +1025,6 @@ public class AliPayController {
Integer duration=massageType.getDuration();
Calendar calendar=Calendar.getInstance();
if("".equals(value1)){
ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 "));
String serveTime = artificerTime.getArtificerDate()+" "+artificerTime.getArtificerTime();
String value = commonInfoService.findOne(392).getValue();
@ -1374,7 +1394,7 @@ public class AliPayController {
userMoneyDetails2.setBalance(userNowMoney.getMoney());
userMoneyDetails2.setManipulateType(2);
userMoneyDetails2.setClassify(8);
userMoneyDetails2.setUserId(artificerId);
userMoneyDetails2.setUserId(userEntity.getUserId());
userMoneyDetails2.setTitle("用户支付宝打赏");
userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”支付宝打赏:"+money);
userMoneyDetails2.setType(1);
@ -1447,6 +1467,9 @@ public class AliPayController {
int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd);
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
massageType.setSales(massageType.getSales()+1);
massageTypeService.updateById(massageType);
}
}
}
@ -1497,10 +1520,12 @@ public class AliPayController {
payDetails.setRemark(String.valueOf(couponIssueId));
payDetailsDao.insert(payDetails);
}
if(classify==1){
return payApp(name,generalOrder,money);
}
return payH5(name,generalOrder,money,returnUrl);
// if(classify==1){
// return payApp(name,generalOrder,money);
// }
// return payH5(name,generalOrder,money,returnUrl);
payOrderResult(generalOrder);
return Result.success();
}
@Login
@ -1529,10 +1554,12 @@ public class AliPayController {
payDetails.setRemark(String.valueOf(vipDetailsId));
payDetailsDao.insert(payDetails);
}
if(classify==1){
return payApp(name,generalOrder,money.doubleValue());
}
return payH5(name,generalOrder,money.doubleValue(),returnUrl);
// if(classify==1){
// return payApp(name,generalOrder,money.doubleValue());
// }
// return payH5(name,generalOrder,money.doubleValue(),returnUrl);
payOrderResult(generalOrder);
return Result.success();
}
@Login
@ -1563,10 +1590,12 @@ public class AliPayController {
payDetails.setType(6);
payDetails.setRemark(String.valueOf(artificerId));
payDetailsDao.insert(payDetails);
if(type==1){
return payApp(name,generalOrder,money.doubleValue());
}
return payH5(name,generalOrder,money.doubleValue(),returnUrl);
// if(type==1){
// return payApp(name,generalOrder,money.doubleValue());
// }
// return payH5(name,generalOrder,money.doubleValue(),returnUrl);
payOrderResult(generalOrder);
return Result.success();
}

View File

@ -151,24 +151,9 @@ public class WxServiceImpl implements WxService {
payDetails.setRemark(String.valueOf(payClassifyId));
payDetails.setMassageOrdersId(ordersId);
payDetailsDao.insert(payDetails);
//用户在服务中充值余额算技师业绩增加userRecharge表 modify 2024-06-17 by caolei 改到支付成功后技师获取积分
//查询用户在服务中的技师的订单id
// List<Orders> orders = ordersDao.selectList(Wrappers.<Orders>lambdaQuery().eq(Orders::getUserId, userId).eq(Orders::getStatus, 6).orderByDesc(Orders::getCreateTime));
// if(orders.size() > 0){
// Long ordersId = orders.get(0).getOrdersId();
// Long artificerId = orders.get(0).getArtificerId();
// BigDecimal b = new BigDecimal(payClassify.getPrice().toString());
// BigDecimal sum = b;
// UserRecharge o = new UserRecharge();
// o.setOrdersId(ordersId.intValue());
// o.setUserRecharge(sum);
// o.setType("2");
// o.setUserId(userId.intValue());
// o.setCreateTime(LocalDateTime.now().toString());
// o.setArtificerId(artificerId.intValue());
// userRechargeDao.insert(o);
// }
return pay(payClassify.getPrice().doubleValue(), classify, userId, generalOrder,request);
// return pay(payClassify.getPrice().doubleValue(), classify, userId, generalOrder,request);
payOrderResult(generalOrder);
return Result.success();
}
@Override
@ -245,11 +230,14 @@ public class WxServiceImpl implements WxService {
payDetails1.setClassify(classify);
payDetailsDao.updateById(payDetails1);
}
if(orders.getUserPackageDetailId() !=null ){
return pay(orders.getTaxiMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
}else{
return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
}
// if(orders.getUserPackageDetailId() !=null ){
// return pay(orders.getTaxiMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
// }else{
// return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
// }
payOrderResult(orders.getOrdersNo());
return Result.success();
}
@Override
@ -281,7 +269,9 @@ public class WxServiceImpl implements WxService {
payDetails1.setType(7);
payDetailsDao.updateById(payDetails1);
}
return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
// return pay(orders.getPayMoney().doubleValue(), classify, orders.getUserId(), orders.getOrdersNo(),request);
payOrderResult(orders.getOrdersNo());
return Result.success();
}
@Override
@ -298,7 +288,9 @@ public class WxServiceImpl implements WxService {
payDetails.setClassify(type);
payDetails.setType(2);
payDetailsDao.insert(payDetails);
return pays(money, type,userId, generalOrder,request);
// return pays(money, type,userId, generalOrder,request);
payOrderResult(generalOrder);
return Result.success();
}
@Override
@ -332,7 +324,9 @@ public class WxServiceImpl implements WxService {
payDetails.setClassify(type);
payDetailsDao.updateById(payDetails);
}
return pay(money, type, userId, generalOrder,request);
// return pay(money, type, userId, generalOrder,request);
payOrderResult(generalOrder);
return Result.success();
}
@Override
@ -350,7 +344,9 @@ public class WxServiceImpl implements WxService {
payDetails.setType(5);
payDetails.setRemark(String.valueOf(vipDetailsId));
payDetailsDao.insert(payDetails);
return pay(money.doubleValue(), type,userId, generalOrder,request);
// return pay(money.doubleValue(), type,userId, generalOrder,request);
payOrderResult(generalOrder);
return Result.success();
}
@Override
@ -371,7 +367,9 @@ public class WxServiceImpl implements WxService {
payDetails.setType(6);
payDetails.setRemark(String.valueOf(artificerId));
payDetailsDao.insert(payDetails);
return pay(money.doubleValue(), classify, userId, generalOrder,request);
// return pay(money.doubleValue(), classify, userId, generalOrder,request);
payOrderResult(generalOrder);
return Result.success();
}
@ -622,6 +620,546 @@ public class WxServiceImpl implements WxService {
return Result.error("获取订单失败");
}
public void payOrderResult(String out_trade_no) {
try {
//验证签名是否有效有效则进一步处理
log.error("验证成功222");
if (out_trade_no != null) {
// 注意特殊情况订单已经退款但收到了支付结果成功的通知不应把商户的订单状态从退款改成支付成功
// 注意特殊情况微信服务端同样的通知可能会多次发送给商户系统所以数据持久化之前需要检查是否已经处理过了处理了直接返回成功标志
//业务数据持久化
log.error("订单号!!!" + out_trade_no);
PayDetails payDetails = payDetailsDao.selectByOrderId(out_trade_no);
if (payDetails.getState() == 0) {
payDetailsDao.updateState(payDetails.getId(), 1, sdf.format(new Date()), "");
if(payDetails.getType()==1){
Orders orders = ordersService.selectOrdersByOrderNo(payDetails.getOrderId());
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(payDetails.getClassify());
orders.setPayTime(sdf.format(new Date()));
BigDecimal pingMoney=orders.getPayMoney();
UserEntity user = userService.selectUserById(orders.getUserId());
UserEntity oneUser = userService.queryByInvitationCode(user.getInviterCode());
BigDecimal oneUserMoney=BigDecimal.ZERO;
if(oneUser!=null && oneUser.getIsAgency()!=null && oneUser.getIsAgency()==1){
orders.setOneUserId(oneUser.getUserId());
orders.setOneUserName(oneUser.getUserName());
oneUserMoney=pingMoney.multiply(oneUser.getUserRate());
}
Artificer artificer = artificerService.getById(orders.getArtificerId());
UserEntity artificerUser = userService.selectUserById(artificer.getUserId());
UserEntity oneArtificerUser = userService.queryByInvitationCode(artificerUser.getInviterCode());
BigDecimal oneArtificerMoney=BigDecimal.ZERO;
if(oneArtificerUser!=null && oneArtificerUser.getIsAgency()!=null && oneArtificerUser.getIsAgency()==1){
orders.setOneArtificerUserId(oneArtificerUser.getUserId());
orders.setOneArtificerUserName(oneArtificerUser.getUserName());
oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate());
}
BigDecimal shopMoney=BigDecimal.ZERO;
if(artificerUser.getConsortiaId()!=null){
Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId());
if(consortia!=null && consortia.getUserId()!=null){
UserEntity consortiaUser = userService.getById(consortia.getUserId());
if(consortiaUser!=null){
shopMoney = pingMoney.multiply(consortia.getRate());
orders.setConsortiaId(consortia.getConsortiaId());
orders.setShopUserId(consortiaUser.getUserId());
orders.setShopUserName(consortiaUser.getUserName());
}
}
}
pingMoney=pingMoney.subtract(orders.getArtificerMoney());
pingMoney=pingMoney.subtract(oneUserMoney);
pingMoney=pingMoney.subtract(oneArtificerMoney);
pingMoney=pingMoney.subtract(shopMoney);
orders.setShopMoney(shopMoney);
orders.setOneUserMoney(oneUserMoney);
orders.setOneArtificerMoney(oneArtificerMoney);
orders.setPingMoney(pingMoney);
ordersService.updateById(orders);
if(orders.getParentId()!=null && orders.getParentId()!=0){
String value1 = commonInfoService.findOne(395).getValue();
OrdersMassage ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders.getOrdersId()));
MassageType massageType = massageTypeService.getById(ordersMassage.getMassageId());
Integer duration=massageType.getDuration();
Calendar calendar=Calendar.getInstance();
if("".equals(value1)){
ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 "));
String serveTime = artificerTime.getArtificerDate()+" "+artificerTime.getArtificerTime();
String value = commonInfoService.findOne(392).getValue();
int minute = Integer.parseInt(value);
int i=1;
if(duration%minute==0){
i=duration/minute;
}else{
i=duration/minute;
i++;
}
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date parse = sdf1.parse(serveTime);
calendar.setTime(parse);
for(int j=0;j<i;j++){
calendar.add(Calendar.MINUTE,minute);
String format = sdf1.format(calendar.getTime());
String date = format.substring(0, 10);
String time = format.substring(11, 16);
artificerTime=new ArtificerTime();
artificerTime.setArtificerId(orders.getArtificerId());
artificerTime.setArtificerDate(date);
artificerTime.setArtificerTime(time);
artificerTime.setClassify(1);
artificerTime.setOrdersId(orders.getParentId());
artificerTime.setCreateTime(DateUtils.format(new Date()));
artificerTimeService.save(artificerTime);
}
}
Orders orders1 = ordersDao.selectById(orders.getParentId());
if(orders1.getAddNum()==null){
orders1.setAddNum(1);
}else{
orders1.setAddNum(orders1.getAddNum()+1);
}
//获取加钟项目的时长
if(orders1.getAddTime()!=null){
orders1.setAddTime(orders1.getAddTime()+orders.getAddTime());
}else{
orders1.setAddTime(orders.getAddTime());
}
if(orders1.getAddMoney()!=null){
orders1.setAddMoney(orders1.getAddMoney().add(orders.getPayMoney()));
orders1.setAddArtificerMoney(orders1.getAddArtificerMoney().add(orders.getArtificerMoney()));
}else{
orders1.setAddMoney(orders.getPayMoney());
orders1.setAddArtificerMoney(orders.getArtificerMoney());
}
orders1.setSumMoney(orders1.getSumMoney().add(orders.getPayMoney()));
orders1.setSumArtificerMoney(orders1.getSumArtificerMoney().add(orders.getArtificerMoney()));
pingMoney=orders1.getSumMoney();
oneUserMoney=BigDecimal.ZERO;
if(oneUser!=null && oneUser.getIsAgency()!=null && oneUser.getIsAgency()==1){
oneUserMoney=pingMoney.multiply(oneUser.getUserRate());
}
oneArtificerMoney=BigDecimal.ZERO;
if(oneArtificerUser!=null && oneArtificerUser.getIsAgency()!=null && oneArtificerUser.getIsAgency()==1){
oneArtificerMoney=pingMoney.multiply(oneArtificerUser.getShopRate());
}
shopMoney=BigDecimal.ZERO;
if(artificerUser.getConsortiaId()!=null){
Consortia consortia = consortiaService.getById(artificerUser.getConsortiaId());
if(consortia!=null && consortia.getUserId()!=null){
UserEntity consortiaUser = userService.getById(consortia.getUserId());
if(consortiaUser!=null){
shopMoney=pingMoney.multiply(consortia.getRate());
}
}
}
pingMoney=pingMoney.subtract(orders1.getSumArtificerMoney());
pingMoney=pingMoney.subtract(oneUserMoney);
pingMoney=pingMoney.subtract(oneArtificerMoney);
pingMoney=pingMoney.subtract(shopMoney);
orders1.setShopMoney(shopMoney);
orders1.setOneUserMoney(oneUserMoney);
orders1.setOneArtificerMoney(oneArtificerMoney);
orders1.setPingMoney(pingMoney);
if(orders1.getStatus().equals(6)){
ordersMassage = ordersMassageService.getOne(new QueryWrapper<OrdersMassage>().eq("orders_id", orders1.getOrdersId()));
massageType = massageTypeService.getById(ordersMassage.getMassageId());
duration=massageType.getDuration();
String endTime = orders1.getEndTime();
Date date = DateUtils.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
calendar=Calendar.getInstance();
if(date.getTime()>System.currentTimeMillis()){
calendar.setTime(date);
}
calendar.add(Calendar.MINUTE,duration);
orders1.setEndTime(endTime);
}
ordersDao.updateById(orders1);
}else{
MessageInfo messageInfo=new MessageInfo();
messageInfo.setState("16");
messageInfo.setTitle("新订单通知");
messageInfo.setUserId("0");
messageInfo.setIsSee("0");
messageService.saveBody(messageInfo);
//电话通知 add 2024-06-20 by caolei
messageService.sendNoticeByCall(artificer.getUserId());
}
ordersService.sendMsg(orders);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(orders.getPayMoney());
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
}else if(payDetails.getType()==2){
//缴纳保证金
Double cashDeposit = payDetails.getMoney();
Long userId = payDetails.getUserId();
userMoneyDao.updateCashDeposit(1, userId, cashDeposit);
UserEntity userEntity = userService.selectUserById(userId);
userEntity.setIsCashDeposit(2);
userService.updateById(userEntity);
//交保证金的记录
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("缴纳保证金");
userMoneyDetails.setContent("已缴纳保证金:"+cashDeposit+"");
// userMoneyDetails.setType(1);
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setMoney(BigDecimal.valueOf(cashDeposit));
userMoneyDetails.setClassify(1);
userMoneyDetails.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
userMoneyDetails.setBlRole(2);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
}else if(payDetails.getType()==3){
PayClassify payClassify = payClassifyService.getById(Long.parseLong(payDetails.getRemark()));
userMoneyDao.updateMayMoney(1, payDetails.getUserId(), payClassify.getMoney().doubleValue());
//查询用户当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(payDetails.getUserId());
//钱包明细需要做调整2条记录充值时钱包类型增加金额现金类型减少金额
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
//插入余额
userMoneyDetails.setBalance(userNowMoney.getMoney());
userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("支付宝充值");
userMoneyDetails.setContent("支付宝花费:"+payClassify.getPrice()+",钱包增加余额:"+payClassify.getMoney());
userMoneyDetails.setManipulateType(2);
userMoneyDetails.setType(1);
userMoneyDetails.setState(2);
userMoneyDetails.setMoney(payClassify.getMoney());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(1);
userMoneyDetailsService.save(userMoneyDetails);
userMoneyDetails.setTitle("支付宝充值");
userMoneyDetails.setContent("支付宝花费:"+payClassify.getPrice());
userMoneyDetails.setMoney(payClassify.getPrice());
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
List<PayClassifyDetail> list = payClassifyDetailService.findList(payClassify.getPayClassifyId());
if(list!=null && list.size()>0){
for(int m=0;m<list.size();m++){
PayClassifyDetail pcd = list.get(m);
Coupon coupon = pcd.getCoupon();
for(int i=0;i<pcd.getGiveNum();i++){
Integer endDate = coupon.getEndDate();
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, endDate);
calendar.add(Calendar.DATE, 1);
Date date = calendar.getTime();
String expirationTime = sdf.format(date);
CouponUser couponUser = new CouponUser();
couponUser.setUserId(payDetails.getUserId());
couponUser.setCouponName(coupon.getCouponName());
couponUser.setCouponPicture(coupon.getCouponPicture());
couponUser.setCreateTime(DateUtils.format(new Date()));
couponUser.setExpirationTime(expirationTime);
couponUser.setMinMoney(coupon.getMinMoney());
couponUser.setMoney(coupon.getMoney());
couponUser.setClassifyId(coupon.getClassifyId());
couponUser.setStatus(0);
couponUserService.save(couponUser);
}
}
}
//用户在充值余额时指定技师ID则充值成功后给指定技师增加业绩入userRecharge表
if(payDetails.getArtificerId()!=null){
UserRecharge o = new UserRecharge();
o.setUserRecharge(payClassify.getPrice());
o.setType("2");
o.setUserId(payDetails.getUserId());
o.setArtificerId(payDetails.getArtificerId());
o.setOrdersId(payDetails.getMassageOrdersId());
o.setCreateTime(DateUtils.format(new Date()));
userRechargeDao.insert(o);
}
}else if(payDetails.getType()==4){
Long couponIssueId = Long.parseLong(payDetails.getRemark());
Long userId=payDetails.getUserId();
CouponIssue couponIssue = couponIssueService.getById(couponIssueId);
String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String[] couponIds = couponIssue.getCouponIds().split(",");
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
userMoneyDetails.setClassify(1);
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setMoney(BigDecimal.valueOf(payDetails.getMoney()));
userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("微信购买优惠券,券包:"+couponIssue.getCouponIssueName());
userMoneyDetails.setContent("购买优惠券费用:"+payDetails.getMoney());
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
for(String couponId:couponIds){
Coupon coupon = couponService.getById(Long.parseLong(couponId));
Integer endDate = coupon.getEndDate();
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, endDate);
calendar.add(Calendar.DATE, 1);
Date date = calendar.getTime();
String expirationTime = simpleDateFormat.format(date);
CouponUser couponUser=new CouponUser();
couponUser.setUserId(userId);
couponUser.setCouponName(coupon.getCouponName());
couponUser.setCouponPicture(coupon.getCouponPicture());
couponUser.setCreateTime(createTime);
couponUser.setExpirationTime(expirationTime);
couponUser.setMinMoney(coupon.getMinMoney());
couponUser.setMoney(coupon.getMoney());
couponUser.setStatus(0);
couponUserService.save(couponUser);
}
couponIssue.setCouponNum(couponIssue.getCouponNum()-1);
couponIssueService.updateById(couponIssue);
}else if(payDetails.getType()==5){
BigDecimal money=BigDecimal.valueOf(payDetails.getMoney());
Long userId=payDetails.getUserId();
VipDetails vipDetails = vipDetailsDao.selectOne(new QueryWrapper<VipDetails>().eq("id", Long.parseLong(payDetails.getRemark())));
//查看用户是否是会员
UserVip userVip = userVipDao.selectOne(new QueryWrapper<UserVip>().eq("user_id", userId));
Calendar cal = Calendar.getInstance();
if(userVip!=null){
Date endDate = null;
try {
endDate = sdf.parse(userVip.getEndTime());
if (endDate != null && System.currentTimeMillis() < (endDate.getTime())) {
cal.setTime(endDate);
}
} catch (Exception e) {
e.getMessage();
}
}else{
userVip=new UserVip();
//设置会员类型
userVip.setVipNameType(vipDetails.getVipNameType());
//设置开通会员的用户id
userVip.setUserId(userId);
//设置会员的购买时间
userVip.setCreateTime(sdf.format(new Date()));
}
MessageInfo messageInfo=new MessageInfo();
UserMoneyDetails userMoneyDetails=new UserMoneyDetails();
userMoneyDetails.setMoney(money);
userMoneyDetails.setUserId(userId);
if ((vipDetails.getVipNameType().equals(0))) {
//
userMoneyDetails.setContent("微信开通月卡会员");
messageInfo.setContent("微信开通月卡会员");
cal.add(Calendar.MONTH, 1);
} else if ((vipDetails.getVipNameType()).equals(1)) {
//
userMoneyDetails.setContent("微信开通季卡会员");
messageInfo.setContent("微信开通季卡会员");
cal.add(Calendar.MONTH, 3);
} else {
//
userMoneyDetails.setContent("微信开通年费会员");
messageInfo.setContent("微信开通年费会员");
cal.add(Calendar.YEAR, 1);
}
userVip.setEndTime(sdf.format(cal.getTime()));
if(userVip.getVipId()!=null){
userVipDao.updateById(userVip);
}else{
userVipDao.insert(userVip);
}
userMoneyDetails.setTitle("开通会员");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
UserEntity userEntity = userService.selectUserById(userId);
messageInfo.setTitle("开通会员");
messageInfo.setState(String.valueOf(4));
messageInfo.setUserName(userEntity.getUserName());
messageInfo.setUserId(String.valueOf(userEntity.getUserId()));
messageInfo.setCreateAt(sdf.format(new Date()));
messageInfo.setIsSee("0");
messageService.saveBody(messageInfo);
if(StringUtil.isNotBlank(userEntity.getClientid())){
userService.pushToSingle(messageInfo.getTitle(),messageInfo.getContent(),userEntity.getClientid());
}
}else if(payDetails.getType()==6){
double money=payDetails.getMoney();
long artificerId = Long.parseLong(payDetails.getRemark());
Artificer artificer = artificerService.getById(artificerId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//用户流水
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setClassify(8);
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setUserId(payDetails.getUserId());
userMoneyDetails.setTitle("微信给技师打赏");
userMoneyDetails.setContent("使用微信给指定技师“"+artificer.getArtificerName()+"”打赏:"+money);
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setMoney(BigDecimal.valueOf(money));
userMoneyDetails.setArtificerId(artificerId);
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(2);
userMoneyDetailsService.save(userMoneyDetails);
//技师流水
UserEntity userEntity = userService.queryByUserId(artificer.getUserId());
userMoneyDao.updateMayMoney(1, userEntity.getUserId(), money);
//查询技师当前余额
UserMoney userNowMoney = userMoneyService.selectUserMoneyByUserId(userEntity.getUserId());
UserMoneyDetails userMoneyDetails2 = new UserMoneyDetails();
//插入余额
userMoneyDetails2.setBalance(userNowMoney.getMoney());
userMoneyDetails2.setManipulateType(2);
userMoneyDetails2.setClassify(8);
userMoneyDetails2.setUserId(userEntity.getUserId());
userMoneyDetails2.setTitle("用户微信打赏");
userMoneyDetails2.setContent("来自用户“"+userEntity.getUserName()+"”微信打赏:"+money);
userMoneyDetails2.setType(1);
userMoneyDetails2.setState(2);
userMoneyDetails2.setMoney(BigDecimal.valueOf(money));
userMoneyDetails2.setCreateTime(sdf.format(new Date()));
userMoneyDetails2.setBlRole(2);
userMoneyDetails2.setBlFlag(1);
userMoneyDetailsService.save(userMoneyDetails2);
}else if(payDetails.getType()==7){
//服务包下单分单
UserPackageOrder orders = userPackageOrderDao.getByNo(out_trade_no);
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setManipulateType(1);
userMoneyDetails.setUserId(orders.getUserId());
userMoneyDetails.setMoney(orders.getPayMoney());
userMoneyDetails.setContent("订单号:" + orders.getOrdersNo() + ",已经下单成功!");
userMoneyDetails.setTitle("支付服务包订单");
userMoneyDetails.setType(2);
userMoneyDetails.setState(2);
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetails.setBlRole(1);
userMoneyDetails.setBlFlag(1);
userMoneyDetailsService.save(userMoneyDetails);
orders.setStatus(2);
orders.setPayWay(payDetails.getClassify());
orders.setPayTime(sdf.format(new Date()));
userPackageOrderDao.updateStatus(orders);
//获取订单-服务包映射关系列表
List<UserPackageOrdersMapping> mappingList = userPackageOrdersMappingService.findListByOrdersId(orders.getOrdersId());
for (UserPackageOrdersMapping ordersPackage : mappingList) {
int quantity = ordersPackage.getNum();
MassagePackage massagePackage = massagePackageService.getById(ordersPackage.getPackageId());
//修改服务包销量
int sales = massagePackage.getSales();
sales = sales+quantity;
massagePackage.setSales(sales);
massagePackageService.updateSales(massagePackage);
for(int i=0;i<quantity;i++){
//拆分插入用户服务包
UserPackage userPackage = new UserPackage();
userPackage.setUserId(orders.getUserId());
userPackage.setPackageId(massagePackage.getId());
userPackage.setOrdersId(orders.getOrdersId());
userPackage.setOrdersNo(orders.getOrdersNo());
userPackage.setCreateTime(sdf.format(new Date()));
userPackage.setTitle(massagePackage.getTitle());
userPackage.setType(massagePackage.getType());
userPackage.setOldPrice(massagePackage.getOldPrice());
userPackage.setPrice(massagePackage.getPrice());
userPackage.setPackageImg(massagePackage.getPackageImg());
userPackage.setContent(massagePackage.getContent());
userPackage.setContentImg(massagePackage.getContentImg());
userPackage.setLabels(massagePackage.getLabels());
userPackage.setCity(massagePackage.getCity());
userPackage.setClassifyId(massagePackage.getClassifyId());
userPackageService.insert(userPackage);
Long mainId = userPackage.getId();
//拆分插入用户服务器项目详情
UserPackageDetail userPackageDetail = new UserPackageDetail();
userPackageDetail.setMainId(ordersPackage.getPackageId());
List<UserPackageDetail> userPackageDetailList = userPackageDetailService.findMassagePackageDetails(userPackageDetail);
if(userPackageDetailList.size()>0){
for(int j=0;j<userPackageDetailList.size();j++){
UserPackageDetail upd = userPackageDetailList.get(j);
upd.setMainId(mainId);
upd.setCreateTime(sdf.format(new Date()));
int serviceCount = upd.getServiceCount();
for(int k=0;k<serviceCount;k++){
userPackageDetailService.insert(upd);
MassageType massageType = massageTypeService.getById(upd.getMassageTypeId());
massageType.setSales(massageType.getSales()+1);
massageTypeService.updateById(massageType);
}
}
}
}
}
}
}
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
} else {
System.err.println("微信手机支付回调成功订单号:" + out_trade_no + "");
}
} catch (Exception e) {
System.err.println("手机支付回调通知失败" + e);
}
}
@Override
public String payBack(String resXml, Integer type) {
WXConfig config = null;
@ -661,12 +1199,20 @@ public class WxServiceImpl implements WxService {
payDetailsDao.updateState(payDetails.getId(), 1, sdf.format(new Date()), "");
if(payDetails.getType()==1){
Orders orders = ordersService.selectOrdersByOrderNo(payDetails.getOrderId());
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
if(orders.getIsSupplement() != null){
if(orders.getIsSupplement() == 2){
orders.setStatus(6);
}else if(orders.getIsSupplement() == 3){
orders.setStatus(2);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}else{
orders.setStatus(9);//用户已支付技师待接单
if(orders.getParentId()!=null && orders.getParentId()!=0){
orders.setStatus(6);
}else{
orders.setStatus(9);//用户已支付技师待接单
}
}
orders.setPayWay(payDetails.getClassify());
orders.setPayTime(sdf.format(new Date()));