xingzai 8 månader sedan
förälder
incheckning
9e586abc3b

+ 173 - 0
controllers/roadshow/calendar_meeting_user.go

@@ -0,0 +1,173 @@
+package roadshow
+
+import (
+	"encoding/json"
+	"hongze/hz_crm_api/controllers"
+	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/roadshow"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// 日历参会名单
+type CalendarMeetingUserController struct {
+	controllers.BaseAuthController
+}
+
+// @Title 新增路演活动参会名单接口
+// @Description 新增路演活动参会名单接口
+// @Param	request	body roadshow.AddRsCalendarMeetingUserReq true "type json string"
+// @Success Ret=200 保存成功
+// @router /rs_calendar_meeting_user/add [post]
+func (this *CalendarMeetingUserController) Add() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	var req roadshow.AddRsCalendarMeetingUserReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	rsCalendarId := req.RsCalendarId
+	userIds := req.UserId
+
+	if rsCalendarId == 0 {
+		br.Msg = "路演信息错误!"
+		return
+	}
+	if len(userIds) == 0 {
+		br.Msg = "参会人不能为空!"
+		return
+	}
+	var userIdsStr []string
+	for _, v := range userIds {
+		userIdsStr = append(userIdsStr, strconv.Itoa(v))
+	}
+
+	listUser, err := models.GetWxUserListByUserIdsHaveCompany(strings.Join(userIdsStr, ","))
+	if err != nil {
+		br.Msg = "获取用户信息失败!"
+		br.ErrMsg = "获取用户信息失败-GetWxUserListByUserIdsHaveCompany!Err:" + err.Error()
+		return
+	}
+
+	var items []*roadshow.RsCalendarMeetingUser
+	for _, v := range listUser {
+		item := new(roadshow.RsCalendarMeetingUser)
+		item.RsCalendarId = rsCalendarId
+		item.UserId = v.UserId
+		item.Mobile = v.Mobile
+		item.Email = v.Email
+		item.CompanyId = v.CompanyId
+		item.CompanyName = v.CompanyName
+		item.RealName = v.RealName
+		item.Position = v.Position
+		item.AdminId = sysUser.AdminId
+		item.AdminName = sysUser.RealName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		items = append(items, item)
+	}
+	err = roadshow.MultiAddRsCalendarMeetingUser(items)
+	if err != nil {
+		br.Msg = "操作失败!"
+		br.ErrMsg = "操作失败-MultiAddRsCalendarMeetingUser!Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "添加成功"
+	br.IsAddLog = true
+}
+
+// @Title 路演活动参会名单列表接口
+// @Description 路演活动参会名单列表接口
+// @Param   RsCalendarId   query   int  true       "路演活动id"
+// @Success 200 {object} roadshow.CalendarListResp
+// @router /rs_calendar_meeting_user/list [get]
+func (this *CalendarMeetingUserController) List() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	rsCalendarId, _ := this.GetInt("RsCalendarId")
+	resp := new(roadshow.RsCalendarMeetingUserListResp)
+	list, err := roadshow.GetRsCalendarMeetingUserListByRsCalendarId(rsCalendarId)
+	if err != nil {
+		br.Msg = "获取失败!"
+		br.ErrMsg = "操作失败-GetRsCalendarMeetingUserListByRsCalendarId!Err:" + err.Error()
+		return
+	}
+	if len(list) == 0 {
+		list = make([]*roadshow.RsCalendarMeetingUserResp, 0)
+	}
+	resp.List = list
+	br.Ret = 200
+	br.Success = true
+	br.Data = resp
+	br.Msg = "获取成功"
+}
+
+// @Title 路演活动参会删除接口
+// @Description 路演活动参会删除接口
+// @Param   RsCalendarMeetingUserId   query   int  true       "参会名单主键ID"
+// @Success Ret=200 删除成功
+// @router /rs_calendar_meeting_user/delete [post]
+func (this *CalendarMeetingUserController) Delete() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req roadshow.DeleteRsCalendarMeetingUserReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	rsCalendarMeetingUserId := req.RsCalendarMeetingUserId
+	err = roadshow.DeleteRsCalendarMeetingUser(rsCalendarMeetingUserId)
+	if err != nil {
+		br.Msg = "删除失败!"
+		br.ErrMsg = "删除失败-DeleteRsCalendarMeetingUser!Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "删除成功"
+	br.IsAddLog = true
+}

+ 6 - 5
models/db.go

