浏览代码

Merge branch 'CRM_14.5'

zwxi 1 年之前
父节点
当前提交
05056d617d
共有 5 个文件被更改,包括 97 次插入1 次删除
  1. 63 0
      controllers/company_user.go
  2. 4 1
      models/company/company_user.go
  3. 7 0
      models/company_user/request/follow.go
  4. 14 0
      models/wx_user.go
  5. 9 0
      routers/commentsRouter.go

+ 63 - 0
controllers/company_user.go

@@ -1210,6 +1210,10 @@ func (this *CompanyUserController) List() {
 				list[i].LastViewTimeStr = tmpLastViewTime.Format(utils.FormatDateTime)
 			}
 
+			if list[i].LastViewTime.Before(time.Now().AddDate(0,0,-7)) && list[i].IsFollow  == 1 {
+				list[i].NotRead = true
+			}
+
 			//如果有绑定数据,那么将数据返回对应的注册绑定数据
 			if _, ok := userRecordRegisterMap[int(item.UserId)]; ok {
 				list[i].IsRegister = true
@@ -5927,3 +5931,62 @@ func (this *CompanyUserController) ImportListMatchDownload() {
 	br.Ret = 200
 	br.Success = true
 }
+
+// Follow
+// @Title 关注联系人
+// @Description 关注联系人
+// @Param	request	body request.ApplyMarkReq true "type json string"
+// @Success 200 {object} 标记处理成功
+// @router /follow [post]
+func (this *CompanyUserController) Follow() {
+	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 request.FollowReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.UserId <= 0  {
+		br.Msg = "用户ID异常"
+		br.ErrMsg = "用户ID异常"
+		return
+	}
+
+	// 查公司里有多少已关注,上限三个
+	count, err := models.GetCompanyFollowCount(req.CompanyId)
+	if err != nil {
+		br.Msg = "操作失败! "
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
+	if count == 3 && req.Type == 1 {
+		br.Msg = "关注失败,特别关注已达上限(上限三个)"
+		br.ErrMsg = "关注失败,特别关注已达上限(上限三个)"
+		return
+	}
+
+	// 关注或取关
+	err = models.SetUserFollow(req.UserId, req.Type)
+	if err != nil {
+		br.Msg = "操作失败! "
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}

+ 4 - 1
models/company/company_user.go

@@ -61,12 +61,14 @@ type CompanyUser struct {
 	IsChartPermissionSetting int       `description:"是否设置过图表权限, 0-未设置,1-已设置,2-无需设置"`
 	YbProductViewTotal       int       `description:"研报分产品阅读统计"`
 	IsSubscribe              int       `description:"是否关注了微信公众号: 0-未关注; 1-已关注"`
+	IsFollow                 int       `description:"是否特别关注: 0-未关注; 1-已关注"`
 	IsSubscribeHzyj          int       `description:"是否关注了弘则研究微信公众号: 0-未关注; 1-已关注"`
 	IsSubscribeCygx          int       `description:"是否关注了查研观向微信公众号: 0-未关注; 1-已关注"`
 	FiccViewTotal            int       `description:"ficc报告的阅读次数" json:"-"`
 	FiccLastViewTime         time.Time `description:"ficc报告最近一次阅读时间" json:"-"`
 	RaiViewTotal             int       `description:"权益报告的阅读次数" json:"-"`
 	RaiLastViewTime          time.Time `description:"权益报告的最近一次阅读时间" json:"-"`
+	NotRead                  bool      `description:"是否七天内未阅读"`
 }
 
 type CompanyUserListResp struct {
@@ -138,7 +140,8 @@ func GetCompanyUserListV2(condition string, pars []interface{}, companyId, start
 	if condition != "" {
 		sql += condition
 	}
-	sql += ` group by a.user_id ORDER BY a.is_register desc,a.report_last_view_time desc,a.last_updated_time DESC LIMIT ?,? `
+	//sql += ` group by a.user_id ORDER BY a.is_register desc,a.report_last_view_time desc,a.last_updated_time DESC LIMIT ?,? `
+	sql += ` group by a.user_id ORDER BY CASE WHEN is_follow = 1 AND (report_last_view_time < NOW()  - INTERVAL 7 DAY or report_last_view_time is NULL ) THEN 0 ELSE 1 END,a.is_register desc,a.report_last_view_time ASC,a.last_updated_time  ASC LIMIT ?,? `
 	_, err = o.Raw(sql, companyId, pars, startSize, pageSize).QueryRows(&items)
 	return
 }

+ 7 - 0
models/company_user/request/follow.go

@@ -0,0 +1,7 @@
+package request
+
+type FollowReq struct {
+	UserId    int `description:"用户ID"`
+	CompanyId int `description:"公司ID"`
+	Type      int `description:"类型 0取关 1关注"`
+}

+ 14 - 0
models/wx_user.go

@@ -585,3 +585,17 @@ func GetWxUserList(condition string, pars []interface{}) (items []*WxUser, err e
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+func SetUserFollow(userId, follow int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE wx_user SET is_follow=? WHERE user_id=? `
+	_, err = o.Raw(sql, follow, userId).Exec()
+	return
+}
+
+func GetCompanyFollowCount(companyId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT COUNT(1) FROM wx_user WHERE company_id=? AND is_follow = 1 `
+	err = o.Raw(sql, companyId).QueryRow(&count)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -9682,6 +9682,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanyUserController"],
+        beego.ControllerComments{
+            Method: "Follow",
+            Router: `/follow`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanyUserController"],
         beego.ControllerComments{
             Method: "GetCompanySellerList",