|
- package svc
-
- import (
- "applet/app/comm/e"
- "applet/app/comm/svc"
- "applet/app/comm/utils"
- "applet/app/operator/md"
- "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
- "encoding/json"
- "github.com/gin-gonic/gin"
- "time"
- )
-
- func ProjectSelect(c *gin.Context) {
- var args md.ProjectListSelectReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
-
- var project = make([]models.CampTaskProject, 0)
- svc.MasterDb(c).Where("is_must=1 and state=1").Find(&project)
- for _, v := range project {
- if utils.InArr(utils.IntToStr(v.Id), args.Ids) == false {
- e.OutErr(c, 400, e.NewErr(400, "《"+v.Name+"》未选择"))
- return
- }
- }
- isCanSelect := "0"
- sess := svc.MasterDb(c).NewSession()
- defer sess.Close()
- sess.Begin()
- var data models.CampTaskProjectOperatorLike
- sess.Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
- if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
- isCanSelect = "1"
- }
- if isCanSelect != "1" {
- sess.Rollback()
- e.OutErr(c, 400, e.NewErr(400, "您不能选择"))
- return
- }
- no := data.No + 1
- if data.State == 3 {
- no = data.No
- update, _ := sess.Where("no=? and uid=?", no, user.Info.Uid).Delete(&models.CampTaskProjectOperatorLike{})
- if update == 0 {
- sess.Rollback()
- e.OutErr(c, 400, e.NewErr(400, "提交失败"))
- return
- }
- }
- for _, v := range args.Ids {
- var tmp = models.CampTaskProjectOperatorLike{
- Uid: user.Info.Uid,
- ProjectId: utils.StrToInt(v),
- CreateTime: time.Now(),
- No: no,
- }
- insert, _ := sess.Insert(&tmp)
- if insert == 0 {
- sess.Rollback()
- e.OutErr(c, 400, e.NewErr(400, "提交失败"))
- return
- }
- }
- sess.Commit()
- e.OutSuc(c, "success", nil)
- return
- }
- func ProjectList(c *gin.Context) {
- var args md.ProjectListReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
- isCanSelect := "0"
- var data models.CampTaskProjectOperatorLike
- svc.MasterDb(c).Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
- if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
- isCanSelect = "1"
- }
-
- hotTask := make([]map[string]interface{}, 0)
- var hotTaskList []models.CampTaskProject
- sess := svc.MasterDb(c).Where("state=?", 1)
- if args.Cid != "" {
- sess.And("cid=?", args.Cid)
- }
- total, _ := sess.Limit(utils.StrToInt(args.P), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("is_must desc,id desc").FindAndCount(&hotTaskList)
- cate := make([]models.CampTaskProjectCate, 0)
- svc.MasterDb(c).Where("1=1").Find(&cate)
- for _, v := range hotTaskList {
- enterpriseInfo := make(map[string]string)
- json.Unmarshal([]byte(v.EnterpriseInfo), &enterpriseInfo)
- enterpriseInfo1 := map[string]string{
- "name": enterpriseInfo["name"],
- "user_name": enterpriseInfo["user_name"],
- "address": enterpriseInfo["address"],
- }
- img := make([]string, 0)
- json.Unmarshal([]byte(v.Img), &img)
- firstImg := ""
- if len(img) > 0 {
- firstImg = img[0]
- }
- detailInfo := make([]string, 0)
- json.Unmarshal([]byte(v.DetailInfo), &detailInfo)
- tmp := map[string]interface{}{
- "year": v.CreateTime.Format("2006") + "年",
- "id": utils.IntToStr(v.Id),
- "name": v.Name,
- "cid": utils.IntToStr(v.Cid),
- "money": utils.Comm(v.Money),
- "img": firstImg,
- "video_info": v.VideoInfo,
- "img_list": img,
- "detail_info": detailInfo,
- "create_time": v.CreateTime.Format("2006-01-02 15:04:05"),
- "enterprise_info": enterpriseInfo1,
- "cate_name": "",
- "adv_word": v.AdvWord,
- "is_must": utils.IntToStr(v.IsMust),
- }
- for _, v1 := range cate {
- if v1.Id == v.Cid {
- tmp["cate_name"] = v1.Name
- }
- }
- hotTask = append(hotTask, tmp)
- }
- taskCate := make([]map[string]string, 0)
- taskCateList := make([]models.CampTaskProjectCate, 0)
- svc.MasterDb(c).Where("is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
- for _, v := range taskCateList {
- tmp := map[string]string{
- "name": v.Name, "value": utils.IntToStr(v.Id),
- }
- taskCate = append(taskCate, tmp)
- }
- res := map[string]interface{}{
- "cate_list": taskCate,
- "is_can_select": isCanSelect,
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
|