Browse Source

用户是否需要填写区号处理

xingzai 2 years ago
parent
commit
150e34d3c0
4 changed files with 147 additions and 22 deletions
  1. 6 6
      controllers/user.go
  2. 110 5
      models/activity_signup_detail.go
  3. 2 1
      models/db.go
  4. 29 10
      services/activity_signup_detail.go

+ 6 - 6
controllers/user.go

@@ -1060,12 +1060,12 @@ func (this *UserController) CountryCcode() {
 		br.Ret = 408
 		return
 	}
-	if uid == 0 {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,用户信息为空"
-		br.Ret = 408
-		return
-	}
+	//if uid == 0 {
+	//	br.Msg = "请登录"
+	//	br.ErrMsg = "请登录,用户信息为空"
+	//	br.Ret = 408
+	//	return
+	//}
 	resp := new(models.CountryCode)
 	if user.CountryCode == "" && len(user.Mobile) >= 11 {
 		err := models.ChangeUserOutboundMobileByMobile(uid)

+ 110 - 5
models/activity_signup_detail.go

@@ -43,15 +43,15 @@ func GetActivitySattusToComplete() (items []*CygxActivity, err error) {
 		}
 	}()
 	o := orm.NewOrm()
-	resultTime_30 := time.Now().Add(-time.Minute * 30).Format(utils.FormatDateTime)
-	resultTime_60 := time.Now().Add(-time.Minute * 60).Format(utils.FormatDateTime)
+	//resultTime_30 := time.Now().Add(-time.Minute * 30).Format(utils.FormatDateTime)
+	//resultTime_60 := time.Now().Add(-time.Minute * 60).Format(utils.FormatDateTime)
 	startTime := time.Now().Format(utils.FormatDate)
 	var condition string
-	condition += ` AND (activity_type_id IN ( 1, 2, 3, 7 ) AND  activity_time < '` + resultTime_30 + `'  AND  activity_time > '` + startTime + `')`
+	condition += `  AND  activity_time > '` + startTime + `'`
 	//condition += ` AND (activity_type_id IN ( 1, 2, 3, 7 ) AND  activity_time < '` + resultTime_30 + `')`
-	condition += ` OR(activity_type_id IN ( 4, 5, 6 ) AND  activity_time < '` + resultTime_60 + `')`
+	//condition += ` OR(activity_type_id IN ( 4, 5, 6 ) AND  activity_time < '` + resultTime_60 + `')`
 	//condition += ` OR(activity_type_id IN ( 4, 5, 6 ) AND  activity_time < '` + resultTime_60 + `'  AND  activity_time > '` + startTime + `')`
-	sql := " SELECT * FROM cygx_activity   WHERE 1 = 1 " + condition
+	sql := " SELECT * FROM cygx_activity   WHERE 1 = 1  AND active_state = 3 " + condition
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
@@ -141,3 +141,108 @@ func UpdateActivitySignupDetailMulti(items []*CygxActivitySignupDetail) (err err
 	}
 	return
 }
+
+type CygxActivitySignupDetailCopy 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:"公司名称"`
+	FailType              int       `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
+	SignupType            int       `description:"报名方式,1预约外呼,2自主拨入,3我要报名"`
+	DoFailType            int       `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
+	OutboundMobile        string    `description:"外呼手机号"`
+	CountryCode           string    `description:"手机国家区号"`
+	RealName              string    `description:"用户实际名称"`
+	SellerName            string    `description:"所属销售"`
+	FirstMeetingTime      string    `description:"首次入会时间"`
+	LastMeetingTime       string    `description:"最后退出时间"`
+	Duration              string    `description:"参会时长"`
+	MeetingTypeStr        string    `description:"参会方式"`
+	MeetingAuthentication string    `description:"参会权鉴"`
+	MeetingStatusStr      string    `description:"参会状态"`
+	Position              string    `description:"职位"`
+	IsMeeting             int       `description:"是否到会,1到会,0未到会"`
+	UseridEntity          int       `description:"参会者身份. 1:主讲人, 2:主持人, 3:嘉宾, 4:普通参会者, 5:联席主讲人, 6:会议助理"`
+	ActivityTime          string    `description:"活动时间"`
+	CrmCompanyMapStatusId int       `description:"转换后的对应状态信息:1=正式客户, 2=曾使用客户, 3=其他"`
+}
+
+//添加
+func AddCygxActivitySignupDetailCopy(items []*CygxActivitySignupDetailCopy) (err error) {
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+	if len(items) > 0 {
+		//批量添加
+		_, err = o.InsertMulti(len(items), items)
+		if err != nil {
+			return err
+		}
+	}
+	return
+}
+
+// UpdateActivitySignupDetailMulti 批量修改用户报名信息且报名的人
+func UpdateActivitySignupDetailMultiCopy(items []*CygxActivitySignupDetailCopy) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw(` UPDATE cygx_activity_signup_detail_copy SET 
+							first_meeting_time = ?,
+							last_meeting_time = ?,
+							duration = ?,
+							meeting_type_str = ?,
+							meeting_authentication = ?,
+							meeting_status_str = ?,
+							position = ?,
+							is_meeting = ?,
+							userid_entity = ?,
+							activity_time = ?,
+							crm_company_map_status_id = ?
+							WHERE mobile = ? AND activity_id = ? `).Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(
+			v.FirstMeetingTime,
+			v.LastMeetingTime,
+			v.Duration,
+			v.MeetingTypeStr,
+			v.MeetingAuthentication,
+			v.MeetingStatusStr,
+			v.Position,
+			v.IsMeeting,
+			v.UseridEntity,
+			v.ActivityTime,
+			v.CrmCompanyMapStatusId,
+			v.Mobile, v.ActivityId)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+// 获取参会记录表列表
+func GetSignupDetailListCopy(condition string, pars []interface{}) (list []*CygxActivitySignupDetail, err error) {
+	sql := `SELECT * FROM cygx_activity_signup_detail_copy  WHERE  1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
+	return
+}

