activity_signup_detail.go 8.6 KB

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