123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- package order
- import (
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "time"
- )
- // 用户持卡表 CygxOrderUserCard 结构体对应 cygx_order_user_card 数据表
- type CygxOrderUserCard struct {
- UserCardId int `orm:"column(user_card_id);pk";comment:"订单id"`
- OrderCode string `comment:"订单编号"`
- UserId int `comment:"用户ID"`
- Mobile string `comment:"手机号"`
- Email string `comment:"邮箱"`
- CompanyId int `comment:"公司ID"`
- CompanyName string `comment:"公司名称"`
- RealName string `comment:"用户实际名称"`
- SellerName string `comment:"所属销售"`
- CreateTime time.Time `comment:"创建时间"`
- ModifyTime time.Time `comment:"修改时间"`
- RegisterPlatform int `comment:"来源"`
- CardType string `comment:"会员卡类型"`
- StartDate time.Time `comment:"开始时间"`
- EndDate time.Time `comment:"结束时间"`
- IsSuspend int `comment:"是否暂停"`
- }
- // 用户持卡日志表 CygxOrderUserCardLog 结构体对应 cygx_order_user_card_log 数据表
- type CygxOrderUserCardLog struct {
- UserCardId int `orm:"column(user_card_log_id);pk";comment:"订单id"`
- OrderCode string `comment:"订单编号"`
- UserId int `comment:"用户ID"`
- Mobile string `comment:"手机号"`
- Email string `comment:"邮箱"`
- CompanyId int `comment:"公司ID"`
- CompanyName string `comment:"公司名称"`
- RealName string `comment:"用户实际名称"`
- SellerName string `comment:"所属销售"`
- CreateTime time.Time `comment:"创建时间"`
- ModifyTime time.Time `comment:"修改时间"`
- RegisterPlatform int `comment:"来源"`
- CardType string `comment:"会员卡类型"`
- StartDate time.Time `comment:"开始时间"`
- EndDate time.Time `comment:"结束时间"`
- IsSuspend int `comment:"是否暂停"`
- }
- // 添加
- func AddCygxOrderUserCard(item *CygxOrderUserCard, itemOrder *CygxOrder) (err error) {
- o, err := orm.NewOrm().Begin()
- if err != nil {
- return
- }
- defer func() {
- fmt.Println(err)
- if err == nil {
- o.Commit()
- } else {
- o.Rollback()
- }
- }()
- itemOrderAction := new(CygxOrderAction)
- switch itemOrder.TradeType {
- case "JSAPI":
- itemOrderAction.Action = "公众号支付"
- case "NATIVE":
- itemOrderAction.Action = "扫码支付"
- case "App":
- itemOrderAction.Action = "App支付"
- case "MICROPAY":
- itemOrderAction.Action = "付款码支付"
- case "MWEB":
- itemOrderAction.Action = "H5支付"
- case "FACEPAY":
- itemOrderAction.Action = "刷脸支付"
- }
- itemOrderAction.OrderStatus = 2
- itemOrderAction.OrderStatusText = "已支付"
- itemOrderAction.OrderCode = item.OrderCode
- itemOrderAction.UserId = item.UserId
- itemOrderAction.Mobile = item.Mobile
- itemOrderAction.Email = item.Email
- itemOrderAction.CompanyId = item.CompanyId
- itemOrderAction.CompanyName = item.CompanyName
- itemOrderAction.RealName = item.RealName
- itemOrderAction.SellerName = item.SellerName
- itemOrderAction.CreateTime = time.Now()
- itemOrderAction.ModifyTime = time.Now()
- itemOrderAction.RegisterPlatform = item.RegisterPlatform
- updateParams := make(map[string]interface{})
- updateParams["PayTime"] = itemOrder.PayTime
- updateParams["PayMoney"] = itemOrder.PayMoney
- updateParams["OrderStatus"] = itemOrder.OrderStatus
- updateParams["OutTradeCode"] = itemOrder.OutTradeCode
- updateParams["ModifyTime"] = item.ModifyTime
- updateParams["StartDate"] = item.StartDate
- updateParams["EndDate"] = item.EndDate
- updateParams["PaymentType"] = 1
- updateParams["TradeType"] = itemOrder.TradeType
- ptrStructOrTableName := "cygx_order"
- whereParam := map[string]interface{}{"order_code": itemOrder.OrderCode}
- qs := o.QueryTable(ptrStructOrTableName)
- for expr, exprV := range whereParam {
- qs = qs.Filter(expr, exprV)
- }
- _, err = qs.Update(updateParams) // 修改订单状态
- fmt.Println("err", err)
- if err != nil {
- return
- }
- _, err = o.Insert(itemOrderAction) // 写入订单操作信息
- if err != nil {
- return
- }
- sql := ` DELETE FROM cygx_order_user_card WHERE mobile=? ` // 删除原有的持卡信息
- _, err = o.Raw(sql, item.Mobile).Exec()
- if err != nil {
- return
- }
- itemLog := new(CygxOrderUserCardLog)
- itemLog.OrderCode = item.OrderCode
- itemLog.UserId = item.UserId
- itemLog.Mobile = item.Mobile
- itemLog.Email = item.Email
- itemLog.CompanyId = item.CompanyId
- itemLog.CompanyName = item.CompanyName
- itemLog.RealName = item.RealName
- itemLog.SellerName = item.SellerName
- itemLog.CreateTime = time.Now()
- itemLog.ModifyTime = time.Now()
- itemLog.RegisterPlatform = item.RegisterPlatform
- itemLog.CardType = item.CardType
- itemLog.StartDate = item.StartDate
- itemLog.EndDate = item.EndDate
- itemLog.IsSuspend = item.IsSuspend
- _, err = o.Insert(item) //写入用户持卡表
- if err != nil {
- return
- }
- _, err = o.Insert(itemLog) // 写入用户持卡日志表
- if err != nil {
- return
- }
- return
- }
- // 根据订单编号获取用户持卡详情
- func GetCygxOrderUserCardDetailByOrderCode(orderCode string) (item *CygxOrderUserCard, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cygx_order_user_card WHERE order_code = ? `
- err = o.Raw(sql, orderCode).QueryRow(&item)
- return
- }
- // 根据手机号获取用户持卡详情
- func GetCygxOrderUserCardDetailByMobile(mobile string) (item *CygxOrderUserCard, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cygx_order_user_card WHERE mobile = ? AND end_date >= ? `
- err = o.Raw(sql, mobile, time.Now()).QueryRow(&item)
- return
- }
- // 获取数量
- func GetCygxOrderUserCardCount(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrm()
- sqlCount := ` SELECT COUNT(1) AS count FROM cygx_order_user_card WHERE 1= 1 ` + condition
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- // 删除
- func RemoveCygxOrderUserCard(item *CygxOrderUserCard, itemOrder *CygxOrder) (err error) {
- o, err := orm.NewOrm().Begin()
- if err != nil {
- return
- }
- defer func() {
- fmt.Println(err)
- if err == nil {
- o.Commit()
- } else {
- o.Rollback()
- }
- }()
- itemOrderAction := new(CygxOrderAction)
- itemOrderAction.Action = "退款成功"
- itemOrderAction.OrderStatus = 3
- itemOrderAction.OrderStatusText = "已退款"
- itemOrderAction.OrderCode = item.OrderCode
- itemOrderAction.UserId = item.UserId
- itemOrderAction.Mobile = item.Mobile
- itemOrderAction.Email = item.Email
- itemOrderAction.CompanyId = item.CompanyId
- itemOrderAction.CompanyName = item.CompanyName
- itemOrderAction.RealName = item.RealName
- itemOrderAction.SellerName = item.SellerName
- itemOrderAction.CreateTime = time.Now()
- itemOrderAction.ModifyTime = time.Now()
- itemOrderAction.RegisterPlatform = item.RegisterPlatform
- updateParams := make(map[string]interface{})
- updateParams["OrderStatus"] = itemOrder.OrderStatus
- updateParams["ModifyTime"] = item.ModifyTime
- ptrStructOrTableName := "cygx_order"
- whereParam := map[string]interface{}{"order_code": itemOrder.OrderCode}
- qs := o.QueryTable(ptrStructOrTableName)
- for expr, exprV := range whereParam {
- qs = qs.Filter(expr, exprV)
- }
- _, err = qs.Update(updateParams) // 修改订单状态
- if err != nil {
- return
- }
- _, err = o.Insert(itemOrderAction) // 写入订单操作信息
- if err != nil {
- return
- }
- //sql := ` DELETE FROM cygx_order_user_card WHERE mobile=? ` // 删除原有的持卡信息 (退款之后不删除相关权益权限)
- //_, err = o.Raw(sql, item.Mobile).Exec()
- //if err != nil {
- // return
- //}
- itemLog := new(CygxOrderUserCardLog)
- itemLog.OrderCode = item.OrderCode
- itemLog.UserId = item.UserId
- itemLog.Mobile = item.Mobile
- itemLog.Email = item.Email
- itemLog.CompanyId = item.CompanyId
- itemLog.CompanyName = item.CompanyName
- itemLog.RealName = item.RealName
- itemLog.SellerName = item.SellerName
- itemLog.CreateTime = time.Now()
- itemLog.ModifyTime = time.Now()
- itemLog.RegisterPlatform = item.RegisterPlatform
- itemLog.CardType = item.CardType
- itemLog.StartDate = item.StartDate
- itemLog.EndDate = item.EndDate
- itemLog.IsSuspend = 1
- _, err = o.Insert(itemLog) // 写入用户持卡日志表
- if err != nil {
- return
- }
- return
- }
|