|
- package svc
-
- import (
- "applet/app/comm/e"
- "applet/app/comm/svc"
- "applet/app/comm/utils"
- "applet/app/store/md"
- "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
- "encoding/json"
- "github.com/gin-gonic/gin"
- "strings"
- "time"
- )
-
- func ProjectList(c *gin.Context) {
- var args md.ProjectReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- res := ProjectComm(c, args)
- e.OutSuc(c, res, nil)
- return
- }
- func ProjectDetail(c *gin.Context) {
- var args md.ProjectReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- args.P = "1"
- list := ProjectComm(c, args)
- res := map[string]interface{}{}
- if len(list) > 0 {
- res = list[0]
- }
- e.OutSuc(c, res, nil)
- return
- }
- func ProjectLikeList(c *gin.Context) {
- var args md.ProjectReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- var project models.CampTaskProject
- svc.MasterDb(c).Where("id=?", project.Id).Get(&project)
- args.Id = ""
- args.Cid = utils.IntToStr(project.Cid)
- list := ProjectComm(c, args)
- res := map[string]interface{}{}
- if len(list) > 0 {
- res = list[0]
- }
- e.OutSuc(c, res, nil)
- return
- }
- func ProjectLike(c *gin.Context) {
- var args md.ProjectReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
- count, _ := svc.MasterDb(c).Where("uid=? and project_id=?", user.Info.Uid, args.Id).Count(&models.CampTaskProjectUserLike{})
- if count > 0 {
- e.OutErr(c, 400, e.NewErr(400, "意向已提交,负责人将与您对接"))
- return
- }
- var data = models.CampTaskProjectUserLike{
- Uid: user.Info.Uid,
- ProjectId: utils.StrToInt(args.Id),
- CreateTime: time.Now(),
- }
- svc.MasterDb(c).Insert(&data)
- e.OutSuc(c, "success", nil)
- return
-
- }
- func ProjectComm(c *gin.Context, args md.ProjectReq) []map[string]interface{} {
- args.Size = "10"
- list := make([]map[string]interface{}, 0)
- var data = make([]models.CampTaskProject, 0)
- sess := svc.MasterDb(c).Where("state=?", 1)
- if args.Cid != "" {
- sess.And("cid=?", args.Cid)
- }
- if args.Keyword != "" {
- sess.And("name like ?", "%"+args.Keyword+"%")
- }
- if args.Id != "" {
- sess.And("id=?", args.Id)
- }
- if args.Price != "" {
- ex := strings.Split(args.Price, "_")
- sess.And("money>=?", ex[0])
- sess.And("money<?", ex[1])
- }
- sort := "id desc"
- if args.Sort != "" {
- sort = strings.ReplaceAll(args.Sort, "_", " ")
- }
- sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy(sort).Find(&data)
- cate := make([]models.CampTaskProjectCate, 0)
- svc.MasterDb(c).Where("1=1").Find(&cate)
- user, _ := svc.GetDefaultUser(c, c.GetHeader("Authorization"))
- instructions := svc.SysCfgGet(c, "camp_instructions")
- for _, v := range data {
- 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)
- label := make([]string, 0)
- json.Unmarshal([]byte(v.Label), &label)
- tmp := map[string]interface{}{
- "year": v.CreateTime.Format("2006") + "年",
- "id": utils.IntToStr(v.Id),
- "name": v.Name,
- "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,
- "label": label,
- "is_like": "0",
- "instructions": instructions,
- }
- if user != nil {
- count, _ := svc.MasterDb(c).Where("uid=? and project_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskProjectUserLike{})
- if count > 0 {
- tmp["is_like"] = "1"
- }
- }
- for _, v1 := range cate {
- if v1.Id == v.Cid {
- tmp["cate_name"] = v1.Name
- }
- }
- list = append(list, tmp)
- }
-
- return list
- }
|