wkyuer 4 meses atrás
pai
commit
07cd249494

+ 1 - 1
internal/jyutil/user.go

@@ -40,7 +40,7 @@ func GetCreateUserData(phone, companyName string, isEntSign bool) (data map[stri
 			},
 			"s_regsource": "qmx_admin",
 		})
-		if id != "" {
+		if id == "" {
 			return nil, 0, 0, fmt.Errorf("创建用户失败")
 		}
 		ck := &http.Cookie{}

+ 0 - 0
internal/jyutil/commfunc.go → internal/jyutil/zcommfunc.go


+ 2 - 2
internal/logic/product/subvip/check.go

@@ -16,11 +16,11 @@ func (p jySubVipProduct) Check(t int) error {
 		return errors.New("缺少开通手机号")
 	}
 
-	if !(p.OrderDetail.RecordPayType == 1 || p.OrderDetail.RecordPayType == 2 || p.OrderDetail.RecordPayType == 3) {
+	if !(p.OrderDetail.ServiceType == 1 || p.OrderDetail.ServiceType == 2 || p.OrderDetail.ServiceType == 3) {
 		return errors.New("未知商品支付操作")
 	}
 
-	if (p.OrderDetail.RecordPayType == 2 || p.OrderDetail.RecordPayType == 3) && p.OrderDetail.LinkedOrderId <= 0 {
+	if (p.OrderDetail.ServiceType == 2 || p.OrderDetail.ServiceType == 3) && p.OrderDetail.LinkedOrderId <= 0 {
 		return errors.New("缺少关联订单")
 	}
 

+ 1 - 1
internal/logic/product/subvip/price.go

@@ -19,7 +19,7 @@ type priceSetting struct {
 }
 
 func (p jySubVipProduct) GetPrice() (price int64, err error) {
-	switch p.OrderDetail.RecordPayType {
+	switch p.OrderDetail.ServiceType {
 	case 1, 4: //购买、试用
 		sVal, err := service.Product().GetPriceConfig(p.OrderDetail.ProductCode)
 		if err != nil {

+ 11 - 7
internal/logic/product/subvip/service.go

@@ -23,21 +23,23 @@ func (p jySubVipProduct) OpenService(ctx context.Context) error {
 	var (
 		buySubject = gconv.Int(record["buy_subject"])
 
-		doType                   = p.OrderDetail.RecordPayType
+		doType                   = p.OrderDetail.ServiceType
 		filter                   = p.OrderDetail.Filter
 		vipStartTime, vipEndTime time.Time
+		updateUserId             string
 	)
 
 	switch buySubject {
 	case 1: //个人
 		uData, _, _, err := jyutil.GetCreateUserData(p.OrderDetail.Phone, "", false)
 		if err != nil {
-			return fmt.Errorf("个人超级订阅开通服务出错:entUserId参数异常")
+			return errors.Wrap(err, "个人超级订阅开通服务出错:获取创建开通账户异常")
 		}
 		var (
 			mgoUid  = mongodb.BsonIdToSId(uData["_id"])
 			setting = map[string]interface{}{}
 		)
+		updateUserId = mgoUid
 		switch doType {
 		case 1, 4: //购买,试用
 			vipStartTime, vipEndTime = utility.GetStartAndEndTime(time.Now(), utility.DateComp{
@@ -48,11 +50,11 @@ func (p jySubVipProduct) OpenService(ctx context.Context) error {
 				Unit: filter.GiftType,
 			})
 			setting = map[string]interface{}{
-				"o_vipjy.i_trial": -1, //已激活试用
-				"o_vipjy.o_area":  -1, //设置地区
+				"o_vipjy.i_trial": -1,                       //已激活试用
+				"o_vipjy.o_area":  map[string]interface{}{}, //设置地区
 				"o_vipjy.o_buyset": g.Map{
 					"upgrade":         1,
-					"areacount":       -1,
+					"areacount":       filter.FinalAccountCount,
 					"newcitys":        []int{},
 					"buyerclasscount": -1,
 				}, //购买内容 城市、省份、行业数量
@@ -105,6 +107,7 @@ func (p jySubVipProduct) OpenService(ctx context.Context) error {
 		if identity.EntUserId <= 0 {
 			return fmt.Errorf("企业超级订阅开通服务出错:entUserId参数异常")
 		}
+		updateUserId = fmt.Sprint(identity.PositionId)
 		if doType == 1 || doType == 4 { //新购
 			vipStartTime, vipEndTime := utility.GetStartAndEndTime(time.Now(), utility.DateComp{
 				Num:  filter.BuyCycle,
@@ -161,9 +164,10 @@ func (p jySubVipProduct) OpenService(ctx context.Context) error {
 	_, err = g.DB().Update(ctx, consts.OrderDetailTableName, g.Map{
 		"service_starttime": vipStartTime.Format(time.DateTime),
 		"service_endtime":   vipEndTime.Format(time.DateTime),
+		"open_service_time": time.Now().Format(time.DateTime),
+		"user_id":           updateUserId,
 		"is_service_open":   1,
-	}, "")
-
+	}, "id=?", p.OrderDetail.Id)
 	return nil
 }
 

+ 11 - 5
internal/logic/product/subvip/subvip.go

@@ -39,7 +39,7 @@ func NewSubVipProduct(reqParam map[string]interface{}, detailIdParam ...int64) (
 		if err != nil {
 			return nil, errors.Wrap(err, "未知订单详情id")
 		}
-		if err := record.Struct(p); err != nil {
+		if err := record.Struct(&p); err != nil {
 			return nil, err
 		}
 	}
@@ -57,9 +57,10 @@ func (p jySubVipProduct) SaveUpdate(ctx context.Context) error {
 			"phone":            p.OrderDetail.Phone,
 			"original_price":   p.OrderDetail.OriginalPrice,
 			"final_price":      p.OrderDetail.Amount,
-			"product_id":       p.OrderDetail.ProductCode,
+			"product_code":     p.OrderDetail.ProductCode,
 			"tactics":          p.OrderDetail.Tactics,
 			"linked_detail_id": p.OrderDetail.LinkedOrderId,
+			"service_type":     p.OrderDetail.ServiceType,
 		}
 
 		filter    = p.OrderDetail.Filter
@@ -67,14 +68,19 @@ func (p jySubVipProduct) SaveUpdate(ctx context.Context) error {
 		err       error
 	)
 	filter.FinalAccountCount = 1 + filter.BuyAccountCount + filter.GiftAccountCount
-
-	if p.OrderDetail.RecordPayType == 2 || p.OrderDetail.RecordPayType == 3 { //获取
+	if p.OrderDetail.ServiceType == 1 || p.OrderDetail.ServiceType == 4 {
+		productItem, err := service.Product().GetProduct(p.OrderDetail.ProductCode)
+		if err != nil {
+			return errors.Wrap(err, "获取产品异常")
+		}
+		filter.FinalAreaCount = productItem.UnitNum
+	} else if p.OrderDetail.ServiceType == 2 || p.OrderDetail.ServiceType == 3 { //获取
 		oldFilter, _, _, err = getLinkFilter(ctx, p.OrderDetail.LinkedOrderId)
 		if err != nil {
 			return err
 		}
 		filter.FinalAccountCount = oldFilter.FinalAccountCount
-		if p.OrderDetail.RecordPayType == 2 {
+		if p.OrderDetail.ServiceType == 2 {
 			filter.FinalAreaCount = oldFilter.FinalAreaCount
 		} else {
 			sVal, err := service.Product().GetProduct(p.OrderDetail.ProductCode)

+ 1 - 1
internal/model/orderParams.go

@@ -98,7 +98,7 @@ type (
 	//	OrderCode          string `json:"orderCode"`
 	//	ProductType        string `json:"productType,omitempty"`                        //产品类型
 	//	BillingMode        int    `json:"billingMode"`                                  //策略 购买 赠送
-	//	RecordPayType      int    `form:"recordPayType" json:"recordPayType,omitempty"` //付费类型 购买 续费 升级 试用
+	//	ServiceType      int    `form:"recordPayType" json:"recordPayType,omitempty"` //付费类型 购买 续费 升级 试用
 	//	ZeroOrderType      string `json:"zeroOrderType"`                                //0原订单类型
 	//	LinkedOrderId      string `json:"linkedOrderId,omitempty"`                      //关联订单明细id
 	//	SPayAccountNumber  int    `json:"sPayAccountNumber"`                            //子账号付费数量

+ 5 - 5
internal/model/subvip.go

@@ -3,11 +3,11 @@ package model
 type (
 	SubVipParams struct {
 		*ProductCommonParam
-		ProductType       string `json:"product_type,omitempty"`                        //产品类型
-		RecordPayType     int    `form:"record_payType" json:"recordPayType,omitempty"` //付费类型 1:购买 2:续费 3:升级 4:试用
-		LinkedOrderId     int64  `json:"linked_orderId,omitempty"`                      //关联订单明细id
-		PaybackOpenServer bool   `json:"paybackOpenServer,omitempty"`                   //是否全额回款开通
-		PayMoney          int    `form:"payMoney" json:"payMoney,omitempty"`            //合同金额
+		ProductType       string `json:"product_type,omitempty"`             //产品类型
+		ServiceType       int    ` json:"service_type,omitempty"`            //付费类型 1:购买 2:续费 3:升级 4:试用
+		LinkedOrderId     int64  `json:"linked_orderId,omitempty"`           //关联订单明细id
+		PaybackOpenServer bool   `json:"paybackOpenServer,omitempty"`        //是否全额回款开通
+		PayMoney          int    `form:"payMoney" json:"payMoney,omitempty"` //合同金额
 		//SPayAccountNumber  int                   `json:"sPayAccountNumber"`  //子账号付费数量
 		//SGiftAccountNumber int                   `json:"sGiftAccountNumber"` //子账号赠送数量
 		//PayCycle           int                   `json:"payCycle"`           //付费购买周期

+ 9 - 0
main.go

@@ -9,5 +9,14 @@ import (
 )
 
 func main() {
+	//pFunc, err := product.JyProFunc.GetProductInitFuncByCode("cjdy003")
+	//if err != nil {
+	//	log.Panic(err)
+	//}
+	//pObj, err := pFunc(nil, 187471)
+	//err = pObj.OpenService(context.Background())
+	//if err != nil {
+	//	panic(err)
+	//}
 	cmd.Main.Run(gctx.GetInitCtx())
 }

+ 4 - 4
utility/dateUtil.go

@@ -6,7 +6,7 @@ import (
 
 type DateComp struct {
 	Num  int
-	Unit int // 1-天 2-月 3-季 4-年
+	Unit int // 1-天 2-月 3-年 4-季
 }
 
 func GetStartAndEndTime(s time.Time, d ...DateComp) (st, et time.Time) {
@@ -21,13 +21,13 @@ func GetStartAndEndTime(s time.Time, d ...DateComp) (st, et time.Time) {
 	for _, comp := range d {
 		if comp.Num > 0 {
 			switch comp.Unit {
-			case 1:
+			case 1: //天
 				et = et.AddDate(0, 0, comp.Num)
 			case 2:
 				et = et.AddDate(0, comp.Num, 0)
-			case 3:
-				et = et.AddDate(0, comp.Num*3, 0)
 			case 4:
+				et = et.AddDate(0, comp.Num*3, 0)
+			case 3:
 				et = et.AddDate(comp.Num, 0, 0)
 			}
 		}