wangchuanjin 2 hónapja
szülő
commit
a7c929037c
1 módosított fájl, 83 hozzáadás és 30 törlés
  1. 83 30
      openPower/openPower.go

+ 83 - 30
openPower/openPower.go

@@ -13,6 +13,7 @@ import (
 	upb "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
 	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
 	"context"
+	"database/sql"
 	"encoding/json"
 	"flag"
 	"fmt"
@@ -38,17 +39,18 @@ const (
 )
 
 var (
-	etcdAddress  []string
-	Mgo          *mongodb.MongodbSim
-	MgoLog       *mongodb.MongodbSim
-	MysqlMain    *ml.Mysql
-	goodsCode    string
-	goodsSpecId  int64
-	all          map[string]string
-	powerType    string
-	middleground *Middleground
-	c            *Config
-	whether      string
+	etcdAddress                                []string
+	Mgo                                        *mongodb.MongodbSim
+	MgoLog                                     *mongodb.MongodbSim
+	MysqlMain                                  *ml.Mysql
+	goodsCode                                  string
+	goodsSpecId                                int64
+	all                                        map[string]string
+	powerType                                  string
+	middleground                               *Middleground
+	c                                          *Config
+	whether                                    string
+	inputStartTime, inputEndTime, inputUserNum int64
 )
 
 type Config struct {
@@ -112,7 +114,8 @@ func main() {
 	}
 	allEntity := map[int64]Entity{}
 	allEntity[-1] = &Yxy{}
-	allT := "-1:医械通"
+	allEntity[-2] = &Sjgl{}
+	allT := "-2:商机管理 -1:医械通"
 	for _, v := range *MysqlMain.SelectBySql(`select a.id,c.code,c.name,a.goods_code,a.name as spec_name from base_service.base_goods_spec a
 		inner join base_service.base_goods_spec_power b on (a.id=b.spec_id)
 		inner join base_service.base_function c on (b.function_code=c.code) order by a.id`) {
@@ -149,19 +152,21 @@ func main() {
 	powerWay := flag.Int("a", 0, "权益开通/取消方式;0:一个身份 1:全部身份 2:仅仅企业上")
 	isCreateUser := flag.Bool("cu", false, "是否创建用户")
 	inputOrderCode := flag.String("oc", "", "订单号")
-	inputStartTime := flag.Int64("st", 0, "unix类型的开始时间")
-	inputEndTime := flag.Int64("et", 0, "unix类型的结束时间")
+	flag.Int64Var(&inputStartTime, "st", 0, "unix类型的开始时间")
+	flag.Int64Var(&inputEndTime, "et", 0, "unix类型的结束时间")
+	flag.Int64Var(&inputUserNum, "un", 0, "使用人数")
 	resetPower := flag.Bool("rp", false, "是否重新开通权益")
 	inputProductType := flag.String("pt", "", "订单的产品类型")
 	flag.Parse()
-	//*phone = "18221111364"
-	//*t = 43
-	//*entName = "人脉管理企业"
+	//*phone = "15037870765"
+	//*t = -2
+	//*entName = "王传进的测试企业"
 	//*isCreateUser = true
-	//*inputOrderCode = "160007591541"
-	//*inputStartTime = 1747670400
-	//*inputEndTime = 1747670400
-	//*inputProductType = "人脉管理"
+	//*inputOrderCode = "263451057668"
+	//inputStartTime = 1747670400
+	//inputEndTime = 1747670400
+	//inputUserNum = 7
+	//*inputProductType = "历史数据"
 	//*m = 2
 	//
 	if *phone == "" {
@@ -169,28 +174,36 @@ func main() {
 	}
 	if *inputOrderCode != "" {
 		*isCreateUser = true
-		if *inputStartTime == 0 {
+		if inputStartTime == 0 {
 			log.Fatalln("-st 参数无效")
 		}
-		if *inputEndTime == 0 {
+		if inputEndTime == 0 {
 			log.Fatalln("-et 参数无效")
 		}
 		if *inputProductType == "" {
 			log.Fatalln("-pt 参数无效")
 		}
 	}
-	if *m != 2 {
+	if *m == 2 {
+		if *t == -2 {
+			if *entName == "" {
+				log.Fatalln("-n 参数无效")
+			} else if inputUserNum <= 0 {
+				log.Fatalln("-un 参数无效")
+			}
+		}
+	} else {
 		*isCreateUser = false
 	}
 	var inputStartTimeStr, inputEndTimeStr string
-	if *inputStartTime > 0 {
-		inputStartTimeStr = gtime.NewFromTimeStamp(*inputStartTime).String()
+	if inputStartTime > 0 {
+		inputStartTimeStr = gtime.NewFromTimeStamp(inputStartTime).String()
 		if inputStartTimeStr == "" {
 			log.Fatalln("-st 参数无效")
 		}
 	}
-	if *inputEndTime > 0 {
-		inputEndTimeStr = gtime.NewFromTimeStamp(*inputEndTime).String()
+	if inputEndTime > 0 {
+		inputEndTimeStr = gtime.NewFromTimeStamp(inputEndTime).String()
 		if inputEndTimeStr == "" {
 			log.Fatalln("-et 参数无效")
 		}
@@ -271,6 +284,7 @@ func main() {
 	//
 	isFindIdentity := false
 	var updateOrderUserId string
+	var updateOrderEntId int64
 	for _, v := range *ur {
 		id := Int64All(v["base_user_id"])
 		for _, identity := range middleground.UserCenter.IdentityList(id) {
@@ -325,11 +339,12 @@ func main() {
 			} else if *m == 2 {
 				if identity.PositionType == 1 {
 					updateOrderUserId = gconv.String(identity.PositionId)
+					updateOrderEntId = identity.EntId
 				} else {
 					updateOrderUserId = newUserId
 				}
 				if *isCheck == 1 && !entity.beforeOpen(phone, identity) {
-					return
+					break
 				}
 				startTime, endTime := "", ""
 				if inputStartTimeStr != "" {
@@ -465,7 +480,7 @@ func main() {
 	if *inputOrderCode != "" && updateOrderUserId != "" {
 		//更新订单主表
 		func() {
-			orderData := MysqlMain.SelectBySql(`select user_id,vip_starttime,vip_endtime from jianyu.dataexport_order where order_code=?`, inputOrderCode)
+			orderData := MysqlMain.SelectBySql(`select user_id,vip_starttime,vip_endtime,ent_id from jianyu.dataexport_order where order_code=?`, inputOrderCode)
 			if orderData == nil || len(*orderData) == 0 {
 				log.Fatalln("订单主表没有找到该订单,更新订单主表失败!")
 			} else if len(*orderData) > 1 {
@@ -496,6 +511,15 @@ func main() {
 			} else {
 				log.Println("订单主表服务截止时间存在,无需更新")
 			}
+			if updateOrderEntId > 0 {
+				if odVar["ent_id"].IsEmpty() {
+					updateFields = append(updateFields, "企业id")
+					array = append(array, "ent_id=?")
+					updateArgs = append(updateArgs, updateOrderEntId)
+				} else {
+					log.Println("订单主表企业id存在,无需更新")
+				}
+			}
 			if len(array) > 0 {
 				updateArgs = append(updateArgs, *inputOrderCode)
 				if MysqlMain.UpdateOrDeleteBySql(`update jianyu.dataexport_order set `+strings.Join(array, ",")+` where order_code=?`, updateArgs...) < 0 {
@@ -775,6 +799,35 @@ func (y *Yxy) getPriceBack(orderMoney float64, endTime time.Time, cycle, cycleUn
 	money := unitPrice * float64(int(days))
 	return int(money)
 }
+
+// //////////////////////////////
+type Sjgl struct {
+}
+
+func (s *Sjgl) init() (string, string, int64, map[string]string) {
+	return "", "", 0, nil
+}
+func (s *Sjgl) beforeOpen(phone *string, identity *upb.Identity) bool {
+	status := 1
+	if inputEndTime < time.Now().Unix() {
+		status = 1
+	}
+	if !MysqlMain.ExecTx("开通商机管理权益", func(tx *sql.Tx) bool {
+		if MysqlMain.UpdateOrDeleteBySqlByTx(tx, `update jianyu.entniche_info set isNew=1,startdate=?,enddate=?,status=?,quota=? where id=?`, inputStartTime, inputEndTime, status, inputUserNum, identity.EntId) < 0 {
+			return false
+		}
+		if MysqlMain.UpdateOrDeleteBySqlByTx(tx, `update jianyu.entniche_user set power=1 where id=?`, identity.EntUserId) < 0 {
+			return false
+		}
+		return true
+	}) {
+		log.Println("商机管理权益开通失败!")
+	}
+	return false
+}
+func (s *Sjgl) afterOpen(phone *string, identity *upb.Identity) {
+
+}
 func createUser(phone string, isCreateUser bool) (bool, *[]map[string]interface{}, string, int64) {
 	ur, userOk := Mgo.Find("user", map[string]interface{}{
 		"$or": []map[string]interface{}{