|
|
@@ -0,0 +1,79 @@ |
|
|
|
package card_pack |
|
|
|
|
|
|
|
import ( |
|
|
|
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db" |
|
|
|
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db/offical" |
|
|
|
"code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/db/offical/model" |
|
|
|
zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils" |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
|
"time" |
|
|
|
"xorm.io/xorm" |
|
|
|
) |
|
|
|
|
|
|
|
//数量 |
|
|
|
func CardPackNumGetNum(engine *xorm.Engine, uid interface{}) int { |
|
|
|
numData := offical.GetCardPackNum(engine, uid) |
|
|
|
num := 0 |
|
|
|
if numData != nil { |
|
|
|
num = numData.Num |
|
|
|
} |
|
|
|
if num < 0 { |
|
|
|
num = 0 |
|
|
|
} |
|
|
|
return num |
|
|
|
} |
|
|
|
|
|
|
|
//识别 |
|
|
|
func CardPackSend(engine *xorm.Engine, args map[string]interface{}) (string, error) { |
|
|
|
num := CardPackNumGetNum(engine, args["uid"]) |
|
|
|
if num < 1 { |
|
|
|
return "", errors.New("数量不足") |
|
|
|
} |
|
|
|
send, err2 := Send(args["method"].(string), args["appcode"].(string), args["body"].(string)) |
|
|
|
if err2 != nil { |
|
|
|
return "", err2 |
|
|
|
} |
|
|
|
//存入记录 |
|
|
|
ext := map[string]interface{}{ |
|
|
|
"send": send, |
|
|
|
"post": args, |
|
|
|
} |
|
|
|
var record = model.SmsRecord{ |
|
|
|
OrdId: "", |
|
|
|
Uid: int(zhios_third_party_utils.AnyToInt64(args["uid"])), |
|
|
|
Amount: "1", |
|
|
|
CostPrice: "", |
|
|
|
Balance: zhios_third_party_utils.IntToStr(num - 1), |
|
|
|
PayWay: 0, |
|
|
|
State: 1, |
|
|
|
Memo: args["name"].(string), |
|
|
|
CreateAt: time.Now(), |
|
|
|
UpdateAt: time.Now(), |
|
|
|
TradeNo: "", |
|
|
|
Type: 1, |
|
|
|
OrdType: "buy", |
|
|
|
Fee: "", |
|
|
|
Ext: zhios_third_party_utils.SerializeStr(ext), |
|
|
|
} |
|
|
|
engine.InsertOne(&record) |
|
|
|
sql := `UPDATE sms_num_list set num=num-%d WHERE uid=%s ;` |
|
|
|
sql = fmt.Sprintf(sql, 1, args["uid"]) |
|
|
|
fmt.Println(sql) |
|
|
|
nativeString, err := db.QueryNativeString(engine, sql) |
|
|
|
fmt.Println(nativeString) |
|
|
|
fmt.Println(err) |
|
|
|
return send, nil |
|
|
|
} |
|
|
|
func Send(method, appcode, body string) (string, error) { |
|
|
|
host := "https://cardpack.market.alicloudapi.com" |
|
|
|
headers := map[string]string{ |
|
|
|
"Authorization": "APPCODE " + appcode, |
|
|
|
"Content-Type": "application/json; charset=UTF-8", |
|
|
|
} |
|
|
|
url := host + method |
|
|
|
post, err := zhios_third_party_utils.CurlPost(url, body, headers) |
|
|
|
fmt.Println(string(post)) |
|
|
|
fmt.Println(err) |
|
|
|
return string(post), err |
|
|
|
} |