|
@@ -6,6 +6,7 @@ import (
|
|
"flag"
|
|
"flag"
|
|
"fmt"
|
|
"fmt"
|
|
"log"
|
|
"log"
|
|
|
|
+ "strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
. "app.yhyue.com/moapp/jybase/common"
|
|
. "app.yhyue.com/moapp/jybase/common"
|
|
@@ -27,7 +28,7 @@ var (
|
|
etcdAddress []string
|
|
etcdAddress []string
|
|
BaseService *ml.Mysql
|
|
BaseService *ml.Mysql
|
|
Mgo *mongodb.MongodbSim
|
|
Mgo *mongodb.MongodbSim
|
|
- JyOrder *ml.Mysql
|
|
|
|
|
|
+ MysqlMain *ml.Mysql
|
|
goodsCode string
|
|
goodsCode string
|
|
goodsSpecId int64
|
|
goodsSpecId int64
|
|
all map[string]string
|
|
all map[string]string
|
|
@@ -48,7 +49,7 @@ type Config struct {
|
|
Main *mysqlConf
|
|
Main *mysqlConf
|
|
Base *mysqlConf
|
|
Base *mysqlConf
|
|
}
|
|
}
|
|
- Products map[string]*Common
|
|
|
|
|
|
+ Products []int64
|
|
}
|
|
}
|
|
|
|
|
|
type mgoConf struct {
|
|
type mgoConf struct {
|
|
@@ -74,14 +75,51 @@ func init() {
|
|
}
|
|
}
|
|
|
|
|
|
func main() {
|
|
func main() {
|
|
- allT := "yxy:医械云"
|
|
|
|
- for k, v := range c.Products {
|
|
|
|
- allEntity[k] = v
|
|
|
|
- allT += " " + k + ":" + v.Name
|
|
|
|
|
|
+ MysqlMain = &ml.Mysql{
|
|
|
|
+ Address: c.Mysql.Main.Address,
|
|
|
|
+ UserName: c.Mysql.Main.UserName,
|
|
|
|
+ PassWord: c.Mysql.Main.PassWord,
|
|
|
|
+ DBName: c.Mysql.Main.DbName,
|
|
|
|
+ MaxOpenConns: c.Mysql.Main.MaxOpenConns,
|
|
|
|
+ MaxIdleConns: c.Mysql.Main.MaxIdleConns,
|
|
|
|
+ }
|
|
|
|
+ filterSpec := map[int64]bool{}
|
|
|
|
+ for _, v := range c.Products {
|
|
|
|
+ filterSpec[v] = true
|
|
|
|
+ }
|
|
|
|
+ MysqlMain.Init()
|
|
|
|
+ allEntity := map[int64]*Common{}
|
|
|
|
+ allT := ""
|
|
|
|
+ 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)`) {
|
|
|
|
+ id := Int64All(v["id"])
|
|
|
|
+ if !filterSpec[id] {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ name, _ := v["name"].(string)
|
|
|
|
+ code, _ := v["code"].(string)
|
|
|
|
+ if allEntity[id] == nil {
|
|
|
|
+ spec_name, _ := v["spec_name"].(string)
|
|
|
|
+ spec_name = strings.TrimPrefix(spec_name, "特殊非售卖商品_")
|
|
|
|
+ if allT != "" {
|
|
|
|
+ allT += " "
|
|
|
|
+ }
|
|
|
|
+ allT += fmt.Sprintf("%d:%s", id, spec_name)
|
|
|
|
+ goods_code, _ := v["goods_code"].(string)
|
|
|
|
+ allEntity[id] = &Common{
|
|
|
|
+ Name: spec_name,
|
|
|
|
+ GoodsCode: goods_code,
|
|
|
|
+ GoodsSpecId: id,
|
|
|
|
+ All: map[string]string{name: code},
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ allEntity[id].All[name] = code
|
|
|
|
+ }
|
|
}
|
|
}
|
|
phone := flag.String("p", "", "手机号")
|
|
phone := flag.String("p", "", "手机号")
|
|
m := flag.Int("m", 0, "1:查询权益 2:开通权益 3:取消权益")
|
|
m := flag.Int("m", 0, "1:查询权益 2:开通权益 3:取消权益")
|
|
- t := flag.String("t", "", allT)
|
|
|
|
|
|
+ t := flag.Int64("t", 0, allT)
|
|
dayCount := flag.Int("c", 0, "自定义设置需要开通权益的天数,包含今天")
|
|
dayCount := flag.Int("c", 0, "自定义设置需要开通权益的天数,包含今天")
|
|
entName := flag.String("n", "", "企业名称")
|
|
entName := flag.String("n", "", "企业名称")
|
|
isCheck := flag.Int("b", 1, "是否前置校验和后置处理")
|
|
isCheck := flag.Int("b", 1, "是否前置校验和后置处理")
|
|
@@ -98,26 +136,6 @@ func main() {
|
|
middleground = NewMiddleground(c.EtcdAddr)
|
|
middleground = NewMiddleground(c.EtcdAddr)
|
|
middleground.RegResourceCenter("resource.rpc").RegUserCenter("usercenter.rpc")
|
|
middleground.RegResourceCenter("resource.rpc").RegUserCenter("usercenter.rpc")
|
|
//
|
|
//
|
|
- BaseService = &ml.Mysql{
|
|
|
|
- Address: c.Mysql.Base.Address,
|
|
|
|
- UserName: c.Mysql.Base.UserName,
|
|
|
|
- PassWord: c.Mysql.Base.PassWord,
|
|
|
|
- DBName: c.Mysql.Base.DbName,
|
|
|
|
- MaxOpenConns: c.Mysql.Base.MaxOpenConns,
|
|
|
|
- MaxIdleConns: c.Mysql.Base.MaxIdleConns,
|
|
|
|
- }
|
|
|
|
- BaseService.Init()
|
|
|
|
- //
|
|
|
|
- JyOrder = &ml.Mysql{
|
|
|
|
- Address: c.Mysql.Main.Address,
|
|
|
|
- UserName: c.Mysql.Main.UserName,
|
|
|
|
- PassWord: c.Mysql.Main.PassWord,
|
|
|
|
- DBName: c.Mysql.Main.DbName,
|
|
|
|
- MaxOpenConns: c.Mysql.Main.MaxOpenConns,
|
|
|
|
- MaxIdleConns: c.Mysql.Main.MaxIdleConns,
|
|
|
|
- }
|
|
|
|
- JyOrder.Init()
|
|
|
|
- //
|
|
|
|
Mgo = &mongodb.MongodbSim{
|
|
Mgo = &mongodb.MongodbSim{
|
|
MongodbAddr: c.Mongodb.Main.Address,
|
|
MongodbAddr: c.Mongodb.Main.Address,
|
|
Size: c.Mongodb.Main.Size,
|
|
Size: c.Mongodb.Main.Size,
|
|
@@ -159,9 +177,9 @@ func main() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
msg := "身份信息:" + fmt.Sprintf("%+v", identity) + " 手机号:" + *phone
|
|
msg := "身份信息:" + fmt.Sprintf("%+v", identity) + " 手机号:" + *phone
|
|
- var c = resource.NewResource(middleground.ResourceCenter.NewClient())
|
|
|
|
|
|
+ var resClient = resource.NewResource(middleground.ResourceCenter.NewClient())
|
|
if *m == 1 {
|
|
if *m == 1 {
|
|
- r, err := c.Haspowers(context.Background(), &pb.HaspowersReq{
|
|
|
|
|
|
+ r, err := resClient.Haspowers(context.Background(), &pb.HaspowersReq{
|
|
Appid: "10000",
|
|
Appid: "10000",
|
|
EntId: identity.EntId,
|
|
EntId: identity.EntId,
|
|
EntUserId: identity.EntUserId,
|
|
EntUserId: identity.EntUserId,
|
|
@@ -193,37 +211,54 @@ func main() {
|
|
if *isCheck == 1 && !entity.beforeOpen(phone, identity) {
|
|
if *isCheck == 1 && !entity.beforeOpen(phone, identity) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- endTime := ""
|
|
|
|
- if *dayCount > 0 {
|
|
|
|
- now := time.Now()
|
|
|
|
- end_time := time.Date(now.Year(), now.Month(), now.Day(), 23, 59, 59, 0, time.Local)
|
|
|
|
- end_time = end_time.AddDate(0, 0, *dayCount-1)
|
|
|
|
- endTime = date.FormatDate(&end_time, date.Date_Full_Layout)
|
|
|
|
- }
|
|
|
|
- powerReq := &pb.PowerReq{
|
|
|
|
- Appid: appid,
|
|
|
|
- GoodsCode: goodsCode,
|
|
|
|
- GoodsSpecId: goodsSpecId,
|
|
|
|
- BuyNum: 1,
|
|
|
|
- Type: 1,
|
|
|
|
- EndTime: endTime,
|
|
|
|
- }
|
|
|
|
- if *powerWay == 2 {
|
|
|
|
- powerReq.EntAccountId = identity.EntAccountId
|
|
|
|
- powerReq.EntId = identity.EntId
|
|
|
|
- } else {
|
|
|
|
- powerReq.AccountId = identity.AccountId
|
|
|
|
- }
|
|
|
|
- r, err := c.PowerHandle(context.Background(), powerReq)
|
|
|
|
- if err != nil {
|
|
|
|
- log.Println(msg, powerType, "开通失败!", err)
|
|
|
|
- } else if r.Status == 1 {
|
|
|
|
- if *isCheck == 1 {
|
|
|
|
- entity.afterOpen(phone, identity)
|
|
|
|
|
|
+ for _, v := range all {
|
|
|
|
+ wed, err := resClient.WaitEmpowerDetail(context.Background(), &pb.WaitEmpowerDetailReq{
|
|
|
|
+ Appid: "10000",
|
|
|
|
+ EntId: identity.EntId,
|
|
|
|
+ FunctionCode: v,
|
|
|
|
+ })
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println(msg, powerType, "开通失败!", err)
|
|
|
|
+ } else if wed.Id == 0 {
|
|
|
|
+ endTime := ""
|
|
|
|
+ if *dayCount > 0 {
|
|
|
|
+ now := time.Now()
|
|
|
|
+ end_time := time.Date(now.Year(), now.Month(), now.Day(), 23, 59, 59, 0, time.Local)
|
|
|
|
+ end_time = end_time.AddDate(0, 0, *dayCount-1)
|
|
|
|
+ endTime = date.FormatDate(&end_time, date.Date_Full_Layout)
|
|
|
|
+ }
|
|
|
|
+ powerReq := &pb.PowerReq{
|
|
|
|
+ Appid: appid,
|
|
|
|
+ GoodsCode: goodsCode,
|
|
|
|
+ GoodsSpecId: goodsSpecId,
|
|
|
|
+ BuyNum: 0,
|
|
|
|
+ Type: 1,
|
|
|
|
+ EndTime: endTime,
|
|
|
|
+ }
|
|
|
|
+ if *powerWay == 2 {
|
|
|
|
+ powerReq.EntAccountId = identity.EntAccountId
|
|
|
|
+ powerReq.EntId = identity.EntId
|
|
|
|
+ } else {
|
|
|
|
+ powerReq.AccountId = identity.AccountId
|
|
|
|
+ }
|
|
|
|
+ r, err := resClient.PowerHandle(context.Background(), powerReq)
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Println(msg, powerType, "开通失败!", err)
|
|
|
|
+ } else if r.Status == 1 {
|
|
|
|
+ if *isCheck == 1 {
|
|
|
|
+ entity.afterOpen(phone, identity)
|
|
|
|
+ }
|
|
|
|
+ log.Println(msg, powerType, "已开通!")
|
|
|
|
+ } else {
|
|
|
|
+ log.Println(msg, powerType, "开通失败!")
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- log.Println(msg, powerType, "已开通!")
|
|
|
|
- } else {
|
|
|
|
- log.Println(msg, powerType, "开通失败!")
|
|
|
|
|
|
+ resClient.Empower(context.Background(), &pb.EmpowerReq{
|
|
|
|
+ Appid: "10000",
|
|
|
|
+ FunctionCode: v,
|
|
|
|
+ EntId: identity.EntId,
|
|
|
|
+ EntUserId: []int64{identity.EntUserId},
|
|
|
|
+ })
|
|
}
|
|
}
|
|
} else if *m == 3 {
|
|
} else if *m == 3 {
|
|
powerReq := &pb.PowerReq{
|
|
powerReq := &pb.PowerReq{
|
|
@@ -241,7 +276,7 @@ func main() {
|
|
powerReq.EntAccountId = identity.EntAccountId
|
|
powerReq.EntAccountId = identity.EntAccountId
|
|
powerReq.EntId = identity.EntId
|
|
powerReq.EntId = identity.EntId
|
|
}
|
|
}
|
|
- r, err := c.PowerHandle(context.Background(), powerReq)
|
|
|
|
|
|
+ r, err := resClient.PowerHandle(context.Background(), powerReq)
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Println(msg, powerType, "取消失败!", err)
|
|
log.Println(msg, powerType, "取消失败!", err)
|
|
} else if r.Status == 1 {
|
|
} else if r.Status == 1 {
|
|
@@ -363,12 +398,12 @@ func (y *Yxy) isOK(phone string, user map[string]interface{}, order_user_id stri
|
|
return false, false, nil, nil
|
|
return false, false, nil, nil
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- bigMemberRs := JyOrder.SelectBySql(`select * from dataexport_order where user_id=? and order_status=1 and product_type ="大会员" and (timestampdiff(day,vip_starttime,vip_endtime)>=365) order by create_time desc limit 1`, mainUserId)
|
|
|
|
|
|
+ bigMemberRs := MysqlMain.SelectBySql(`select * from dataexport_order where user_id=? and order_status=1 and product_type ="大会员" and (timestampdiff(day,vip_starttime,vip_endtime)>=365) order by create_time desc limit 1`, mainUserId)
|
|
if bigMemberRs != nil && len(*bigMemberRs) == 1 {
|
|
if bigMemberRs != nil && len(*bigMemberRs) == 1 {
|
|
(*bigMemberRs)[0]["user_phone"] = phone
|
|
(*bigMemberRs)[0]["user_phone"] = phone
|
|
(*bigMemberRs)[0]["user_id"] = order_user_id
|
|
(*bigMemberRs)[0]["user_id"] = order_user_id
|
|
}
|
|
}
|
|
- vipRs := JyOrder.SelectBySql(`select * from dataexport_order where user_id=? and order_status=1 and product_type ="VIP订阅" and (timestampdiff(day,vip_starttime,vip_endtime)>=365) order by create_time desc limit 1`, order_user_id)
|
|
|
|
|
|
+ vipRs := MysqlMain.SelectBySql(`select * from dataexport_order where user_id=? and order_status=1 and product_type ="VIP订阅" and (timestampdiff(day,vip_starttime,vip_endtime)>=365) order by create_time desc limit 1`, order_user_id)
|
|
if (bigMemberRs == nil || len(*bigMemberRs) == 0) && (vipRs == nil || len(*vipRs) == 0) {
|
|
if (bigMemberRs == nil || len(*bigMemberRs) == 0) && (vipRs == nil || len(*vipRs) == 0) {
|
|
log.Println("没有查询到该用户的年度超级订阅或者大会员订单")
|
|
log.Println("没有查询到该用户的年度超级订阅或者大会员订单")
|
|
return false, false, nil, nil
|
|
return false, false, nil, nil
|
|
@@ -458,7 +493,7 @@ func (y *Yxy) createYxtOrder(phone string, user map[string]interface{}, orderVip
|
|
insertOrder["pay_time"] = insertOrder["vip_starttime"]
|
|
insertOrder["pay_time"] = insertOrder["vip_starttime"]
|
|
insertOrder["prepay_time"] = insertOrder["vip_starttime"]
|
|
insertOrder["prepay_time"] = insertOrder["vip_starttime"]
|
|
delete(insertOrder, "id")
|
|
delete(insertOrder, "id")
|
|
- saveRs := JyOrder.Insert("dataexport_order", insertOrder)
|
|
|
|
|
|
+ saveRs := MysqlMain.Insert("dataexport_order", insertOrder)
|
|
if saveRs > 0 {
|
|
if saveRs > 0 {
|
|
log.Println("医械通订单保存成功")
|
|
log.Println("医械通订单保存成功")
|
|
} else {
|
|
} else {
|