+ 2 - 1
models/db.go

@@ -120,9 +120,10 @@ func init() {
 		new(CygxThreeApiLog),
 		new(CygxIndustrialArticleGroupManagement),
 		new(ArticleTopHistoryRecord),
+		new(CygxActivitySignupDetail),
+		new(CygxActivitySignupDetailCopy),
 		new(CygxMicroRoadshowVideoHistory),
 		new(MicroRoadshowVideo),
-		new(CygxActivitySignupDetail),
 	)
 	// 记录ORM查询日志
 	orm.Debug = true

+ 29 - 10
services/activity_signup_detail.go

@@ -32,12 +32,12 @@ func AddctivitySignupDetail(cont context.Context) (err error) {
 	var condition string
 	var pars []interface{}
 	if actLen > 0 {
-		//condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
-		//pars = append(pars, activityIds)
+		condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
+		pars = append(pars, activityIds)
 	} else {
 		return err
 	}
-	condition = ""
+	//condition = ""
 	//获取当天已经结束了 活动的报名人数
 	signUpList, err := models.GetSignupDetailBySignup(condition, pars)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -66,6 +66,7 @@ func AddctivitySignupDetail(cont context.Context) (err error) {
 				item.ActivityId = v.ActivityId
 				item.CreateTime = v.CreateTime
 				item.Mobile = v.Mobile
+				item.OutboundMobile = v.OutboundMobile
 				item.Email = v.Email
 				item.CompanyId = v.CompanyId
 				item.CompanyName = v.CompanyName
@@ -94,7 +95,6 @@ func AddctivitySignupDetail(cont context.Context) (err error) {
 
 //AddctivitySignupDetailByJmcj 通过进门财经添加用户参数信息
 func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDetail, activityId int) (err error) {
-	fmt.Println()
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -123,6 +123,20 @@ func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDe
 			mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)] = v.Mobile
 		}
 	}
+
+	//获取当天已经结束了 活动的报名人数
+	signUpList, err := models.GetSignupDetailBySignup(condition, pars)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	//建立外呼号与手机号的绑定
+	mapsignUp := make(map[string]string)
+	if len(signUpList) > 0 {
+		for _, v := range signUpList {
+			mapsignUp[fmt.Sprint(v.OutboundMobile)] = v.Mobile
+		}
+	}
+
 	var itemsAdd []*models.CygxActivitySignupDetail
 	var itemsUpdate []*models.CygxActivitySignupDetail
 
@@ -130,7 +144,13 @@ func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDe
 		var item = new(models.CygxActivitySignupDetail)
 		item.ActivityId = v.ActivityId
 		item.RealName = v.RealName
-		item.Mobile = v.Mobile
+		//如果手机号存在那么就是报名的,不存在就是直接参与的
+		if _, ok := mapsignUp[v.Mobile]; ok {
+			item.Mobile = mapsignUp[v.Mobile]
+		} else {
+			item.Mobile = v.Mobile
+		}
+		item.OutboundMobile = v.Mobile
 		item.CompanyName = v.CompanyName
 		item.CompanyId = v.CompanyId
 		item.SellerName = v.SellerName
@@ -146,15 +166,14 @@ func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDe
 		item.UseridEntity = v.UseridEntity
 		item.ActivityTime = v.ActivityTime
 		item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
-		//fmt.Println(item)
-		//return err
-		if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)]; !ok {
+
+		if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", item.Mobile)]; !ok {
 			itemsAdd = append(itemsAdd, item)
 		} else {
 			itemsUpdate = append(itemsUpdate, item)
 		}
 	}
-
+	//return err
 	if len(itemsAdd) > 0 {
 		err = models.AddCygxActivitySignupDetail(itemsAdd)
 		if err != nil {
@@ -162,7 +181,7 @@ func AddctivitySignupDetailByJmcj(itemsDetail []*models.CygxActivityAttendanceDe
 		}
 	}
 
-	if len(itemsAdd) > 0 {
+	if len(itemsUpdate) > 0 {
 		err = models.UpdateActivitySignupDetailMulti(itemsUpdate)
 		if err != nil {
 			return