xingzai 3 жил өмнө
parent
commit
76c891b875

+ 191 - 0
controllers/activity.go

@@ -1,6 +1,7 @@
 package controllers
 
 import (
+	"encoding/json"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
 	"rdluck_tools/paging"
@@ -53,6 +54,7 @@ func (this *ActivityCoAntroller) List() {
 // @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() {
@@ -73,12 +75,34 @@ func (this *ActivityCoAntroller) ActivityList() {
 	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
@@ -221,3 +245,170 @@ func (this *ActivityCoAntroller) Detail() {
 	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
+//	}
+//]

+ 1 - 1
models/activity.go

@@ -138,7 +138,7 @@ func AddActivity(item *CygxActivity) (newId int64, err error) {
 //通过纪要ID获取活动详情
 func GetAddActivityInfoById(ActivityId int) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_activity  WHERE activity_id=?`
+	sql := `SELECT * FROM cygx_activity  WHERE activity_id=? AND publish_status = 1 `
 	err = o.Raw(sql, ActivityId).QueryRow(&item)
 	return
 }

+ 83 - 0
models/activity_signup.go

@@ -0,0 +1,83 @@
+package models
+
+import (
+	"fmt"
+	"rdluck_tools/orm"
+	"time"
+)
+
+type CygxActivitySignup struct {
+	Id          int       `orm:"column(id);pk"`
+	ActivityId  int       `description:"活动ID"`
+	UserId      int       `description:"用户ID"`
+	CreateTime  time.Time `description:"创建时间"`
+	Mobile      string    `description:"手机号"`
+	Email       string    `description:"邮箱"`
+	CompanyId   int       `description:"公司id"`
+	CompanyName string    `description:"公司名称"`
+}
+
+//报名记录日志
+type CygxActivitySignupLog struct {
+	Id          int       `orm:"column(id);pk"`
+	ActivityId  int       `description:"活动ID"`
+	UserId      int       `description:"用户ID"`
+	CreateTime  time.Time `description:"创建时间"`
+	Mobile      string    `description:"手机号"`
+	Email       string    `description:"邮箱"`
+	CompanyId   int       `description:"公司id"`
+	CompanyName string    `description:"公司名称"`
+	Type        int       `description:"操作方式,1报名,2取消报名"`
+}
+
+//添加报名信息
+func AddActivitySignup(item *CygxActivitySignup) (lastId int64, err error) {
+	o := orm.NewOrm()
+	o.Begin()
+	defer func() {
+		fmt.Println(err)
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+	var count int
+	sql := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE user_id=? AND activity_id=? `
+	err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&count)
+	if err != nil {
+		return
+	}
+	if count > 0 {
+		sql := `DELETE  FROM cygx_activity_signup  WHERE user_id=? AND activity_id=? `
+		_, err = o.Raw(sql, item.UserId, item.ActivityId).Exec()
+	} else {
+		lastId, err = o.Insert(item)
+	}
+	if err != nil {
+		return
+	}
+	itemLog := new(CygxActivitySignupLog)
+	itemLog.UserId = item.UserId
+	itemLog.ActivityId = item.ActivityId
+	itemLog.CreateTime = time.Now()
+	itemLog.Mobile = item.Mobile
+	itemLog.Email = item.Email
+	itemLog.CompanyId = item.CompanyId
+	itemLog.CompanyName = item.CompanyName
+	if count == 0 {
+		itemLog.Type = 1
+	} else {
+		itemLog.Type = 2
+	}
+	lastId, err = o.Insert(itemLog)
+	return
+}
+
+//获取用户报名数量
+func GetActivitySignupCount(uid, activityId int) (count int, err error) {
+	sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND user_id=? AND activity_id=? `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, uid, activityId).QueryRow(&count)
+	return
+}

+ 78 - 0
models/activity_user_search_content.go

@@ -0,0 +1,78 @@
+package models
+
+import (
+	"fmt"
+	"rdluck_tools/orm"
+	"time"
+)
+
+type CygxActivityUserSearchContent struct {
+	Id                 int       `orm:"column(id);pk"`
+	UserId             int       `description:"用户ID"`
+	CreateTime         time.Time `description:"创建时间"`
+	Mobile             string    `description:"手机号"`
+	Email              string    `description:"邮箱"`
+	CompanyId          int       `description:"公司id"`
+	CompanyName        string    `description:"公司名称"`
+	ModifyTime         time.Time `description:"更新时间"`
+	ChartPermissionids string    `description:"行业id"`
+	ActivityTypeids    string    `description:"活动类型id"`
+	ActiveState        string    `description:"活动进行状态 未开始:1、进行中2、已结束3"`
+	IsShowJurisdiction int       `description:"是否仅展示有权限的,1是,0否"`
+}
+
+//添加报名信息
+func AddUserSearchContent(item *CygxActivityUserSearchContent) (lastId int64, err error) {
+	o := orm.NewOrm()
+	o.Begin()
+	defer func() {
+		fmt.Println(err)
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+	var count int
+	sql := `SELECT COUNT(1) AS count FROM cygx_activity_user_search_content WHERE user_id=? `
+	err = o.Raw(sql, item.UserId).QueryRow(&count)
+	if err != nil {
+		return
+	}
+	if count > 0 {
+		//sql := `UPDATE cygx_activity_user_search_content SET chart_permissionids = '` + item.ChartPermissionids + `',activity_typeids = '` + item.ActivityTypeids + `',active_state = '` + item.ActiveState + `',is_show_jurisdiction = '` + strconv.Itoa(item.IsShowJurisdiction) + `' ,modify_time=NOW() WHERE user_id=? `
+		sql := `UPDATE cygx_activity_user_search_content SET chart_permissionids = ?,activity_typeids = ?,active_state = ?,is_show_jurisdiction = ? ,modify_time=NOW() WHERE user_id=? `
+		//_, err = o.Raw(sql,item.UserId).Exec()
+		_, err = o.Raw(sql, item.ChartPermissionids, item.ActivityTypeids, item.ActiveState, item.IsShowJurisdiction, item.UserId).Exec()
+		return
+	} else {
+		lastId, err = o.Insert(item)
+	}
+	return
+}
+
+//通过用户ID获取用户搜索条件详情
+func GetUserSearchContentByUid(uid int) (item *CygxActivityUserSearchContent, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity_user_search_content WHERE user_id = ? `
+	err = o.Raw(sql, uid).QueryRow(&item)
+	return
+}
+
+type ActivityUserSearchContentList struct {
+	ListActivityStaus   []ActivityStaus
+	ListChartPermission []*ActivityChartPermission
+	ListActivityType    []*ActivityType
+
+	IsShowJurisdiction bool `description:"是否仅展示有权限的,1是,0否"`
+}
+
+type ActivityStaus struct {
+	Id         int
+	IsChoose   bool `description:"是否选择"`
+	StatusName string
+}
+
+type Arrayse struct {
+	IsChoose bool
+}

+ 13 - 0
models/chart_permission.go

@@ -7,6 +7,12 @@ type ChartPermission struct {
 	PermissionName    string `description:"权限名称"`
 }
 
+type ActivityChartPermission struct {
+	ChartPermissionId int    `description:"权限id"`
+	PermissionName    string `description:"权限名称"`
+	IsChoose          bool   `description:"是否选择"`
+}
+
 type ChartPermissionResp struct {
 	List []*ChartPermission
 }
@@ -41,3 +47,10 @@ func GetChartPermissionById(chartPermissionId int) (item *ChartPermission, err e
 	err = o.Raw(sql, chartPermissionId).QueryRow(&item)
 	return
 }
+
+func GetChartPermissionActivity() (items []*ActivityChartPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM chart_permission WHERE chart_permission_id IN (19,20,21,22,23) ORDER BY sort ASC `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 3 - 0
models/db.go

@@ -49,5 +49,8 @@ func init() {
 		new(CygxSearchKeyWord),
 		new(UserRecord),
 		new(CygxIndustryTop),
+		new(CygxActivitySignup),
+		new(CygxActivitySignupLog),
+		new(CygxActivityUserSearchContent),
 	)
 }