|
@@ -1,12 +1,17 @@
|
|
|
package subvip
|
|
|
|
|
|
import (
|
|
|
+ "app.yhyue.com/moapp/jybase/mongodb"
|
|
|
"context"
|
|
|
"fmt"
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
|
+ "github.com/gogf/gf/v2/frame/g"
|
|
|
+ "github.com/gogf/gf/v2/util/gconv"
|
|
|
"github.com/pkg/errors"
|
|
|
+ "jyOrderManager/internal/jyutil"
|
|
|
"jyOrderManager/internal/logic/product"
|
|
|
"jyOrderManager/internal/model"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
// Check 参数校验 0获取价格 1订单提交
|
|
@@ -50,21 +55,54 @@ func (p jySubVipProduct) Check(ctx context.Context, t int) error {
|
|
|
}
|
|
|
fmt.Println(productItem, productClass)
|
|
|
//g.Dump(productItem, productClass)
|
|
|
- //校验会员状态
|
|
|
+ //校验是否满足创建订单
|
|
|
if t == 1 {
|
|
|
- //mgoId, baseUserId, entId, entUserId := jyutil.GetUserFullId(p.OrderDetail.Phone, p.OrderDetail.ReqCompanyName)
|
|
|
- //if baseUserId == 0 && (p.OrderDetail.ServiceType == 2 || p.OrderDetail.ServiceType == 3) { //续费升级
|
|
|
- // return fmt.Errorf("超级订阅-当前账户不支持此操作")
|
|
|
- //}
|
|
|
- //
|
|
|
- //switch p.OrderDetail.ReqBuySet {
|
|
|
- //case 1: //个人
|
|
|
- // jyutil.Middleground.UserCenter.IdentityByUserId(baseUserId)
|
|
|
- //case 2: //企业
|
|
|
- // jyutil.Middleground.UserCenter.IdentityByEntUserId(entUserId)
|
|
|
- //}
|
|
|
- //
|
|
|
- //p := jyutil.Middleground.PowerCheckCenter.Check("10000", mgoId,baseUserId)
|
|
|
+ uData, entId, _, err := jyutil.GetCreateUserData(p.OrderDetail.Phone, p.OrderDetail.ReqCompanyName, false)
|
|
|
+ if err != nil {
|
|
|
+ return gerror.Wrapf(err, "查询账户状态异常")
|
|
|
+ }
|
|
|
+ switch p.OrderDetail.ReqSubject {
|
|
|
+ case 1: //个人
|
|
|
+ if p.OrderDetail.ServiceType == 1 || p.OrderDetail.ServiceType == 4 { //校验是否有待生效的订单
|
|
|
+ num, err := g.DB().GetCount(ctx, "SELECT COUNT(*) FROM dataexport_order d inner join jy_order_detail jyd on(d.order_code=jyd.order_code) WHERE d.user_phone=? and jyd.product_type= 'VIP订阅' and (jyd.vip_type=0 or jyd.vip_type=3)", p.OrderDetail.Phone)
|
|
|
+ if err != nil {
|
|
|
+ return gerror.Wrapf(err, "查询账户订单信息异常")
|
|
|
+ }
|
|
|
+ if num > 0 {
|
|
|
+ return errors.New("已存在同类型订单")
|
|
|
+ }
|
|
|
+ } else { //关联id是否存在
|
|
|
+ num, err := g.DB().GetCount(ctx, "SELECT COUNT(*) FROM jy_order_detail WHERE status =1 and is_service_open=1 and product_type ='VIP订阅' and d.linked_detail_id=? and service_endtime>? ", p.OrderDetail.LinkedOrderId, time.Now().Format(time.DateTime))
|
|
|
+ if err != nil {
|
|
|
+ return gerror.Wrapf(err, "查询账户权益信息异常")
|
|
|
+ }
|
|
|
+ if num == 0 {
|
|
|
+ return errors.New("当前账户不支持当前操作")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ uMap := jyutil.Compatible.Select(mongodb.BsonIdToSId(uData["_id"]), `{"i_vip_status":1,"i_member_status":1,"s_m_phone":1,"s_phone":1,"l_vip_starttime":1}`)
|
|
|
+ if uMap == nil {
|
|
|
+ return errors.New("获取用户会员状态异常")
|
|
|
+ }
|
|
|
+ var (
|
|
|
+ i_vip_status = gconv.Int((*uMap)["i_vip_status"])
|
|
|
+ )
|
|
|
+ if ((p.OrderDetail.ServiceType == 1 || p.OrderDetail.ServiceType == 4) && i_vip_status > 0) || //已经是会员重复购买
|
|
|
+ (p.OrderDetail.ServiceType == 2 || p.OrderDetail.ServiceType == 3) || i_vip_status <= 0 { //不是会员,续费升级
|
|
|
+ return errors.New("当前账户不支持当前操作")
|
|
|
+ }
|
|
|
+ case 2: //企业
|
|
|
+ //校验当前套餐内容是否满足升级续费
|
|
|
+ if p.OrderDetail.ServiceType == 3 || p.OrderDetail.ServiceType == 5 {
|
|
|
+ num, err := g.DB().GetCount(ctx, "SELECT COUNT(*) FROM jy_order_detail d inner join entniche_order eo (on d.id =eo.order_detail_id) inner join entniche_wait_empower ewe on(eo.wait_empower_id=ewe.id ) WHERE d.status =1 and d.is_service_open=1 and d.product_type ='VIP订阅' and d.linked_detail_id=? and ewe.ent_id=? and end_time>?", p.OrderDetail.LinkedOrderId, entId, time.Now().Format(time.DateTime))
|
|
|
+ if err != nil {
|
|
|
+ return gerror.Wrapf(err, "查询账户权益信息异常")
|
|
|
+ }
|
|
|
+ if num == 0 {
|
|
|
+ return errors.New("当前账户不支持当前操作")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return nil
|