@@ -378,11 +378,12 @@ func initYb() {
 func initRoadShow() {
 	//注册对象
 	orm.RegisterModel(
-		new(roadshow.RsCalendar),           //路演主表
-		new(roadshow.RsCalendarResearcher), //路演研究员信息表
-		new(roadshow.RsMatters),            //公开会议表
-		new(roadshow.RsCalendarRelation),   //路演关系表(与上海的路演日历关系)
-		new(roadshow.RsReportRecord),       //路演统计表
+		new(roadshow.RsCalendar),            //路演主表
+		new(roadshow.RsCalendarResearcher),  //路演研究员信息表
+		new(roadshow.RsMatters),             //公开会议表
+		new(roadshow.RsCalendarRelation),    //路演关系表(与上海的路演日历关系)
+		new(roadshow.RsReportRecord),        //路演统计表
+		new(roadshow.RsCalendarMeetingUser), //路演参会名单表
 	)
 }
 

+ 79 - 0
models/roadshow/rs_calendar_meeting_user.go

@@ -0,0 +1,79 @@
+package roadshow
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type AddRsCalendarMeetingUserReq struct {
+	RsCalendarId int   `description:"日程ID"`
+	UserId       []int // 用户ID
+}
+
+type RsCalendarMeetingUser struct {
+	RsCalendarMeetingUserId int       `orm:"column(rs_calendar_meeting_user_id);pk" description:"主键ID"`
+	RsCalendarId            int       `description:"日程ID"`
+	UserId                  int       `description:"用户ID"`
+	Mobile                  string    `description:"手机号"`
+	Email                   string    `description:"邮箱"`
+	CompanyId               int       `description:"公司ID"`
+	CompanyName             string    `description:"公司名称"`
+	RealName                string    `description:"用户实际名称"`
+	Position                string    `description:"职位"`
+	AdminId                 int       `description:"管理员ID"`
+	AdminName               string    `description:"管理员姓名"`
+	CreateTime              time.Time `description:"创建时间"`
+	ModifyTime              time.Time `description:"修改时间"`
+}
+
+type RsCalendarMeetingUserResp struct {
+	RsCalendarMeetingUserId int    `description:"参会名单主键ID"`
+	RealName                string `description:"用户实际名称"`
+	Position                string `description:"职位"`
+}
+
+type DeleteRsCalendarMeetingUserReq struct {
+	RsCalendarMeetingUserId int `description:"参会名单主键ID"`
+}
+
+type RsCalendarMeetingUserListResp struct {
+	List []*RsCalendarMeetingUserResp
+}
+
+// MultiAddRsCalendarMeetingUser 批量添加RsCalendarMeetingUser
+func MultiAddRsCalendarMeetingUser(items []*RsCalendarMeetingUser) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(len(items), items)
+	return
+}
+
+// 删除
+func DeleteRsCalendarMeetingUser(rsCalendarMeetingUserID int) (err error) {
+	o := orm.NewOrm()
+	sql := ` DELETE FROM rs_calendar_meeting_user WHERE rs_calendar_meeting_user_id=? `
+	_, err = o.Raw(sql, rsCalendarMeetingUserID).Exec()
+	return err
+}
+
+// 列表
+func GetRsCalendarMeetingUserList(condition string, pars []interface{}) (items *RsCalendarMeetingUserResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_meeting_user WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&items)
+	return
+}
+
+// 通过路演ID获取参会人员列表
+func GetRsCalendarMeetingUserListByRsCalendarId(rsCalendarId int) (items []*RsCalendarMeetingUserResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_meeting_user WHERE  rs_calendar_id = ?  `
+
+	_, err = o.Raw(sql, rsCalendarId).QueryRows(&items)
+	return
+}

+ 1 - 0
models/wx_user.go

@@ -455,6 +455,7 @@ type WxUserItem struct {
 	IsMsgOutboundMobile int       `description:"是否弹窗过绑定外呼手机号区号"`
 	IsMaker             int       `description:"是否是决策人"`
 	Source              int
+	Position            string `description:"职位"`
 }
 
 // GetWxUserListByUserIds 根据用户ID集合获取用户有公司名称

+ 27 - 0
routers/commentsRouter.go

@@ -7549,6 +7549,33 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/rs_calendar_meeting_user/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/rs_calendar_meeting_user/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarMeetingUserController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/rs_calendar_meeting_user/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/seal:SealApprovalController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/seal:SealApprovalController"],
         beego.ControllerComments{
             Method: "Apply",

+ 1 - 0
routers/router.go

@@ -229,6 +229,7 @@ func init() {
 		web.NSNamespace("/roadshow",
 			web.NSInclude(
 				&roadshow.CalendarController{},
+				&roadshow.CalendarMeetingUserController{},
 			),
 		),
 		web.NSNamespace("/taglib",