|
|
@ -1,10 +1,14 @@ |
|
|
|
package org.jeecg.modules.apiService.impl; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
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.apiService.VipService; |
|
|
|
import org.jeecg.modules.employVipRecord.entity.EmployVipRecord; |
|
|
|
import org.jeecg.modules.employVipRecord.service.IEmployVipRecordService; |
|
|
|
import org.jeecg.modules.employVipType.entity.EmployVipType; |
|
|
|
import org.jeecg.modules.employVipType.service.IEmployVipTypeService; |
|
|
|
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; |
|
|
@ -15,6 +19,7 @@ import org.springframework.stereotype.Service; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
public class VipServiceImpl implements VipService { |
|
|
|
|
|
|
@ -26,9 +31,13 @@ public class VipServiceImpl implements VipService { |
|
|
|
@Resource |
|
|
|
private ShiroRealm shiroRealm; |
|
|
|
|
|
|
|
//权限验证 |
|
|
|
//会员类型 |
|
|
|
@Resource |
|
|
|
private IEmployVipTypeService employVipTypeService; |
|
|
|
|
|
|
|
//会员订单记录 |
|
|
|
@Resource |
|
|
|
private IEmployVipRecordService employVipRecordService; |
|
|
|
/******************************************************************************************************************/ |
|
|
|
|
|
|
|
@Override |
|
|
@ -37,34 +46,62 @@ public class VipServiceImpl implements VipService { |
|
|
|
//权限验证 |
|
|
|
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); |
|
|
|
|
|
|
|
//生成订单信息 |
|
|
|
EmployVipRecord vipRecord = new EmployVipRecord(); |
|
|
|
String payNo = IdWorker.getIdStr();//生成订单号 |
|
|
|
vipRecord.setPayNo(payNo);//订单号 |
|
|
|
vipRecord.setUserId(hanHaiMember.getId());//关联用户id |
|
|
|
vipRecord.setVipTypeId(vipTypeId);//会员类型id |
|
|
|
|
|
|
|
//根据会员类型查询会员名称 |
|
|
|
EmployVipType vipType = employVipTypeService |
|
|
|
.lambdaQuery() |
|
|
|
.eq(EmployVipType::getId, vipTypeId) |
|
|
|
.one(); |
|
|
|
|
|
|
|
//吊起微信支付 |
|
|
|
BigDecimal price = vipType.getPrice();//价格 |
|
|
|
String productName = vipType.getName();//vip类型 |
|
|
|
|
|
|
|
String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ productName , |
|
|
|
"127.0.0.1", |
|
|
|
payNo, |
|
|
|
i1, |
|
|
|
payNo, |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
vipRecord.toString()); |
|
|
|
|
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
try{ |
|
|
|
//生成订单信息 |
|
|
|
EmployVipRecord vipRecord = new EmployVipRecord(); |
|
|
|
String payNo = IdWorker.getIdStr();//生成订单号 |
|
|
|
vipRecord.setPayNo(payNo);//订单号 |
|
|
|
vipRecord.setUserId(hanHaiMember.getId());//关联用户id |
|
|
|
vipRecord.setVipTypeId(vipTypeId);//会员类型id |
|
|
|
|
|
|
|
//添加订单记录 |
|
|
|
employVipRecordService.save(vipRecord); |
|
|
|
|
|
|
|
//根据会员类型查询会员名称 |
|
|
|
EmployVipType vipType = employVipTypeService |
|
|
|
.lambdaQuery() |
|
|
|
.eq(EmployVipType::getId, vipTypeId) |
|
|
|
.one(); |
|
|
|
|
|
|
|
//吊起微信支付 |
|
|
|
BigDecimal price = vipType.getPrice();//价格 |
|
|
|
String productName = vipType.getName();//vip类型 |
|
|
|
|
|
|
|
String s = price.multiply(new BigDecimal(100)).toString(); |
|
|
|
int i1 = Double.valueOf(s).intValue(); |
|
|
|
Object appOrder = mpWxPayService.createOrder( |
|
|
|
"购买"+ productName , |
|
|
|
"127.0.0.1", |
|
|
|
payNo, |
|
|
|
i1, |
|
|
|
payNo, |
|
|
|
hanHaiMember.getAppletOpenid(), |
|
|
|
vipRecord.toString()); |
|
|
|
|
|
|
|
return Result.OK("支付成功",appOrder); |
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
return Result.error("开通vip失败"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//开通vip-支付回调 |
|
|
|
public Result<?> payNotify(String requestBody){ |
|
|
|
WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); |
|
|
|
String outTradeNo = notify.getOutTradeNo(); |
|
|
|
log.info("支付回调订单号码:"+outTradeNo); |
|
|
|
//查询订单信息 |
|
|
|
EmployVipRecord vipRecord = employVipRecordService.getById(outTradeNo); |
|
|
|
//如果订单存在则修改订单状态 |
|
|
|
if (vipRecord!=null){ |
|
|
|
if("0".equals(vipRecord.getStatus())){ |
|
|
|
vipRecord.setStatus("1"); |
|
|
|
} |
|
|
|
employVipRecordService.updateById(vipRecord); |
|
|
|
} |
|
|
|
|
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |