123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- package controllers
- import (
- "encoding/json"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/utils"
- "rdluck_tools/paging"
- "strconv"
- "strings"
- "time"
- )
- //活动
- type ActivityCoAntroller struct {
- BaseAuthController
- }
- // @Title 活动类型列表
- // @Description活动类型列表接口
- // @Success 200 {object} models.ActivityTypeListResp
- // @router /activityTypelist [get]
- func (this *ActivityCoAntroller) List() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- resp := new(models.ActivityTypeListResp)
- list, err := models.GetActivityTypeList()
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- resp.List = list
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 活动列表
- // @Description 获取活动列表接口
- // @Param PageSize query int true "每页数据条数"
- // @Param CurrentIndex query int true "当前页页码,从1开始"
- // @Param ChartPermissionIds query string false "行业id 多个用 , 隔开"
- // @Param ActivityTypeIds query string false "活动类型id 多个用 , 隔开"
- // @Param KeyWord query string false "搜索关键词"
- // @Param ActiveState query string false "活动进行状态 未开始:1、进行中2、已结束3"
- // @Param IsShowJurisdiction query int false "是否仅展示有权限的,1是,0否 默认为零"
- // @Success 200 {object} models.GetCygxActivityListRep
- // @router /list [get]
- func (this *ActivityCoAntroller) ActivityList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- return
- }
- uid := user.UserId
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- chartPermissionIds := this.GetString("ChartPermissionIds")
- activityTypeIds := this.GetString("ActivityTypeIds")
- isShowJurisdiction, _ := this.GetInt("IsShowJurisdiction")
- keyWord := this.GetString("KeyWord")
- activeState := this.GetString("ActiveState")
- if activeState != "2" && activeState != "3" {
- activeState = "1"
- }
- if isShowJurisdiction != 1 {
- isShowJurisdiction = 0
- }
- itemSearch := new(models.CygxActivityUserSearchContent)
- itemSearch.UserId = uid
- itemSearch.CreateTime = time.Now()
- itemSearch.Mobile = user.Mobile
- itemSearch.Email = user.Email
- itemSearch.CompanyId = user.CompanyId
- itemSearch.CompanyName = user.CompanyName
- itemSearch.ModifyTime = time.Now()
- itemSearch.ChartPermissionids = chartPermissionIds
- itemSearch.ActivityTypeids = activityTypeIds
- itemSearch.ActiveState = activeState
- itemSearch.IsShowJurisdiction = isShowJurisdiction
- _, errSearch := models.AddUserSearchContent(itemSearch)
- if errSearch != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "操作失败,Err:" + errSearch.Error()
- return
- }
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = utils.StartIndex(currentIndex, pageSize)
- var condition string
- var pars []interface{}
- if keyWord != "" {
- condition += ` AND (art.activity_name LIKE '%` + keyWord + `%' ) `
- }
- //行业名称
- if len(chartPermissionIds) > 0 {
- condition += ` AND art.chart_permission_id IN (` + chartPermissionIds + `)`
- }
- condition += ` AND art.publish_status = 1 `
- //1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
- resultTimeNow := time.Now().Format("2006-01-02 15:04:05")
- resultTime30 := time.Now().Add(+time.Minute * 30).Format("2006-01-02 15:04:05")
- resultTime_30 := time.Now().Add(-time.Minute * 30).Format("2006-01-02 15:04:05")
- resultTime60 := time.Now().Add(+time.Minute * 60).Format("2006-01-02 15:04:05")
- resultTime_60 := time.Now().Add(-time.Minute * 60).Format("2006-01-02 15:04:05")
- if activeState == "1" {
- if len(activityTypeIds) > 0 {
- condition += ` AND art.activity_type_id IN (` + activityTypeIds + `)`
- }
- condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
- } else if activeState == "2" {
- condition += ` AND art.activity_time > ` + "'" + resultTimeNow + "'"
- if len(activityTypeIds) > 0 {
- condition += ` AND art.activity_type_id IN (` + activityTypeIds + `)`
- condition += ` AND art.activity_time < ` + "'" + resultTime30 + "'"
- } else {
- var sqlOr string
- sqlOr = condition
- condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND art.activity_time < ` + "'" + resultTime30 + "'" + ")"
- condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND art.activity_time < ` + "'" + resultTime60 + "'" + sqlOr + ")"
- }
- } else {
- if len(activityTypeIds) > 0 {
- condition += ` AND art.activity_type_id IN (` + activityTypeIds + `)`
- condition += ` AND art.activity_time > ` + "'" + resultTime_30 + "'"
- } else {
- var sqlOr string
- sqlOr = condition
- condition += ` AND (art.activity_type_id IN ( 1, 2, 3 ) AND art.activity_time <` + "'" + resultTime_30 + "'" + ")"
- condition += ` OR(art.activity_type_id IN ( 4, 5, 6 ) AND art.activity_time < ` + "'" + resultTime_60 + "'" + sqlOr + ")"
- }
- }
- total, err := models.GetActivityCount(condition, pars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + err.Error()
- return
- }
- if activeState != "1" {
- condition += ` ORDER BY art.activity_time DESC `
- }
- //condition += ` ORDER BY art.activity_time DESC `
- list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize)
- srt30min := "1,2,3"
- srt60min := "4,5,6"
- for k, v := range list {
- if strings.Contains(srt30min, strconv.Itoa(v.ActivityTypeId)) {
- resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
- if resultTime.After(time.Now()) {
- list[k].ActiveState = "1"
- } else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*30)) {
- list[k].ActiveState = "2"
- } else {
- list[k].ActiveState = "3"
- }
- }
- if strings.Contains(srt60min, strconv.Itoa(v.ActivityTypeId)) {
- resultTime := utils.StrTimeToTime(v.ActivityTime) //时间字符串格式转时间格式
- if resultTime.After(time.Now()) {
- list[k].ActiveState = "1"
- } else if time.Now().After(resultTime) && resultTime.After(time.Now().Add(+time.Minute*60)) {
- list[k].ActiveState = "2"
- } else {
- list[k].ActiveState = "3"
- }
- }
- }
- if errList != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取失败,Err:" + errList.Error()
- return
- }
- page := paging.GetPaging(currentIndex, pageSize, total)
- resp := new(models.GetCygxActivityListRep)
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 活动详情
- // @Description 获取活动详情接口
- // @Param ActivityId query int true "活动ID"
- // @Success Ret=200 {object} models.ActivityDetail
- // @router /detail [get]
- func (this *ActivityCoAntroller) Detail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,用户信息为空"
- br.Ret = 408
- return
- }
- activityId, _ := this.GetInt("ActivityId")
- if activityId < 1 {
- br.Msg = "请输入活动ID"
- return
- }
- activityInfo, err := models.GetAddActivityInfoById(activityId)
- if activityInfo == nil {
- br.Msg = "活动不存在"
- br.ErrMsg = "活动ID错误,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
- return
- }
- detail, errDetail := models.GetActivityTypeDetailById(activityInfo.ActivityTypeId)
- if errDetail != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + errDetail.Error()
- return
- }
- activityInfo.ShowType = detail.ShowType
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = activityInfo
- }
- // @Title 活动的报名
- // @Description 活动的报名接口
- // @Param request body models.ActivityIdRep true "type json string"
- // @Success 200 操作成功
- // @router /signup/add [post]
- func (this *ActivityCoAntroller) PublishAndCancel() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,用户信息为空"
- br.Ret = 408
- return
- }
- uid := user.UserId
- var req models.ActivityIdRep
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- activityId := req.ActivityId
- item := new(models.CygxActivitySignup)
- activityInfo, errInfo := models.GetAddActivityInfoById(activityId)
- if activityInfo == nil {
- br.Msg = "操作失败"
- br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(activityId)
- return
- }
- if errInfo != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "操作失败,Err:" + errInfo.Error()
- return
- }
- item.UserId = uid
- item.ActivityId = activityId
- item.CreateTime = time.Now()
- item.Mobile = user.Mobile
- item.Email = user.Email
- item.CompanyId = user.CompanyId
- item.CompanyName = user.CompanyName
- _, errSignup := models.AddActivitySignup(item)
- if errSignup != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "操作失败,Err:" + errSignup.Error()
- return
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "操作成功"
- }
- // @Title 用户搜索详情
- // @Description 获取活动详情接口
- // @Param ActivityId query int true "活动ID"
- // @Param IsShowJurisdiction query int true "是否仅展示有权限的,1是,0否 默认为0"
- // @Success Ret=200 {object} models.ActivityDetail
- // @router /getUserSearchContent [get]
- func (this *ActivityCoAntroller) GetUserSearchContent() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- user := this.User
- if user == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,用户信息为空"
- br.Ret = 408
- return
- }
- uid := user.UserId
- detail, err := models.GetUserSearchContentByUid(uid)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- //ChartPermissionids string `description:"行业id"`
- //ActivityTypeids string `description:"活动类型id"`
- //ActiveState string `description:
- //IsShowJurisdiction int `description:"是否仅展示有权限的,1是,0否"`
- chartPermissionidsSlice := strings.Split(detail.ChartPermissionids, ",")
- activityTypeidsSlice := strings.Split(detail.ActivityTypeids, ",")
- activeStateSlice := strings.Split(detail.ActiveState, ",")
- //activeStateSlice := [3]int{1, 2, 3} //"活动进行状态 未开始:1、进行中2、已结束3"`
- listActivityType, errActivityType := models.GetActivityTypeList()
- if errActivityType != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + errActivityType.Error()
- return
- }
- for _, v := range activityTypeidsSlice {
- for k2, v2 := range listActivityType {
- if strconv.Itoa(v2.ActivityTypeId) == v {
- listActivityType[k2].IsChoose = true
- }
- }
- }
- listChartPermissionid, errChart := models.GetChartPermissionActivity()
- if errChart != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + errChart.Error()
- return
- }
- for _, v := range chartPermissionidsSlice {
- for k2, v2 := range listChartPermissionid {
- if strconv.Itoa(v2.ChartPermissionId) == v {
- listChartPermissionid[k2].IsChoose = true
- }
- }
- }
- resp := new(models.ActivityUserSearchContentList)
- resp.ListActivityType = listActivityType
- resp.ListChartPermission = listChartPermissionid
- if detail.IsShowJurisdiction == 1 {
- resp.IsShowJurisdiction = true
- }
- activeStateList := []models.ActivityStaus{models.ActivityStaus{Id: 1, StatusName: "未开始"}, models.ActivityStaus{Id: 2, StatusName: "进行中"}, models.ActivityStaus{Id: 3, StatusName: "已结束"}}
- for _, v := range activeStateSlice {
- for k2, v2 := range activeStateList {
- if strconv.Itoa(v2.Id) == v {
- activeStateList[k2].IsChoose = true
- }
- }
- }
- if activeStateList[1].IsChoose == activeStateList[2].IsChoose == false {
- activeStateList[0].IsChoose = true
- }
- resp.ListActivityStaus = activeStateList
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- type Arrayse struct {
- Id int
- IsChoose bool
- Name string
- }
- //"list" : [
- // {
- // "id" :1,
- // "IsChoose": bool
- // },
- // {
- // "id" :2,
- // "IsChoose": bool
- // },
- // {
- // "id" :3,
- // "IsChoose": bool
- // }
- //]
|