123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package mysql
- import orm "duoduo/database"
- type Order struct {
- CreateTime string `gorm:"column:create_time" json:"createTime"`
- GoodsName string `gorm:"column:goods_name" json:"goodsName"`
- GoodsThumbnailURL string `gorm:"column:goods_thumbnail_url" json:"goodsThumbnailUrl"`
- JSONData string `gorm:"column:json_data" json:"jsonData"`
- OrderGroupSuccessTime string `gorm:"column:order_group_success_time" json:"orderGroupSuccessTime"`
- OrderID string `gorm:"column:order_id" json:"orderId"`
- OrderStatus int `gorm:"column:order_status" json:"orderStatus"`
- OrderStatusDesc string `gorm:"column:order_status_desc" json:"orderStatusDesc"`
- PID string `gorm:"column:p_id" json:"pId"`
- PromotionAmount int `gorm:"column:promotion_amount" json:"promotionAmount"`
- UpdateTime string `gorm:"column:update_time" json:"updateTime"`
- }
- // TableName sets the insert table name for this struct type
- func (o *Order) TableName() string {
- return "order"
- }
- func (o *Order) Create() (Order, error) {
- var doc Order
- result := orm.Eloquent.Table(o.TableName()).Create(&o)
- if result.Error != nil {
- err := result.Error
- return doc, err
- }
- doc = *o
- return doc, nil
- }
- func (o *Order) GetNum() int {
- var count int
- tableCount := orm.Eloquent.Table(o.TableName()).Where("order_id = ? ", o.OrderID)
- tableCount.Count(&count)
- return count
- }
- func (o *Order) GetAmount(openId string) (Wallet, error) {
- var wallet Wallet
- //历史总收益: 0,1,2,3,5 求和
- //今日预估收益:0,1,2,3 求和
- //昨日预估收益:0,1,2,3 求和
- //近30日预估收益:0,1,2,3,5 求和
- //可体现金额:5求和-已体现金额
- //已体现金额:提现记录求和
- //历史总收益
- err := orm.Eloquent.Select("SUM(promotion_amount) as total_amount").Where("order_status in (0,1,2,3,5) and open_id = ? ", openId).Table(o.TableName()).First(&wallet).Error
- if err != nil {
- return wallet, err
- }
- //今日收益
- err = orm.Eloquent.Select("SUM(promotion_amount) as today_amount").Where("order_status in (0,1,2,3) and open_id = ? and DATE(order_group_success_time) = curdate() ", openId).Table(o.TableName()).First(&wallet).Error
- if err != nil {
- return wallet, err
- }
- //昨日收益
- err = orm.Eloquent.Select("SUM(promotion_amount) as yesterday_amount").Where("order_status in (0,1,2,3) and open_id = ? and DATE(order_group_success_time) = date_sub(curdate(),interval 1 day) ", openId).Table(o.TableName()).First(&wallet).Error
- if err != nil {
- return wallet, err
- }
- //近30日收益
- err = orm.Eloquent.Select("SUM(promotion_amount) as lately_amount").Where("order_status in (0,1,2,3) and open_id = ? and DATE(order_group_success_time) >= date_sub(curdate(),interval 30 day) ", openId).Table(o.TableName()).First(&wallet).Error
- if err != nil {
- return wallet, err
- }
- //上个月结算收益
- err = orm.Eloquent.Select("SUM(promotion_amount) as available_amount").Where("order_status = 5 and open_id = ? and DATE(order_group_success_time) >= date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now()) day),interval 0 month) ", openId).Table(o.TableName()).First(&wallet).Error
- if err != nil {
- return wallet, err
- }
- return wallet, nil
- }
- // 更新
- func (o *Order) Update(orderId string) (update Order, err error) {
- if err = orm.Eloquent.Table(o.TableName()).Where("order_id = ?", orderId).First(&update).Error; err != nil {
- return
- }
- //参数1:是要修改的数据
- //参数2:是修改的数据
- if err = orm.Eloquent.Table(o.TableName()).Model(&update).Updates(&o).Error; err != nil {
- return
- }
- return
- }
|