Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
sari3l committed May 25, 2022
1 parent 65fa482 commit 5593dbe
Show file tree
Hide file tree
Showing 14 changed files with 77 additions and 63 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# sams_helper
[![](https://img.shields.io/github/license/sari3l/sams_helper)]()
[![](https://img.shields.io/github/v/release/sari3l/sams_helper)]()
[![](https://img.shields.io/github/downloads/sari3l/sams_helper/total)]()
[![](https://img.shields.io/github/license/sari3l/sams_helper)](https://github.com/sari3l/sams_helper/blob/main/LICENSE)
[![](https://img.shields.io/github/v/release/sari3l/sams_helper)](https://github.com/sari3l/sams_helper/releases)
[![](https://img.shields.io/github/downloads/sari3l/sams_helper/total)](https://github.com/sari3l/sams_helper/releases)

<img src="https://github.com/sari3l/sams_helper/blob/main/pics/sams_helper.png"/>
<img src="https://raw.githubusercontent.com/sari3l/sams_helper/main/pics/sams_helper.png"/>

借鉴自: https://github.com/robGoods/sams v1.0

Expand Down Expand Up @@ -86,8 +86,8 @@ deliveryType: 1

## 效果

<img src="https://github.com/sari3l/sams_helper/blob/main/pics/pic_1.jpeg" width="50%"/><br/>
<img src="https://github.com/sari3l/sams_helper/blob/main/pics/pic_2.png" width="50%"/><br/>
<img src="https://raw.githubusercontent.com/sari3l/sams_helper/main/pics/pic_1.jpeg" width="50%"/><br/>
<img src="https://raw.githubusercontent.com/sari3l/sams_helper/main/pics/pic_2.png" width="50%"/><br/>

## 声明

Expand Down
10 changes: 7 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ func stepCartShow(session *sams.Session) error {

func stepGoods(session *sams.Session) error {
var c []byte
c = append(c, []byte(fmt.Sprintf("########## 开始校验当前商品【%s】 ###########\n", time.Now().Format("15:04:05")))...)
c = append(c, []byte(fmt.Sprintf("########## 开始校验当前商品、优惠券【%s】 ###########\n", time.Now().Format("15:04:05")))...)
if err := session.CheckGoods(); err != nil {
c = append(c, []byte(fmt.Sprintf("[!] %s\n", err))...)
tools.OutputBytes(c)
Expand All @@ -416,12 +416,16 @@ func stepGoods(session *sams.Session) error {
return conf.GotoGoodsStep
}
} else {
couponFee := tools.StringToInt64(session.SettleInfo.CouponFee)
totalAmount := tools.StringToInt64(session.SettleInfo.TotalAmount)
c = append(c, []byte(fmt.Sprintf("[>] 校验商品成功\n[>] 优惠券抵扣:%d.%d, 最终总金额:%d.%d\n", couponFee/100, couponFee%100, totalAmount/100, totalAmount%100))...)
session.DeliveryInfoVO = sams.DeliveryInfoVO{
StoreDeliveryTemplateId: session.SettleInfo.SettleDelivery.StoreDeliveryTemplateId,
DeliveryModeId: session.SettleInfo.SettleDelivery.DeliveryModeIdList[0],
StoreType: session.Setting.StoreType,
}
}
tools.OutputBytes(c)
return nil
}

Expand Down Expand Up @@ -652,7 +656,7 @@ HotStartLoop:
for _, v := range result {
if session.Setting.AddGoodsFromFileSet.ShowGoodsInfo {
c = append(c, []byte(fmt.Sprintf("[x] 修改商品数量:%s,数量:%v\n",
v.Title, goodsQuantity))...)
v.Title, goodsQuantity))...)
}

modifyGoodsQuantity := v.ToNormalGoods().ToGoods()
Expand All @@ -677,7 +681,7 @@ HotStartLoop:

func checkStoreForce(session *sams.Session) {
for true {
_ = stepStore(session)
time.Sleep(time.Duration(session.Setting.SleepTimeSet.StepUpdateStoreForceSleep) * time.Millisecond)
_ = stepStore(session)
}
}
2 changes: 1 addition & 1 deletion requests/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func (request *Request) do(req *http.Request) (error, gjson.Result) {
result := gjson.Parse(string(body))
switch result.Get("code").Str {
case "Success":
return nil, result
return nil, result.Get("data")
case "AUTH_FAIL":
return conf.AuthFailErr, gjson.Result{}
case "LIMITED":
Expand Down
2 changes: 1 addition & 1 deletion sams/address.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func (session *Session) GetAddress() (error, []Address) {
return err, nil
}
var addressList = make([]Address, 0)
validAddress := result.Get("data.addressList").Array()
validAddress := result.Get("addressList").Array()
for _, addressData := range validAddress {
err, address := parseAddress(addressData)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion sams/apis.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ type SettleParam struct {
DeliveryInfoVO DeliveryInfoVO `json:"deliveryInfoVO"`
CartDeliveryType int64 `json:"cartDeliveryType"`
StoreInfo StoreInfo `json:"storeInfo"`
CouponList []string `json:"couponList"`
CouponList []CouponInfo `json:"couponList"`
IsSelfPickup int64 `json:"isSelfPickup"`
FloorId int64 `json:"floorId"`
GoodsList []Goods `json:"goodsList"`
Expand Down
4 changes: 2 additions & 2 deletions sams/capacity.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@ func parseCapacity(result gjson.Result) (error, CapCityResponse) {

func (session *Session) GetCapacity(result gjson.Result) error {
var capCityResponseList []CapCityResponse
for _, v := range result.Get("data.capcityResponseList").Array() {
for _, v := range result.Get("capcityResponseList").Array() {
_, product := parseCapacity(v)
capCityResponseList = append(capCityResponseList, product)
}
session.Capacity = Capacity{
Data: result.String(),
CapCityResponseList: capCityResponseList,
PortalPerformanceTemplate: result.Get("data.getPortalPerformanceTemplateResponse").Str,
PortalPerformanceTemplate: result.Get("getPortalPerformanceTemplateResponse").Str,
}
return nil
}
Expand Down
8 changes: 4 additions & 4 deletions sams/cart.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,18 +99,18 @@ func (session *Session) SetCartInfo(result gjson.Result) error {
cart.FloorInfoList = make([]FloorInfo, 0)
switch session.Setting.DeviceType {
case 1:
for _, v := range result.Get("data.floorInfoList").Array() {
for _, v := range result.Get("floorInfoList").Array() {
if "失效商品" == v.Get("floorName").Str {
continue
}
_, floor := parseFloorInfo(v)
cart.FloorInfoList = append(cart.FloorInfoList, floor)
}
case 2:
for _, v := range result.Get("data.miniProgramGoodsInfo").Array() {
for _, v := range result.Get("miniProgramGoodsInfo").Array() {
_, floor := session.parseMiniProgramGoodsInfo(v)
floor.Amount = result.Get("data.selectedAmount").Str
floor.Quantity = result.Get("data.selectedNumber").Int()
floor.Amount = result.Get("selectedAmount").Str
floor.Quantity = result.Get("selectedNumber").Int()
cart.FloorInfoList = append(cart.FloorInfoList, floor)
}
default:
Expand Down
33 changes: 14 additions & 19 deletions sams/commitPay.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ type PayInfo struct {
TotalAmt int64 `json:"totalAmt"`
}

type CouponInfo struct {
PromotionId string `json:"promotionId"`
StoreId string `json:"storeId"`
}

type SettleDeliveryInfo struct {
DeliveryType int64 `json:"deliveryType"`
DeliveryDesc string `json:"deliveryDesc"`
Expand All @@ -35,21 +30,21 @@ type SettleDeliveryInfo struct {

func (session *Session) GetOrderInfo(result gjson.Result) (error, OrderInfo) {
order := OrderInfo{
IsSuccess: result.Get("data.isSuccess").Bool(),
OrderNo: result.Get("data.orderNo").Str,
PayAmount: result.Get("data.payAmount").Str,
Channel: result.Get("data.channel").Str,
IsSuccess: result.Get("isSuccess").Bool(),
OrderNo: result.Get("orderNo").Str,
PayAmount: result.Get("payAmount").Str,
Channel: result.Get("channel").Str,
PayInfo: PayInfo{
PayInfo: result.Get("data.payInfo.PayInfo").Str,
OutTradeNo: result.Get("data.payInfo.OutTradeNo").Str,
TotalAmt: result.Get("data.payInfo.TotalAmt").Int(),
PayInfo: result.Get("payInfo.PayInfo").Str,
OutTradeNo: result.Get("payInfo.OutTradeNo").Str,
TotalAmt: result.Get("payInfo.TotalAmt").Int(),
},
}
return nil, order
}

func (session *Session) CommitPay() (error, OrderInfo) {
_data := CommitPayParam{
data := CommitPayParam{
DeliveryInfoVO: session.DeliveryInfoVO,
StoreInfo: session.FloorInfo.StoreInfo,
Channel: session.Channel,
Expand All @@ -72,18 +67,18 @@ func (session *Session) CommitPay() (error, OrderInfo) {
}
if len(session.CouponList) > 0 {
for _, v := range session.CouponList {
_data.CouponList = append(_data.CouponList, CouponInfo{PromotionId: v.RuleId, StoreId: session.FloorInfo.StoreInfo.StoreId})
data.CouponList = append(data.CouponList, CouponInfo{PromotionId: v.RuleId, StoreId: session.FloorInfo.StoreInfo.StoreId})
}
}

var dataStr []byte
// 为了对照数据包,特意按设备类型排序观察
switch session.Setting.DeviceType {
case 2:
_amount := tools.StringToInt64(session.FloorInfo.Amount)
amount := tools.StringToInt64(session.SettleInfo.TotalAmount)
data := MiniProgramCommitPayParam{
CommitPayParam: _data,
Amount: _amount,
CommitPayParam: data,
Amount: amount,
IsSelectShoppingNotes: true,
LabelList: "",
SaasId: session.Setting.SassId,
Expand All @@ -92,8 +87,8 @@ func (session *Session) CommitPay() (error, OrderInfo) {
dataStr, _ = json.Marshal(data)
default: // ios
data := IOSCommitPayParam{
CommitPayParam: _data,
Amount: session.FloorInfo.Amount,
CommitPayParam: data,
Amount: session.SettleInfo.TotalAmount,
TradeType: "APP",
PurchaserId: "",
IsSelfPickup: 0,
Expand Down
11 changes: 8 additions & 3 deletions sams/coupon.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ import (
"sams_helper/tools"
)

type CouponInfo struct {
PromotionId string `json:"promotionId"`
StoreId string `json:"storeId"`
}

type Coupon struct {
Code string `json:"code"`
Remark string `json:"remark"`
Expand All @@ -30,7 +35,7 @@ func parseCoupon(result gjson.Result) (error, Coupon) {

func parseCouponList(result gjson.Result) (error, []Coupon) {
var couponList []Coupon
for _, v := range result.Get("data.couponInfoList").Array() {
for _, v := range result.Get("couponInfoList").Array() {
_, coupon := parseCoupon(v)
couponList = append(couponList, coupon)
}
Expand All @@ -55,7 +60,7 @@ func (session *Session) GetCoupon() (error, []Coupon) {
if err != nil {
return err, nil
}
total = result.Get("data.total").Int()
total = result.Get("total").Int()
page += 1
_, couponListTmp := parseCouponList(result)
couponList = append(couponList, couponListTmp...)
Expand All @@ -72,7 +77,7 @@ func (session *Session) ChooseCoupons() error {
return conf.NoValidCouponErr
}
for i, addr := range couponList {
fmt.Printf("[%2v] 名称:%-15s 有效期:%s - %s 简介:%-30q\n", i, addr.Name, tools.UnixToTime(addr.ExpireStart), tools.UnixToTime(addr.ExpireEnd), addr.Remark)
fmt.Printf("[%v] 名称:%-15s 有效期:%s - %s 简介:%-30q\n", i, addr.Name, tools.UnixToTime(addr.ExpireStart), tools.UnixToTime(addr.ExpireEnd), addr.Remark)
}
var indexes []int
if session.Setting.AutoInputSet.IsEnabled {
Expand Down
6 changes: 3 additions & 3 deletions sams/goods.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,11 +195,11 @@ func (session *Session) CheckGoods() error {
if err != nil {
return err
}
if result.Get("data.isHasException").Bool() == false {
if result.Get("isHasException").Bool() == false {
return nil
} else {
fmt.Printf("\n======== 以下商品已过期 ========\n")
for index, v := range result.Get("data.popUpInfo.goodsList").Array() {
for index, v := range result.Get("popUpInfo.goodsList").Array() {
_, goods := parseNormalGoods(v)
fmt.Printf("[%v] 商品名:%s 商品ID:%s 商店ID:%v 总价:%d.%d\n", index, goods.GoodsName, goods.SpuId, goods.StoreId, goods.Price/100, goods.Price%100)
}
Expand All @@ -224,5 +224,5 @@ func (session *Session) QueryGoodsDetail(spuId string) (error, ShowGoods) {
if err != nil {
return err, ShowGoods{}
}
return parseShowGoods(result.Get("data"))
return parseShowGoods(result)
}
4 changes: 2 additions & 2 deletions sams/page.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ type PageContent struct {

func parsePageContent(result gjson.Result) (error, PageContent) {
pageContent := PageContent{}
pageContent.PageContentVO = result.Get("data.pageContentVO")
pageContent.PageModuleVOList = result.Get("data.pageModuleVOList")
pageContent.PageContentVO = result.Get("pageContentVO")
pageContent.PageModuleVOList = result.Get("pageModuleVOList")
return nil, pageContent
}

Expand Down
4 changes: 2 additions & 2 deletions sams/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

func parseGoodsList(g gjson.Result) (error, []ShowGoods) {
goodsList := make([]ShowGoods, 0)
for _, v := range g.Get("data.dataList").Array() {
for _, v := range g.Get("dataList").Array() {
_, goods := parseShowGoods(v)
goodsList = append(goodsList, goods)
}
Expand Down Expand Up @@ -52,7 +52,7 @@ func (session *Session) GetGoodsFromSearch(keyword string) (error, []ShowGoods)
if err != nil {
return err, nil
}
total = result.Get("data.totalCount").Int()
total = result.Get("totalCount").Int()
page += 1
_, goodsListTmp := parseGoodsList(result)
_, goodsListTmp = goodsTitleMatch(goodsListTmp, keyword)
Expand Down
32 changes: 17 additions & 15 deletions sams/settleDelivery.go → sams/settle.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,37 +44,33 @@ type SettleInfo struct {
FloorName string `json:"floorName"`
SettleDelivery SettleDelivery `json:"settleDelivery"`
DeliveryAddress Address `json:"deliveryAddress"`
CouponFee string `json:"couponFee"`
TotalAmount string `json:"totalAmount"`
}

func (session *Session) GetSettleInfo(result gjson.Result) error {
r := SettleInfo{}

for _, v := range result.Get("data.settleDelivery").Array() {
for _, v := range result.Get("settleDelivery").Array() {
_, settleDelivery := parseSettleDelivery(v)
r.SettleDelivery = settleDelivery

}
r.SaasId = result.Get("data.saasId").Str
r.Uid = result.Get("data.uid").Str
r.FloorId = result.Get("data.floorId").Int()
r.FloorName = result.Get("data.floorName").Str
err, address := parseAddress(result.Get("data.deliveryAddress"))
r.SaasId = result.Get("saasId").Str
r.Uid = result.Get("uid").Str
r.FloorId = result.Get("floorId").Int()
r.FloorName = result.Get("floorName").Str
err, address := parseAddress(result.Get("deliveryAddress"))
if err == nil {
r.DeliveryAddress = address
}
r.CouponFee = result.Get("couponFee").Str
r.TotalAmount = result.Get("totalAmount").Str

session.SettleInfo = r
return nil
}

type StoreInfo struct {
StoreId string `json:"storeId"`
StoreType int64 `json:"storeType"`
AreaBlockId string `json:"areaBlockId"`
StoreDeliveryTemplateId string `json:"-"`
DeliveryModeId string `json:"-"`
}

type DeliveryInfoVO struct {
StoreDeliveryTemplateId string `json:"storeDeliveryTemplateId"`
DeliveryModeId string `json:"deliveryModeId"`
Expand All @@ -88,12 +84,18 @@ func (session *Session) CheckSettleInfo() error {
DeliveryInfoVO: session.DeliveryInfoVO,
CartDeliveryType: session.Setting.DeliveryType,
StoreInfo: session.FloorInfo.StoreInfo,
CouponList: make([]string, 0),
CouponList: make([]CouponInfo, 0),
IsSelfPickup: 0,
FloorId: session.FloorId,
GoodsList: session.GoodsList,
}

if len(session.CouponList) > 0 {
for _, v := range session.CouponList {
data.CouponList = append(data.CouponList, CouponInfo{PromotionId: v.RuleId, StoreId: session.FloorInfo.StoreInfo.StoreId})
}
}

dataStr, _ := json.Marshal(data)
err, result := session.Request.POST(SettleInfoAPI, dataStr)
if err != nil {
Expand Down
10 changes: 9 additions & 1 deletion sams/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ type StoreInfoVO struct {
StoreDeliveryAttr []int64 `json:"storeDeliveryAttr"`
}

type StoreInfo struct {
StoreId string `json:"storeId"`
StoreType int64 `json:"storeType"`
AreaBlockId string `json:"areaBlockId"`
StoreDeliveryTemplateId string `json:"-"`
DeliveryModeId string `json:"-"`
}

type Store struct {
StoreId string `json:"storeId"`
StoreName string `json:"storeName"`
Expand Down Expand Up @@ -60,7 +68,7 @@ func (session *Session) GetStoreList() error {
return err
}
storeList := make([]Store, 0)
for _, storeData := range result.Get("data.storeList").Array() {
for _, storeData := range result.Get("storeList").Array() {
err, store := parseStore(storeData)
if err != nil {
return err
Expand Down

0 comments on commit 5593dbe

Please sign in to comment.