wkyuer 4 hónapja
szülő
commit
130f4c0f1b

+ 1 - 1
internal/consts/consts.go

@@ -6,7 +6,7 @@ import (
 )
 
 const (
-	ContextKey = "ContextKey"
+	ContextKey = "UserMsgKey"
 
 	OrderListTableName   = "dataexport_order" //订单表
 	OrderDetailTableName = "jy_order_detail"  //订单明细表

+ 37 - 26
internal/controller/orderHandler.go

@@ -11,6 +11,7 @@ import (
 	"github.com/gogf/gf/v2/net/ghttp"
 	"github.com/gogf/gf/v2/util/gconv"
 	"github.com/pkg/errors"
+	"jyOrderManager/internal/jyutil"
 	"jyOrderManager/internal/logic/order"
 	"jyOrderManager/internal/logic/product"
 	"jyOrderManager/internal/model"
@@ -30,7 +31,8 @@ var checkOrderProduct = func(ctx context.Context, orderCode string, param model.
 	}
 
 	if update { //待审核和已完成订单禁止修改
-		orderDetailRes, err := g.DB().Query(ctx, "SELECT id FROM jy_order_detail WHERE order_code=?", param.OrderCode)
+		var orderDetailRes gdb.Result
+		orderDetailRes, err = g.DB().Query(ctx, "SELECT id FROM jy_order_detail WHERE order_code=?", param.OrderCode)
 		if err != nil || orderDetailRes.IsEmpty() {
 			err = gerror.Wrapf(err, "为查询到订单明细")
 			return
@@ -63,13 +65,14 @@ var checkOrderProduct = func(ctx context.Context, orderCode string, param model.
 		tParam["reqBuySet"] = param.BuySubject       //购买主体
 		tParam["reqCompanyName"] = param.CompanyName //公司名称
 		productCode := gconv.String(tParam["product_code"])
-		pFunc, err := product.JyProFunc.GetProductInitFuncByCode(productCode)
-		if err != nil {
+		pFunc, pErr := product.JyProFunc.GetProductInitFuncByCode(productCode)
+		if pErr != nil {
+			err = gerror.Wrapf(pErr, "获取商品异常")
 			return
 		}
-		pObj, err := pFunc(tParam)
-		if err != nil {
-			err = gerror.Wrap(err, fmt.Sprintf("获取%s商品异常", productCode))
+		pObj, pErr := pFunc(tParam)
+		if pErr != nil {
+			err = gerror.Wrap(pErr, fmt.Sprintf("获取%s商品异常", productCode))
 			return
 		}
 
@@ -84,7 +87,7 @@ var checkOrderProduct = func(ctx context.Context, orderCode string, param model.
 				actProduct[actCode] = map[string]product.JyProduct{productCode: pObj}
 			}
 		}
-		if err = pObj.Check(checkCode); err != nil {
+		if err = pObj.Check(ctx, checkCode); err != nil {
 			return
 		}
 		productArr = append(productArr, pObj)
@@ -99,6 +102,11 @@ var checkOrderProduct = func(ctx context.Context, orderCode string, param model.
 		now := time.Now()
 		for actCode, productList := range actProduct {
 			act := service.Product().GetActivityByCode(actCode)
+			//当前用户是否有权限
+			if !service.Product().PowerCheck(act.Code, jyutil.GetUserDeptIdFromCtx(ctx)) {
+				err = fmt.Errorf("没有创建%s活动的权限", act.Name)
+				return
+			}
 			if act == nil {
 				err = fmt.Errorf("未知活动code %s", actCode)
 				return
@@ -124,7 +132,12 @@ var checkOrderProduct = func(ctx context.Context, orderCode string, param model.
 // SaveOrderHandler 创建订单
 func SaveOrderHandler(r *ghttp.Request) {
 	rData, err := func() (interface{}, error) {
-		var param model.OrderParams
+		var (
+			param     model.OrderParams
+			userName  = r.Session.MustGet("entUserName", "").String()
+			entUserId = r.Session.MustGet("entUserId", "").Int64()
+			ctx       = r.Context()
+		)
 		err := gconv.Struct(r.GetBody(), &param)
 		if err != nil {
 			return nil, gerror.Wrapf(err, "数据校验异常")
@@ -134,17 +147,14 @@ func SaveOrderHandler(r *ghttp.Request) {
 			orderCode  = fmt.Sprintf("%s%s", time.Now().Format("150405"), common.GetRandom(6))
 		)
 		//产品参数校验
-		productArr, _, err = checkOrderProduct(r.Context(), orderCode, param)
+
+		productArr, _, err = checkOrderProduct(ctx, orderCode, param)
 		if err != nil {
 			return nil, err
 		}
 
 		//数据库操作
-		if err := g.DB().Transaction(r.Context(), func(ctx context.Context, tx gdb.TX) error {
-			var (
-				userName  = r.Session.MustGet("entUserName", "").String()
-				entUserId = r.Session.MustGet("entUserId", "").Int64()
-			)
+		if err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
 			//todo 插入订单表
 			if _, err := g.DB().Ctx(ctx).Insert(ctx, "dataexport_order", g.Map{
 				"order_code":            orderCode,
@@ -181,11 +191,11 @@ func SaveOrderHandler(r *ghttp.Request) {
 				return gerror.Wrapf(err, "销售业绩异常")
 			}
 			//todo 合同
-			if err := order.SaveOrUpdateContract(r.Context(), param.OrderCode, param.CompanyName, param.ContractMoney, param.Contract); err != nil {
+			if err := order.SaveOrUpdateContract(ctx, param.OrderCode, param.CompanyName, param.ContractMoney, param.Contract); err != nil {
 				return gerror.Wrapf(err, "合同异常")
 			}
 			//回款计划
-			if err := order.SaveOrUpdateReturnPlant(r.Context(), param.OrderRemark, param.ContractMoney, param.ReturnPlant); err != nil {
+			if err := order.SaveOrUpdateReturnPlant(ctx, param.OrderRemark, param.ContractMoney, param.ReturnPlant); err != nil {
 				return gerror.Wrapf(err, "回款计划异常")
 			}
 			return nil
@@ -203,27 +213,28 @@ func SaveOrderHandler(r *ghttp.Request) {
 // UpdateOrderHandler 订单修改
 func UpdateOrderHandler(r *ghttp.Request) {
 	rData, err := func() (interface{}, error) {
-		var param model.OrderParams
+		var (
+			param     model.OrderParams
+			userName  = r.Session.MustGet("entUserName", "").String()
+			entUserId = r.Session.MustGet("entUserId", "").Int64()
+			ctx       = r.Context()
+		)
 		err := gconv.Struct(r.GetBody(), &param)
 		if err != nil {
 			return nil, gerror.Wrapf(err, "数据校验异常")
 		}
-		orderRes, err := g.DB().GetOne(r.Context(), "SELECT * FROM dataexport_order WHERE order_code=?", param.OrderCode)
+		orderRes, err := g.DB().GetOne(ctx, "SELECT * FROM dataexport_order WHERE order_code=?", param.OrderCode)
 		if err != nil || orderRes.IsEmpty() {
 			err = gerror.Wrapf(err, "未知订单")
 			return nil, err
 		}
 		//产品参数校验
-		productArr, removeIds, err := checkOrderProduct(r.Context(), param.OrderCode, param, orderRes.Map())
+		productArr, removeIds, err := checkOrderProduct(ctx, param.OrderCode, param, orderRes.Map())
 		if err != nil {
 			return nil, err
 		}
 		//数据库操作
-		if err := g.DB().Transaction(r.Context(), func(ctx context.Context, tx gdb.TX) error {
-			var (
-				userName  = r.Session.MustGet("entUserName", "").String()
-				entUserId = r.Session.MustGet("entUserId", "").Int64()
-			)
+		if err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
 			if _, err := g.DB().Ctx(ctx).Update(ctx, "dataexport_order", g.Map{
 				"order_money":           param.OrderMoney,
 				"pay_money":             param.ContractMoney,
@@ -269,11 +280,11 @@ func UpdateOrderHandler(r *ghttp.Request) {
 				}
 			}
 			//todo 合同
-			if err := order.SaveOrUpdateContract(r.Context(), param.OrderCode, param.CompanyName, param.ContractMoney, param.Contract); err != nil {
+			if err := order.SaveOrUpdateContract(ctx, param.OrderCode, param.CompanyName, param.ContractMoney, param.Contract); err != nil {
 				return gerror.Wrapf(err, "合同异常")
 			}
 			//todo 回款计划
-			if err := order.SaveOrUpdateReturnPlant(r.Context(), param.OrderRemark, param.ContractMoney, param.ReturnPlant); err != nil {
+			if err := order.SaveOrUpdateReturnPlant(ctx, param.OrderRemark, param.ContractMoney, param.ReturnPlant); err != nil {
 				return gerror.Wrapf(err, "回款计划异常")
 			}
 			return nil

+ 1 - 1
internal/controller/productHandler.go

@@ -65,7 +65,7 @@ func GetProductPriceHandler(r *ghttp.Request) {
 		if err != nil {
 			return nil, errors.Wrap(err, "获取产品配置异常")
 		}
-		if err = productItem.Check(0); err != nil {
+		if err = productItem.Check(r.Context(), 0); err != nil {
 			return nil, errors.Wrap(err, "参数校验异常")
 		}
 		price, err := productItem.GetPrice()

+ 10 - 2
internal/jyutil/dept.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"github.com/gogf/gf/v2/crypto/gmd5"
+	"github.com/gogf/gf/v2/errors/gerror"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/os/gcron"
 	"github.com/gogf/gf/v2/util/gconv"
@@ -215,6 +216,13 @@ func (mge *DeptManager) GetShowDeptSales(ctx context.Context) []g.Map {
 	return results
 }
 
-func (mge *DeptManager) GetDeptInfoByEntId(ctx context.Context, entId int) (deptId int, deptName, userName string, err error) {
-
+func (mge *DeptManager) GetDeptInfoByEntId(ctx context.Context, entUserId int) (deptId int, deptName, userName string, err error) {
+	res, err := g.DB().GetOne(ctx, "SELECT u.name,d.dept_id FROM jianyu.entniche_user u inner join jianyu.entniche_department_user d on(u.id=d.user_id) WHERE u.id=?", entUserId)
+	if err != nil {
+		return 0, "", "", gerror.Wrapf(err, "获取%d部门异常", entUserId)
+	}
+	deptId = gconv.Int(res.Map()["dept_id"])
+	deptName = mge.getDeptFullName(deptId)
+	userName = gconv.String(res.Map()["name"])
+	return
 }

+ 18 - 0
internal/jyutil/user.go

@@ -10,6 +10,8 @@ import (
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/util/gconv"
 	"github.com/pkg/errors"
+	"jyOrderManager/internal/consts"
+	"jyOrderManager/internal/model"
 	"net/http"
 	"time"
 )
@@ -176,3 +178,19 @@ func PayUserIdentitySwitchRedis(mgoUserId string, data map[string]interface{}) {
 	key := fmt.Sprintf("jy_identitySwitch_%s", mgoUserId)
 	_ = g.Redis("newother").SetEX(ctx, key, data, -1)
 }
+
+func GetUserMsgFromCtx(ctx context.Context) *model.User {
+	if value := ctx.Value(consts.ContextKey); value != nil {
+		if c, ok := value.(*model.User); ok {
+			return c
+		}
+	}
+	return nil
+}
+
+func GetUserDeptIdFromCtx(ctx context.Context) int64 {
+	if u := GetUserMsgFromCtx(ctx); u != nil {
+		return u.EntDeptId
+	}
+	return 0
+}

+ 14 - 6
internal/logic/middleware/middleware.go

@@ -4,6 +4,7 @@ import (
 	//. "app.yhyue.com/moapp/jybase/api"
 	"context"
 	"fmt"
+	"jyOrderManager/internal/consts"
 	"jyOrderManager/internal/jyutil"
 	"jyOrderManager/internal/model"
 	"jyOrderManager/internal/service"
@@ -85,18 +86,25 @@ func (s *sMiddleware) Log(r *ghttp.Request) {
 
 // LoginFilter 登录过滤拦截
 func (s *sMiddleware) LoginFilter(r *ghttp.Request) {
-	var (
-		entId      = r.Session.MustGet("entId", 0).Int64()
-		positionId = r.Session.MustGet("positionId", 0).Int64()
-	)
-	if entId == 0 || positionId == 0 {
+	uMsg := model.User{
+		PositionId: r.Session.MustGet("positionId", 0).Int64(),
+		EntUserId:  r.Session.MustGet("entUserId", 0).Int64(),
+		EntId:      r.Session.MustGet("entId", 0).Int64(),
+		EntDeptId:  r.Session.MustGet("entDeptId", 0).Int64(),
+		EntRole:    r.Session.MustGet("entRole", 0).Int64(),
+		AccountId:  r.Session.MustGet("accountId", 0).Int64(),
+		MgoUserId:  r.Session.MustGet("mgoUserId", 0).String(),
+	}
+
+	if uMsg.EntId == 0 || uMsg.EntUserId == 0 {
 		r.SetError(fmt.Errorf("身份异常"))
 		return
 	}
-	if entId != g.Cfg("global").MustGet(r.Context(), "powerEntId", 25917).Int64() {
+	if uMsg.EntId != g.Cfg("global").MustGet(r.Context(), "powerEntId", 25917).Int64() {
 		r.SetError(fmt.Errorf("非法请求"))
 		return
 	}
+	r.SetCtxVar(consts.ContextKey, &uMsg)
 	r.Middleware.Next()
 }
 

+ 0 - 89
internal/logic/order/order.go

@@ -1,89 +0,0 @@
-package order
-
-import (
-	"context"
-	"jyOrderManager/internal/model"
-)
-
-// SaveOrder 订单保存
-func SaveOrder(ctx context.Context, param model.OrderParams, creatUser string) (string, error) {
-	//var (
-	//	productArr []product.JyProduct
-	//	orderCode  = fmt.Sprintf("%s%s", time.Now().Format("150405"), common.GetRandom(6))
-	//	actProduct = map[string]map[string]product.JyProduct{}
-	//)
-	//for _, tParam := range param.ProductArr {
-	//	//参数注入
-	//	tParam["phone"] = param.PersonPhone          //开通手机号
-	//	tParam["order_code"] = orderCode             //订单号
-	//	tParam["reqBuySet"] = param.BuySubject       //购买主体
-	//	tParam["reqCompanyName"] = param.CompanyName //公司名称
-	//	productCode := gconv.String(tParam["product_code"])
-	//	pFunc, err := product.JyProFunc.GetProductInitFuncByCode(productCode)
-	//	if err != nil {
-	//		return "", err
-	//	}
-	//	pObj, err := pFunc(tParam)
-	//	if err != nil {
-	//		return "", gerror.Wrap(err, fmt.Sprintf("获取%s商品异常", productCode))
-	//	}
-	//
-	//	var (
-	//		actCode   = gconv.String(tParam["activityCode"]) //活动code
-	//		checkCode = common.If(actCode != "", 2, 1).(int) //1:普通商品 2:活动商品
-	//	)
-	//	if actCode != "" {
-	//		if _, ok := actProduct[actCode]; ok {
-	//			actProduct[actCode][productCode] = pObj
-	//		} else {
-	//			actProduct[actCode] = map[string]product.JyProduct{productCode: pObj}
-	//		}
-	//	}
-	//
-	//	if err := pObj.Check(checkCode); err != nil {
-	//		return "", err
-	//	}
-	//
-	//	productArr = append(productArr, pObj)
-	//}
-	//
-	//// 活动商品校验完整,防止缺少增加商品
-	//if len(actProduct) > 0 {
-	//	now := time.Now()
-	//	for actCode, productList := range actProduct {
-	//		act := service.Product().GetActivityByCode(actCode)
-	//		if act == nil {
-	//			return "", fmt.Errorf("未知活动code %s", actCode)
-	//		}
-	//		if now.After(act.EndTime) || now.Before(act.StartTime) {
-	//			return "", fmt.Errorf("活动%s不在有效期", actCode)
-	//		}
-	//		if len(productList) != len(act.Products) {
-	//			return "", fmt.Errorf("活动产品不完整 %s", actCode)
-	//		}
-	//	}
-	//}
-	//
-	////数据库操作
-	//return orderCode, g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
-	//	//todo 插入订单表
-	//	if _, err := g.DB().Ctx(ctx).Insert(ctx, "dataexport_order", g.Map{
-	//		"order_code":    orderCode,
-	//		"order_money":   param.OrderMoney,
-	//		"pay_money":     param.ContractMoney,
-	//		"product_type":  "组合商品",
-	//		"create_person": "xxxx",
-	//	}); err != nil {
-	//		return gerror.Wrap(err, "插入订单表异常")
-	//	}
-	//	//todo 订单详情表
-	//	for _, p := range productArr {
-	//		if err := p.SaveUpdate(ctx); err != nil {
-	//			return err
-	//		}
-	//	}
-	//	//todo 销售业绩
-	//	SaveOrUpdateSaleMoneyTmp(ctx, orderCode)
-	//	return nil
-	//})
-}

+ 3 - 3
internal/logic/product/bigmember/bigmember.go

@@ -46,7 +46,7 @@ func NewBigProduct(reqParam map[string]interface{}, detailId ...int64) (product.
 	}, nil
 }
 
-func (p jyBigProduct) Check(t int) error {
+func (p jyBigProduct) Check(ctx context.Context, t int) error {
 	if p.param.BuySubject == 1 {
 		if !ExistProcessOrder(p.param.Phone) { //校验是否存在未开通的权益
 			return errors.New("个人身份存在未生效的产品订单")
@@ -135,7 +135,7 @@ func (p jyBigProduct) SaveUpdate(ctx context.Context) error {
 		oldFilter *model.JyBigProductFilter
 		err       error
 	)
-	if err = p.Check(1); err != nil {
+	if err = p.Check(ctx, 1); err != nil {
 		log.Println(err)
 		return err
 	}
@@ -178,7 +178,7 @@ func (p jyBigProduct) SaveUpdate(ctx context.Context) error {
 }
 
 func (p jyBigProduct) OpenService(ctx context.Context) error {
-	if err := p.Check(1); err != nil {
+	if err := p.Check(ctx, 1); err != nil {
 		log.Println("参数校验异常")
 		return err
 	}

+ 2 - 1
internal/logic/product/dataPack/check.go

@@ -1,12 +1,13 @@
 package dataPack
 
 import (
+	"context"
 	"fmt"
 	"github.com/pkg/errors"
 	"jyOrderManager/internal/service"
 )
 
-func (p jyDataPackProduct) Check(t int) error {
+func (p jyDataPackProduct) Check(ctx context.Context, t int) error {
 	if p.OrderDetail.ProductCode == "" {
 		return errors.New("缺少商品code")
 	}

+ 42 - 4
internal/logic/product/jyProductInterface.go

@@ -4,6 +4,10 @@ import (
 	"context"
 	"fmt"
 	"github.com/gogf/gf/v2/util/gconv"
+	"github.com/pkg/errors"
+	"jyOrderManager/internal/jyutil"
+	"jyOrderManager/internal/model"
+	"jyOrderManager/internal/service"
 
 	"unicode"
 )
@@ -17,10 +21,10 @@ type (
 	ProductInitFunc func(reqMap map[string]interface{}, orderDetailId ...int64) (JyProduct, error)
 
 	JyProduct interface {
-		Check(int) error                       //参数校验 0:获取价格校验 1:数据保存校验 2:活动数据保存(活动不校验购买内容)
-		GetPrice() (int64, error)              //查询价格
-		SaveUpdate(ctx context.Context) error  //保存更新
-		OpenService(ctx context.Context) error //开通服务
+		Check(context.Context, int) error  //参数校验 0:获取价格校验 1:数据保存校验 2:活动数据保存(活动不校验购买内容)
+		GetPrice() (int64, error)          //查询价格
+		SaveUpdate(context.Context) error  //保存更新
+		OpenService(context.Context) error //开通服务
 	}
 	jyProductFuncMapping struct {
 		initFuncMapping map[string]ProductInitFunc
@@ -61,3 +65,37 @@ func (t *jyProductFuncMapping) GetProductInitFuncByCode(code interface{}) (Produ
 func (t *jyProductFuncMapping) MustGetProductInitFuncByCode(code interface{}) ProductInitFunc {
 	return t.initFuncMapping[getOnlyProductClassCode(gconv.String(code))]
 }
+
+func GetProductMsgAndCheckPower(ctx context.Context, pCode string, paramCheck ...model.ProductCommonCheck) (*model.Product, *model.ProductClass, error) {
+	productItem, err := service.Product().GetProduct(pCode)
+	if err != nil {
+		return nil, nil, errors.Wrap(err, "未知商品")
+	}
+	//当前用户是否有权限创建改商品
+	if !service.Product().PowerCheck(productItem.Code, jyutil.GetUserDeptIdFromCtx(ctx)) {
+		return nil, nil, fmt.Errorf("没有创建%s商品的权限", productItem.Name)
+	}
+
+	productClass, err := service.Product().GetProductClass(productItem.ProductClassId)
+	if err != nil {
+		return nil, nil, errors.Wrap(err, "未知商品类型")
+	}
+
+	if len(paramCheck) > 0 {
+		p := paramCheck[0]
+		if !(p.Tactics == 1 || p.Tactics == 2) {
+			return nil, nil, fmt.Errorf("超级订阅-参数异常")
+		}
+
+		if productClass.Tactics != 3 && productClass.Tactics != p.Tactics {
+			return nil, nil, errors.Wrap(err, "超级订阅-销售策略异常")
+		}
+
+		//购买主体异常
+		if (productClass.BuySet > 0 && productClass.BuySet != 3) && productClass.BuySet != p.BuySet {
+			return nil, nil, errors.Wrap(err, "超级订阅-购买主体异常")
+		}
+	}
+
+	return productItem, productClass, nil
+}

+ 2 - 1
internal/logic/product/otherProduct/check.go

@@ -1,11 +1,12 @@
 package otherProduct
 
 import (
+	"context"
 	"github.com/pkg/errors"
 	"jyOrderManager/internal/service"
 )
 
-func (p jyOtherProduct) Check(t int) error { //参数校验 0:获取价格校验 1:数据保存校验
+func (p jyOtherProduct) Check(ctx context.Context, t int) error { //参数校验 0:获取价格校验 1:数据保存校验
 	if t == 0 {
 		return nil
 	}

+ 9 - 20
internal/logic/product/subvip/check.go

@@ -1,13 +1,17 @@
 package subvip
 
 import (
+	"context"
 	"fmt"
+	"github.com/gogf/gf/v2/errors/gerror"
+	"github.com/gogf/gf/v2/frame/g"
 	"github.com/pkg/errors"
-	"jyOrderManager/internal/service"
+	"jyOrderManager/internal/logic/product"
+	"jyOrderManager/internal/model"
 )
 
 // Check 参数校验 0获取价格 1订单提交
-func (p jySubVipProduct) Check(t int) error {
+func (p jySubVipProduct) Check(ctx context.Context, t int) error {
 
 	if p.OrderDetail.ProductCode == "" {
 		return errors.New("超级订阅-缺少商品code")
@@ -30,26 +34,10 @@ func (p jySubVipProduct) Check(t int) error {
 	}
 
 	if t == 1 || t == 2 { //订单报错校验
-		if !(p.OrderDetail.Tactics == 1 || p.OrderDetail.Tactics == 2) {
-			return fmt.Errorf("超级订阅-参数异常")
-		}
 
-		productItem, err := service.Product().GetProduct(p.OrderDetail.ProductCode)
-		if err != nil {
-			return errors.Wrap(err, "超级订阅-未知商品")
-		}
-		productClass, err := service.Product().GetProductClass(productItem.ProductClassId)
+		productItem, productClass, err := product.GetProductMsgAndCheckPower(ctx, p.OrderDetail.ProductCode, model.ProductCommonCheck{})
 		if err != nil {
-			return errors.Wrap(err, "超级订阅-未知商品类型")
-		}
-
-		if productClass.Tactics != 3 && productClass.Tactics != p.OrderDetail.Tactics {
-			return errors.Wrap(err, "超级订阅-销售策略异常")
-		}
-
-		//购买主体异常
-		if (productClass.BuySet > 0 && productClass.BuySet != 3) && productClass.BuySet != p.OrderDetail.ReqBuySet {
-			return errors.Wrap(err, "超级订阅-购买主体异常")
+			return gerror.Wrapf(err, "超级订阅创建订单异常")
 		}
 
 		m, err := p.GetPrice()
@@ -60,6 +48,7 @@ func (p jySubVipProduct) Check(t int) error {
 			return fmt.Errorf("超级订阅- 金额校验异常 %s  %d!=%d", p.OrderDetail.ProductCode, p.OrderDetail.OriginalPrice, m)
 		}
 
+		g.Dump(productItem, productClass)
 		//校验会员状态
 		if t == 1 {
 			//mgoId, baseUserId, entId, entUserId := jyutil.GetUserFullId(p.OrderDetail.Phone, p.OrderDetail.ReqCompanyName)

+ 4 - 0
internal/logic/productManager/productManager.go

@@ -156,3 +156,7 @@ func (p *sProductManager) GetProductClass(classId int64) (*model.ProductClass, e
 	}
 	return productClass, nil
 }
+
+func (p *sProductManager) PowerCheck(pCode string, deptId int64) bool {
+	return false
+}

+ 4 - 0
internal/model/product.go

@@ -53,3 +53,7 @@ type (
 		Filter       interface{} `json:"filter"`       //预设参数
 	}
 )
+
+type ProductCommonCheck struct {
+	Tactics, BuySet int
+}

+ 11 - 0
internal/model/user.go

@@ -0,0 +1,11 @@
+package model
+
+type User struct {
+	PositionId int64 //职位id
+	EntUserId  int64 //企业用户id
+	EntId      int64 //企业id
+	EntDeptId  int64 //部门id
+	EntRole    int64
+	AccountId  int64
+	MgoUserId  string
+}

+ 3 - 0
internal/service/producttManager.go

@@ -19,6 +19,9 @@ type (
 		//
 		GetActivityList(buySet ...int) []*model.ActivityClass //获取活动列表
 		GetActivityByCode(code string) *model.ActivityClass   //获取活动
+
+		//是否有权限创建订单或活动
+		PowerCheck(code string, deptId int64) bool
 	}
 )