mirror of http://gitlab.batiao8.com/yic/film.git
bidprice5
This commit is contained in:
parent
d53f466e2d
commit
a37663a122
|
@ -2,6 +2,7 @@ package dadi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"film/base/httputil"
|
"film/base/httputil"
|
||||||
"film/model"
|
"film/model"
|
||||||
"film/worker/common"
|
"film/worker/common"
|
||||||
|
@ -324,6 +325,72 @@ func (p *Processor) getUserPrice(cinema *Cinema, filmName, showTime string) (*Fi
|
||||||
return nil, fmt.Errorf("[%s][%s][%s][%s] not exist", cinema.Name, cinema.Address, filmName, showTime)
|
return nil, fmt.Errorf("[%s][%s][%s][%s] not exist", cinema.Name, cinema.Address, filmName, showTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Processor) getUserCard(cinema *Cinema) ([]*UserCard, *UserCard, error) {
|
||||||
|
reqUrl := "https://appapi.dadicinema.com/app-web/v1/user/cards"
|
||||||
|
|
||||||
|
body, err := httputil.HttpPostForm(reqUrl, p.getBaseHeader(), p.getBaseParam(cinema))
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("httpPost url[%s] error : %s", reqUrl, err.Error())
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
data, err := p.checkError(body)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
allCards := make([]*UserCard, 0)
|
||||||
|
maxBlance := int64(-1000000)
|
||||||
|
var defCard *UserCard = nil
|
||||||
|
for _, c := range cast.ToSlice(data) {
|
||||||
|
card := cast.ToStringMap(c)
|
||||||
|
|
||||||
|
uCard := new(UserCard)
|
||||||
|
uCard.CardNo = cast.ToString(card["cardNo"])
|
||||||
|
uCard.CardName = cast.ToString(card["cardName"])
|
||||||
|
uCard.Balance = int64(cast.ToFloat64(card["amount"]) * 100)
|
||||||
|
uCard.Expire = cast.ToInt64(card["cardName"]) / 1000
|
||||||
|
allCards = append(allCards, uCard)
|
||||||
|
if uCard.Balance > maxBlance {
|
||||||
|
defCard = uCard
|
||||||
|
maxBlance = uCard.Balance
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return allCards, defCard, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Processor) payOrder(cinema *Cinema, billCode, cardNo string, amount int64) error {
|
||||||
|
baseReq := p.getBaseParam(cinema)
|
||||||
|
baseReq["businessSystemCode"] = "c_app"
|
||||||
|
baseReq["ip"] = "127.0.0.1"
|
||||||
|
baseReq["amount"] = fmt.Sprintf("%.2f", float64(amount)/100)
|
||||||
|
baseReq["orderRemark"] = "{\"saleBillUid\":\"\"}"
|
||||||
|
baseReq["businessSystemName"] = "C_APP"
|
||||||
|
baseReq["goodBody"] = "APP"
|
||||||
|
baseReq["orderType"] = "0"
|
||||||
|
baseReq["payChannelName"] = "大地自营-大地"
|
||||||
|
baseReq["payChannel"] = "DDZY-DD"
|
||||||
|
baseReq["payTerminal"] = "APP"
|
||||||
|
baseReq["businessSystemMainOrderNumber"] = billCode
|
||||||
|
baseReq["businessSystemFlowNumber"] = cast.ToString(goutil.GetBigID(0, 0))
|
||||||
|
baseReq["cardNumber"] = cardNo
|
||||||
|
baseReq["payWay"] = "MEMBER_CARD_PAY"
|
||||||
|
reqBody, _ := json.Marshal(baseReq)
|
||||||
|
|
||||||
|
reqUrl := "https://appapi.dadicinema.com/app-web/v1/web/order/confirmPay"
|
||||||
|
body, err := httputil.HttpPostJson(reqUrl, nil, p.getBaseHeader(), reqBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("httpPost url[%s] error : %s", reqUrl, err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = p.checkError(body)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("request : %s", goutil.EncodeJSON(baseReq))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (p *Processor) CheckOrder(order *model.Order) (*common.CheckInfo, error) {
|
func (p *Processor) CheckOrder(order *model.Order) (*common.CheckInfo, error) {
|
||||||
cinema, err := p.getCinema(order.CityName, order.CinemaName)
|
cinema, err := p.getCinema(order.CityName, order.CinemaName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -364,10 +431,48 @@ func (p *Processor) CheckOrder(order *model.Order) (*common.CheckInfo, error) {
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Processor) CreateOrder(*model.Order) (*common.OrderInfo, error) {
|
func (p *Processor) CreateOrder(order *model.Order) (*common.OrderInfo, error) {
|
||||||
return nil, nil
|
cinema, err := p.getCinema(order.CityName, order.CinemaName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
price, err := p.getUserPrice(cinema, order.MovieName, goutil.TimeToDateTime(order.ShowTime))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
seatGoods, err := p.getSeatGoods(cinema, price.SessionId, order.Seats)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
previewOrder, err := p.prevOrderInfo(cinema, seatGoods)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
_, defautCard, err := p.getUserCard(cinema)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if defautCard == nil {
|
||||||
|
return nil, errors.New("No UserCard")
|
||||||
|
}
|
||||||
|
if err := p.payOrder(cinema, previewOrder.BillCode, defautCard.CardNo, previewOrder.TotalRealPrice); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
orderInfo := new(common.OrderInfo)
|
||||||
|
return orderInfo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Processor) getOrderDetail(cinema *Cinema, orderNo string) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Processor) refundOrder(cinema *Cinema, orderNo string) error {
|
||||||
|
//baseReq := p.getBaseParam(cinema)
|
||||||
|
//baseReq["orderNo"] = orderNo
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func (p *Processor) CancelOrder(order *model.Order, checkInfo *common.CheckInfo) error {
|
func (p *Processor) CancelOrder(order *model.Order, checkInfo *common.CheckInfo) error {
|
||||||
cinema, err := p.getCinema(order.CityName, order.CinemaName)
|
cinema, err := p.getCinema(order.CityName, order.CinemaName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue