Browse Source

no message

zhangchuanxing 4 months ago
parent
commit
458d77bb7a
4 changed files with 318 additions and 0 deletions
  1. 194 0
      controllers/user.go
  2. 1 0
      models/db.go
  3. 105 0
      models/xzs_choose_send.go
  4. 18 0
      routers/commentsRouter.go

+ 194 - 0
controllers/user.go

@@ -523,3 +523,197 @@ func (this *UserController) ChooseSubmit() {
 	br.Success = true
 	br.Msg = "保存成功"
 }
+
+// @Title 提交用户的选择关注的类型
+// @Description 提交用户的选择关注的类型接口
+// @Param	request	body models.SubmitChooseSendResp true "type json string"
+// @Success 200 {object}  models.CygxXzsChooseSendResp
+// @router /choose/submit_follow_type [post]
+func (this *UserController) ChooseSubmitFollowType() {
+	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
+	}
+	if user.Mobile == "" {
+		br.Msg = "提交失败!"
+		br.ErrMsg = "提交失败,手机号不能为空"
+		return
+	}
+	var req models.SubmitChooseSendFollowTypeResp
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	listMap, err := models.GetCygxXzsChooseCategoryMapList()
+	if err != nil {
+		br.Msg = "操作失败!"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	mapReport := make(map[int]int)
+	for _, v := range listMap {
+		mapReport[v.CategoryId] = v.Id
+	}
+
+	followType := req.FollowType
+	listReq := req.List
+
+	var itemsFllow []*models.CygxIndustryFllow
+	var itemsCategory []*models.CygxXzsChooseCategory
+	var itemsZhouqi []*models.CygxXzsChooseCategoryZhouqi
+	for _, vChartPermissionn := range listReq {
+		if vChartPermissionn.ChartPermissionName == utils.CE_LUE_NAME || vChartPermissionn.ChartPermissionName == utils.GU_SHOU_NAME {
+			//策略与固收
+			for _, v := range vChartPermissionn.CheckList {
+				item := new(models.CygxXzsChooseCategory)
+				categoryId := v
+				item.CategoryId = v
+				item.IdCygx = mapReport[categoryId]
+				item.UserId = user.UserId
+				item.Mobile = user.Mobile
+				item.Email = user.Email
+				item.CompanyId = user.CompanyId
+				item.CompanyName = user.CompanyName
+				item.RealName = user.RealName
+				item.FollowType = followType
+				item.CreateTime = time.Now()
+				item.ModifyTime = time.Now()
+				itemsCategory = append(itemsCategory, item)
+			}
+		} else if vChartPermissionn.ChartPermissionName == utils.ZHOU_QI_NAME {
+			//周期
+			for _, v := range vChartPermissionn.CheckList {
+				item := new(models.CygxXzsChooseCategoryZhouqi)
+				item.CategoryId = v
+				item.UserId = user.UserId
+				item.Email = user.Email
+				item.Mobile = user.Mobile
+				item.RealName = user.RealName
+				item.CompanyId = user.CompanyId
+				item.CompanyName = user.CompanyName
+				item.FollowType = followType
+				item.CreateTime = time.Now()
+				item.ModifyTime = time.Now()
+				itemsZhouqi = append(itemsZhouqi, item)
+			}
+		} else {
+			//正常带有产业的行业
+			for _, v := range vChartPermissionn.CheckList {
+				item := new(models.CygxIndustryFllow)
+				item.IndustrialManagementId = v
+				item.UserId = user.UserId
+				item.Mobile = user.Mobile
+				item.Email = user.Email
+				item.CompanyId = user.CompanyId
+				item.CompanyName = user.CompanyName
+				item.RealName = user.RealName
+				item.Type = 1
+				item.FollowType = followType
+				item.CreateTime = time.Now()
+				item.ModifyTime = time.Now()
+				item.Source = 2
+				itemsFllow = append(itemsFllow, item)
+			}
+		}
+	}
+	err = models.AddCygxXzsChooseSendFollow(user.Mobile, itemsFllow, itemsCategory, itemsZhouqi)
+	if err != nil {
+		br.Msg = "保存失败!"
+		br.ErrMsg = "保存失败!,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+}
+
+// @Title 推送更新内容
+// @Description 推送更新内容接口
+// @Param	request	body models.SubmitChooseSendResp true "type json string"
+// @Success 200 {object}  models.CygxXzsChooseSendResp
+// @router /choose/submit_push [post]
+func (this *UserController) ChooseSubmitPush() {
+	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
+	}
+	if user.Mobile == "" {
+		br.Msg = "提交失败!"
+		br.ErrMsg = "提交失败,手机号不能为空"
+		return
+	}
+	var req models.SubmitChooseSendResp
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	isRefuse := req.IsRefuse
+	isSubjective := req.IsSubjective
+	isObjective := req.IsObjective
+	if isRefuse == 0 && isSubjective == 0 && isObjective == 0 {
+		br.Msg = "请至少选择一项主客观内容"
+		return
+	}
+
+	//如果为1 则不做任何推送 ,主观客观默认改成0
+	if isRefuse == 1 {
+		isSubjective = 0
+		isObjective = 0
+	}
+	mobile := user.Mobile
+	item := new(models.CygxXzsChooseSend)
+	item.UserId = user.UserId
+	item.Mobile = user.Mobile
+	item.Email = user.Email
+	item.CompanyId = user.CompanyId
+	item.CompanyName = user.CompanyName
+	item.RealName = user.RealName
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.IsRefuse = req.IsRefuse
+	item.IsSubjective = isSubjective
+	item.IsObjective = isObjective
+	count, err := models.GetXzsChooseSendCountByMobile(mobile)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "GetXzsChooseSendCountByMobile,Err:" + err.Error()
+		return
+	}
+
+	//如果有记录就新增,没有记录就修改
+	if count == 0 {
+		err = models.AddCygxXzsChooseSendPush(item)
+	} else {
+		err = models.UpdateCygxXzsChooseSendPush(item)
+	}
+	if err != nil {
+		br.Msg = "保存失败!"
+		br.ErrMsg = "保存失败!,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+}

+ 1 - 0
models/db.go

@@ -35,6 +35,7 @@ func init() {
 		new(CygxXzsChooseSend),
 		new(CygxIndustryFllow),
 		new(CygxXzsChooseCategory),
+		new(CygxXzsChooseCategoryZhouqi), //周期的关注系列
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 105 - 0
models/xzs_choose_send.go

@@ -40,6 +40,16 @@ type SubmitChooseSendResp struct {
 	IndustrialManagementIds []*IndustrialManagementIdResp
 }
 
+type SubmitChooseSendFollowTypeResp struct {
+	FollowType int `description:"1,重点关注,-1不感兴趣,0默认接受推送"`
+	List       []*SubmitChooseSendFollowTypeList
+}
+
+type SubmitChooseSendFollowTypeList struct {
+	ChartPermissionName string `description:"权限名称"`
+	CheckList           []int  `description:"所选择的ID"`
+}
+
 type IndustrialManagementIdResp struct {
 	IndustrialManagementIds string `description:"产业ID 多个用 ,隔开"`
 	ChartPermissionId       int    `description:"权限id"`
@@ -207,3 +217,98 @@ func GetCygxXzsChooseCategoryMapList() (items []*XzsChooseMapResp, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// 添加
+func AddCygxXzsChooseSendFollow(mobile string, itemsFllow []*CygxIndustryFllow, itemsCategory []*CygxXzsChooseCategory, itemsZhouqi []*CygxXzsChooseCategoryZhouqi) (err error) {
+	o, err := orm.NewOrmUsingDB("hz_cygx").Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+
+	//删除原有的关注记录
+	sql := `DELETE FROM cygx_industry_fllow WHERE mobile = ? `
+	_, err = o.Raw(sql, mobile).Exec()
+	if err != nil {
+		return err
+	}
+
+	if len(itemsFllow) > 0 {
+		//批量添加新的关注记录
+		_, err = o.InsertMulti(len(itemsFllow), itemsFllow)
+		if err != nil {
+			return err
+		}
+	}
+
+	//删除原有策略报告的关注记录
+	sql = `DELETE FROM cygx_xzs_choose_category WHERE mobile = ? `
+	_, err = o.Raw(sql, mobile).Exec()
+	if err != nil {
+		return err
+	}
+
+	if len(itemsCategory) > 0 {
+		//批量添加新的关注记录
+		_, err = o.InsertMulti(len(itemsCategory), itemsCategory)
+		if err != nil {
+			return err
+		}
+	}
+
+	//删除原有周期的关注记录
+	sql = `DELETE FROM cygx_xzs_choose_category_zhouqi WHERE mobile = ? `
+	_, err = o.Raw(sql, mobile).Exec()
+	if err != nil {
+		return err
+	}
+
+	if len(itemsZhouqi) > 0 {
+		//批量添加新的关注记录
+		_, err = o.InsertMulti(len(itemsZhouqi), itemsZhouqi)
+		if err != nil {
+			return err
+		}
+	}
+
+	return
+}
+
+// 添加
+func AddCygxXzsChooseSendPush(item *CygxXzsChooseSend) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	//添加所勾选的消息类型
+	_, err = o.Insert(item)
+	return
+}
+
+// 修改
+func UpdateCygxXzsChooseSendPush(item *CygxXzsChooseSend) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+
+	//修改现有的类型
+	updateParams := make(map[string]interface{})
+	updateParams["UserId"] = item.UserId
+	updateParams["Mobile"] = item.Mobile
+	updateParams["Email"] = item.Email
+	updateParams["CompanyId"] = item.CompanyId
+	updateParams["CompanyName"] = item.CompanyName
+	updateParams["RealName"] = item.RealName
+	updateParams["ModifyTime"] = time.Now()
+	updateParams["IsRefuse"] = item.IsRefuse
+
+	ptrStructOrTableName := "cygx_xzs_choose_send"
+	whereParam := map[string]interface{}{"mobile": item.Mobile}
+	qs := o.QueryTable(ptrStructOrTableName)
+	for expr, exprV := range whereParam {
+		qs = qs.Filter(expr, exprV)
+	}
+	_, err = qs.Update(updateParams)
+	return
+}

+ 18 - 0
routers/commentsRouter.go

@@ -25,6 +25,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:UserController"] = append(beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:UserController"],
+        beego.ControllerComments{
+            Method: "ChooseSubmitFollowType",
+            Router: `/choose/submit_follow_type`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:UserController"] = append(beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:UserController"],
+        beego.ControllerComments{
+            Method: "ChooseSubmitPush",
+            Router: `/choose/submit_push`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:WechatCommonController"] = append(beego.GlobalControllerRouter["hongze/hongze_cygxzs/controllers:WechatCommonController"],
         beego.ControllerComments{
             Method: "GetWxSign",