You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package evaluation
import (
mysql2 "git.oa00.com/go/mysql"
"github.com/gin-gonic/gin"
"recook/internal/dbc"
"recook/internal/model/goods"
"recook/internal/v2/lib/back"
"recook/internal/v2/model/actives"
live2 "recook/internal/v2/model/live"
"recook/internal/v2/model/recook/user"
"recook/tools"
"time"
)
type AppEvaluation struct {
}
type delRes struct {
Id uint `json:"id"` //相关表id
//Type uint `json:"type"` //1图文2视频
}
//删除视频或图文
func (e AppEvaluation) Del(c *gin.Context) {
args := delRes{}
if err := tools.ParseParams(&args, c); err != nil {
back.Fail(c, err.Error())
return
}
if args.Id <= 0 {
back.Fail(c, "请正确传入表id")
return
}
//if args.Type == 0 {
// back.Fail(c, "类型为必传项")
// return
//}
tx := dbc.DB.Begin()
{
//查询总表内容
var trend live2.UserTrend
tx.Table(trend.TableName()).Where("id=?", args.Id).First(&trend)
if trend.Id == 0 {
back.Fail(c, "不存在该id")
tx.Rollback()
return
}
//删除分表数据
if trend.TrendType == 1 {
var a goods.MomentsCopy
err := tx.Table(a.TableName()).Where("id=?", trend.OriginId).Delete(&a).Error
if err != nil {
back.Fail(c, err.Error())
tx.Rollback()
return
}
//删除图片
var gl []goods.MomentsCopyPhoto
err = tx.Table("recook_goods_moments_copy_photo").Where("moments_copy_id=?", trend.OriginId).Delete(&gl).Error
if err != nil {
back.Fail(c, err.Error())
tx.Rollback()
return
}
}
if trend.TrendType == 2 {
var s live2.Short
err := tx.Table(s.TableName()).Where("id=?", trend.OriginId).Delete(&s).Error
if err != nil {
back.Fail(c, err.Error())
tx.Rollback()
return
}
}
//删除总关系表的数据
err := tx.Table(trend.TableName()).Where(" id=?", args.Id).Delete(&trend).Error
if err != nil {
back.Fail(c, err.Error())
tx.Rollback()
return
}
}
tx.Commit()
back.Suc(c, "ok", nil)
}
type activeRes struct {
Id uint `json:"id"` //传入用户id
}
//Active 统计在线活跃人数
func (e AppEvaluation) Active(c *gin.Context) {
var p activeRes
if err := tools.ParseParams(&p, c); err != nil {
back.Fail(c, err.Error())
return
}
//t1 := time.Now().Format("2006-01-02")
//t2, _ := time.ParseInLocation("2006-01-02", t1, time.Local)
////t3, _ := strconv.Atoi(t2)
////cache.SetActiveNum(uint(t3), p.Id)
//var ac actives.ActiveUserModel
//mysql2.Db.Table(ac.TableName()).Where("date=?", t2).First(&ac)
//if ac.Id > 0 {
// mysql2.Db.Table(ac.TableName()).Where("date=?", t2).Updates(&actives.ActiveUserModel{
// ActiveList: fmt.Sprintf("%v,%v", ac.ActiveList, p.Id),
// })
//
//} else {
// mysql2.Db.Table(ac.TableName()).Create(&actives.ActiveUserModel{
// Date: t2,
// ActiveList: fmt.Sprintf("%v", p.Id),
// })
//}
var ac actives.ActiveUserModel
mysql2.Db.Table(ac.TableName()).Where("user_id=?", p.Id).First(&ac)
if ac.Id > 0 { //存在更新用户的活跃时间
mysql2.Db.Table(ac.TableName()).Where("id=?", ac.Id).Update("update_time", time.Now())
back.Suc(c, "ok", nil)
return
} else {
var uf user.RecookUserInfoModel
mysql2.Db.Table(uf.TableName()).Where("id=?", p.Id).First(&uf)
if uf.Id > 0 {
t1 := uf.CreatedAt.Time.Format("2006-01-02 15:04:06")
t2, _ := time.ParseInLocation("2006-01-02 15:04:06", t1, time.Local)
var act = actives.ActiveUserModel{
UserID: p.Id,
CreatedTime: t2,
UpdateTime: time.Now(),
}
mysql2.Db.Table(act.TableName()).Create(&act)
back.Suc(c, "ok", nil)
return
} else {
back.Fail(c, "该用户不存在")
}
}
}