activity_signup_detail.go 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hongze_cygx/utils"
  5. "time"
  6. )
  7. type CygxActivitySignupDetail struct {
  8. Id int `orm:"column(id);pk"`
  9. ActivityId int `description:"活动ID"`
  10. UserId int `description:"用户ID"`
  11. CreateTime time.Time `description:"创建时间"`
  12. Mobile string `description:"手机号"`
  13. Email string `description:"邮箱"`
  14. CompanyId int `description:"公司id"`
  15. CompanyName string `description:"公司名称"`
  16. FailType int `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
  17. SignupType int `description:"报名方式,1预约外呼,2自主拨入,3我要报名"`
  18. DoFailType int `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
  19. OutboundMobile string `description:"外呼手机号"`
  20. CountryCode string `description:"手机国家区号"`
  21. RealName string `description:"用户实际名称"`
  22. SellerName string `description:"所属销售"`
  23. FirstMeetingTime string `description:"首次入会时间"`
  24. LastMeetingTime string `description:"最后退出时间"`
  25. Duration string `description:"参会时长"`
  26. MeetingTypeStr string `description:"参会方式"`
  27. MeetingAuthentication string `description:"参会权鉴"`
  28. MeetingStatusStr string `description:"参会状态"`
  29. Position string `description:"职位"`
  30. IsMeeting int `description:"是否到会,1到会,0未到会"`
  31. UseridEntity int `description:"参会者身份. 1:主讲人, 2:主持人, 3:嘉宾, 4:普通参会者, 5:联席主讲人, 6:会议助理"`
  32. ActivityTime string `description:"活动时间"`
  33. CrmCompanyMapStatusId int `description:"转换后的对应状态信息:1=正式客户, 2=曾使用客户, 3=其他"`
  34. }
  35. //获取当天已结束的活动
  36. func GetActivitySattusToComplete() (items []*CygxActivity, err error) {
  37. defer func() {
  38. if err != nil {
  39. go utils.SendAlarmMsg("修改活动状态至已结束"+err.Error(), 2)
  40. }
  41. }()
  42. o := orm.NewOrm()
  43. //resultTime_30 := time.Now().Add(-time.Minute * 30).Format(utils.FormatDateTime)
  44. //resultTime_60 := time.Now().Add(-time.Minute * 60).Format(utils.FormatDateTime)
  45. startTime := time.Now().Format(utils.FormatDate)
  46. var condition string
  47. condition += ` AND activity_time > '` + startTime + `'`
  48. //condition += ` AND (activity_type_id IN ( 1, 2, 3, 7 ) AND activity_time < '` + resultTime_30 + `')`
  49. //condition += ` OR(activity_type_id IN ( 4, 5, 6 ) AND activity_time < '` + resultTime_60 + `')`
  50. //condition += ` OR(activity_type_id IN ( 4, 5, 6 ) AND activity_time < '` + resultTime_60 + `' AND activity_time > '` + startTime + `')`
  51. sql := " SELECT * FROM cygx_activity WHERE 1 = 1 AND active_state = 3 " + condition
  52. _, err = o.Raw(sql).QueryRows(&items)
  53. return
  54. }
  55. // 获取今天报名的用户信息,存入到参会记录表中
  56. func GetSignupDetailBySignup(condition string, pars []interface{}) (list []*CygxActivitySignupDetail, err error) {
  57. sql := `SELECT * FROM cygx_activity_signup WHERE 1= 1 `
  58. if condition != "" {
  59. sql += condition
  60. }
  61. _, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
  62. return
  63. }
  64. // 获取参会记录表列表
  65. func GetSignupDetailList(condition string, pars []interface{}) (list []*CygxActivitySignupDetail, err error) {
  66. sql := `SELECT * FROM cygx_activity_signup_detail WHERE 1= 1 `
  67. if condition != "" {
  68. sql += condition
  69. }
  70. _, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
  71. return
  72. }
  73. //添加
  74. func AddCygxActivitySignupDetail(items []*CygxActivitySignupDetail) (err error) {
  75. o, err := orm.NewOrm().Begin()
  76. if err != nil {
  77. return
  78. }
  79. defer func() {
  80. if err == nil {
  81. o.Commit()
  82. } else {
  83. o.Rollback()
  84. }
  85. }()
  86. if len(items) > 0 {
  87. //批量添加
  88. _, err = o.InsertMulti(len(items), items)
  89. if err != nil {
  90. return err
  91. }
  92. }
  93. return
  94. }
  95. // UpdateActivitySignupDetailMulti 批量修改用户报名信息且报名的人
  96. func UpdateActivitySignupDetailMulti(items []*CygxActivitySignupDetail) (err error) {
  97. o := orm.NewOrm()
  98. p, err := o.Raw(` UPDATE cygx_activity_signup_detail SET
  99. first_meeting_time = ?,
  100. last_meeting_time = ?,
  101. duration = ?,
  102. meeting_type_str = ?,
  103. meeting_authentication = ?,
  104. meeting_status_str = ?,
  105. position = ?,
  106. is_meeting = ?,
  107. userid_entity = ?,
  108. activity_time = ?,
  109. crm_company_map_status_id = ?
  110. WHERE mobile = ? AND activity_id = ? `).Prepare()
  111. if err != nil {
  112. return
  113. }
  114. defer func() {
  115. _ = p.Close() // 别忘记关闭 statement
  116. }()
  117. for _, v := range items {
  118. _, err = p.Exec(
  119. v.FirstMeetingTime,
  120. v.LastMeetingTime,
  121. v.Duration,
  122. v.MeetingTypeStr,
  123. v.MeetingAuthentication,
  124. v.MeetingStatusStr,
  125. v.Position,
  126. v.IsMeeting,
  127. v.UseridEntity,
  128. v.ActivityTime,
  129. v.CrmCompanyMapStatusId,
  130. v.Mobile, v.ActivityId)
  131. if err != nil {
  132. return
  133. }
  134. }
  135. return
  136. }
  137. type CygxActivitySignupDetailCopy struct {
  138. Id int `orm:"column(id);pk"`
  139. ActivityId int `description:"活动ID"`
  140. UserId int `description:"用户ID"`
  141. CreateTime time.Time `description:"创建时间"`
  142. Mobile string `description:"手机号"`
  143. Email string `description:"邮箱"`
  144. CompanyId int `description:"公司id"`
  145. CompanyName string `description:"公司名称"`
  146. FailType int `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
  147. SignupType int `description:"报名方式,1预约外呼,2自主拨入,3我要报名"`
  148. DoFailType int `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
  149. OutboundMobile string `description:"外呼手机号"`
  150. CountryCode string `description:"手机国家区号"`
  151. RealName string `description:"用户实际名称"`
  152. SellerName string `description:"所属销售"`
  153. FirstMeetingTime string `description:"首次入会时间"`
  154. LastMeetingTime string `description:"最后退出时间"`
  155. Duration string `description:"参会时长"`
  156. MeetingTypeStr string `description:"参会方式"`
  157. MeetingAuthentication string `description:"参会权鉴"`
  158. MeetingStatusStr string `description:"参会状态"`
  159. Position string `description:"职位"`
  160. IsMeeting int `description:"是否到会,1到会,0未到会"`
  161. UseridEntity int `description:"参会者身份. 1:主讲人, 2:主持人, 3:嘉宾, 4:普通参会者, 5:联席主讲人, 6:会议助理"`
  162. ActivityTime string `description:"活动时间"`
  163. CrmCompanyMapStatusId int `description:"转换后的对应状态信息:1=正式客户, 2=曾使用客户, 3=其他"`
  164. }
  165. //添加
  166. func AddCygxActivitySignupDetailCopy(items []*CygxActivitySignupDetailCopy) (err error) {
  167. o, err := orm.NewOrm().Begin()
  168. if err != nil {
  169. return
  170. }
  171. defer func() {
  172. if err == nil {
  173. o.Commit()
  174. } else {
  175. o.Rollback()
  176. }
  177. }()
  178. if len(items) > 0 {
  179. //批量添加
  180. _, err = o.InsertMulti(len(items), items)
  181. if err != nil {
  182. return err
  183. }
  184. }
  185. return
  186. }
  187. // UpdateActivitySignupDetailMulti 批量修改用户报名信息且报名的人
  188. func UpdateActivitySignupDetailMultiCopy(items []*CygxActivitySignupDetailCopy) (err error) {
  189. o := orm.NewOrm()
  190. p, err := o.Raw(` UPDATE cygx_activity_signup_detail_copy SET
  191. first_meeting_time = ?,
  192. last_meeting_time = ?,
  193. duration = ?,
  194. meeting_type_str = ?,
  195. meeting_authentication = ?,
  196. meeting_status_str = ?,
  197. position = ?,
  198. is_meeting = ?,
  199. userid_entity = ?,
  200. activity_time = ?,
  201. crm_company_map_status_id = ?
  202. WHERE mobile = ? AND activity_id = ? `).Prepare()
  203. if err != nil {
  204. return
  205. }
  206. defer func() {
  207. _ = p.Close() // 别忘记关闭 statement
  208. }()
  209. for _, v := range items {
  210. _, err = p.Exec(
  211. v.FirstMeetingTime,
  212. v.LastMeetingTime,
  213. v.Duration,
  214. v.MeetingTypeStr,
  215. v.MeetingAuthentication,
  216. v.MeetingStatusStr,
  217. v.Position,
  218. v.IsMeeting,
  219. v.UseridEntity,
  220. v.ActivityTime,
  221. v.CrmCompanyMapStatusId,
  222. v.Mobile, v.ActivityId)
  223. if err != nil {
  224. return
  225. }
  226. }
  227. return
  228. }
  229. // 获取参会记录表列表
  230. func GetSignupDetailListCopy(condition string, pars []interface{}) (list []*CygxActivitySignupDetail, err error) {
  231. sql := `SELECT * FROM cygx_activity_signup_detail_copy WHERE 1= 1 `
  232. if condition != "" {
  233. sql += condition
  234. }
  235. _, err = orm.NewOrm().Raw(sql, pars).QueryRows(&list)
  236. return
  237. }