activity_signup.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "time"
  6. )
  7. type CygxActivitySignup 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. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  24. }
  25. type SignupStatus struct {
  26. SignupStatus string `description:"返回状态:人数已满:FullStarffed、单机构超过两人:TwoPeople、爽约次数过多:BreakPromise、超时:Overtime 、成功:Success"`
  27. GoFollow bool `description:"是否去关注"`
  28. SignupType int `description:"报名方式,1预约外呼,2自主拨入,3我要报名"`
  29. ActivityId int `description:"活动ID"`
  30. HaqveJurisdiction bool `description:"是否有权限"`
  31. HasPermission int `description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请"`
  32. PopupMsg string `description:"权限弹窗信息"`
  33. SellerMobile string `description:"销售电话"`
  34. SellerName string `description:"销售姓名"`
  35. Mobile string `description:"外呼手机号"`
  36. CountryCode string `description:"外呼手机号区号"`
  37. GoOutboundMobile bool `description:"是否去绑定手机号"`
  38. GoBindEmail bool `description:"是否去绑定邮箱"`
  39. IsResearch bool `description:"是否属于研选"`
  40. }
  41. type ActivitySingnupRep struct {
  42. ActivityId int `description:"活动id"`
  43. SignupType int `description:"报名方式,,1预约外呼,2自主拨入,3我要报名"`
  44. }
  45. // 我的日程
  46. type CygxMySchedule struct {
  47. Id int `orm:"column(id);pk"`
  48. ActivityId int `description:"活动ID"`
  49. UserId int `description:"用户ID"`
  50. CreateTime time.Time `description:"创建时间"`
  51. Mobile string `description:"手机号"`
  52. Email string `description:"邮箱"`
  53. CompanyId int `description:"公司id"`
  54. CompanyName string `description:"公司名称"`
  55. }
  56. // 报名记录日志
  57. type CygxActivitySignupLog struct {
  58. Id int `orm:"column(id);pk"`
  59. ActivityId int `description:"活动ID"`
  60. UserId int `description:"用户ID"`
  61. CreateTime time.Time `description:"创建时间"`
  62. Mobile string `description:"手机号"`
  63. Email string `description:"邮箱"`
  64. CompanyId int `description:"公司id"`
  65. CompanyName string `description:"公司名称"`
  66. Type int `description:"操作方式,1报名,2取消报名"`
  67. }
  68. // 添加报名信息
  69. func AddActivitySignup(item *CygxActivitySignup) (lastId int64, err error) {
  70. o, err := orm.NewOrm().Begin()
  71. if err != nil {
  72. return
  73. }
  74. defer func() {
  75. fmt.Println(err)
  76. if err == nil {
  77. o.Commit()
  78. } else {
  79. o.Rollback()
  80. }
  81. }()
  82. var count int
  83. var countMySchedule int
  84. sql := `SELECT COUNT(1) AS count FROM cygx_my_schedule WHERE user_id=? AND activity_id=? `
  85. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&countMySchedule)
  86. if err != nil {
  87. return
  88. }
  89. if countMySchedule == 0 {
  90. itemMy := new(CygxMySchedule)
  91. itemMy.UserId = item.UserId
  92. itemMy.ActivityId = item.ActivityId
  93. itemMy.CreateTime = time.Now()
  94. itemMy.Mobile = item.Mobile
  95. itemMy.Email = item.Email
  96. itemMy.CompanyId = item.CompanyId
  97. itemMy.CompanyName = item.CompanyName
  98. lastId, err = o.Insert(itemMy)
  99. if err != nil {
  100. return
  101. }
  102. }
  103. sql = `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE user_id=? AND activity_id=? `
  104. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&count)
  105. if err != nil {
  106. return
  107. }
  108. if count > 0 {
  109. sql := `UPDATE cygx_activity_signup SET is_cancel = 0 ,do_fail_type = 0, signup_type=? WHERE user_id=? AND activity_id=? `
  110. _, err = o.Raw(sql, item.SignupType, item.UserId, item.ActivityId).Exec()
  111. } else {
  112. lastId, err = o.Insert(item)
  113. }
  114. if err != nil {
  115. return
  116. }
  117. itemLog := new(CygxActivitySignupLog)
  118. itemLog.UserId = item.UserId
  119. itemLog.ActivityId = item.ActivityId
  120. itemLog.CreateTime = time.Now()
  121. itemLog.Mobile = item.Mobile
  122. itemLog.Email = item.Email
  123. itemLog.CompanyId = item.CompanyId
  124. itemLog.CompanyName = item.CompanyName
  125. itemLog.Type = 1
  126. lastId, err = o.Insert(itemLog)
  127. return
  128. }
  129. // 仅绑定邮箱的用户修改报名后,添加报名信息
  130. func AddActivitySignupFromEmail(item *CygxActivitySignup) (lastId int64, err error) {
  131. o, err := orm.NewOrm().Begin()
  132. if err != nil {
  133. return
  134. }
  135. defer func() {
  136. fmt.Println(err)
  137. if err == nil {
  138. o.Commit()
  139. } else {
  140. o.Rollback()
  141. }
  142. }()
  143. var count int
  144. var countMySchedule int
  145. sql := `UPDATE wx_user SET outbound_mobile=? ,outbound_country_code = ? ,is_msg_outbound_mobile = 1 WHERE user_id=? `
  146. _, err = o.Raw(sql, item.OutboundMobile, item.CountryCode, item.UserId).Exec()
  147. if err != nil {
  148. return
  149. }
  150. sql = `SELECT COUNT(1) AS count FROM cygx_my_schedule WHERE user_id=? AND activity_id=? `
  151. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&countMySchedule)
  152. if err != nil {
  153. return
  154. }
  155. if countMySchedule == 0 {
  156. itemMy := new(CygxMySchedule)
  157. itemMy.UserId = item.UserId
  158. itemMy.ActivityId = item.ActivityId
  159. itemMy.CreateTime = time.Now()
  160. itemMy.Mobile = item.Mobile
  161. itemMy.Email = item.Email
  162. itemMy.CompanyId = item.CompanyId
  163. itemMy.CompanyName = item.CompanyName
  164. lastId, err = o.Insert(itemMy)
  165. if err != nil {
  166. return
  167. }
  168. }
  169. sql = `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE user_id=? AND activity_id=? `
  170. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&count)
  171. if err != nil {
  172. return
  173. }
  174. if count > 0 {
  175. sql := `UPDATE cygx_activity_signup SET is_cancel = 0 ,do_fail_type = 0, signup_type=? WHERE user_id=? AND activity_id=? `
  176. _, err = o.Raw(sql, item.SignupType, item.UserId, item.ActivityId).Exec()
  177. } else {
  178. lastId, err = o.Insert(item)
  179. }
  180. if err != nil {
  181. return
  182. }
  183. itemLog := new(CygxActivitySignupLog)
  184. itemLog.UserId = item.UserId
  185. itemLog.ActivityId = item.ActivityId
  186. itemLog.CreateTime = time.Now()
  187. itemLog.Mobile = item.Mobile
  188. itemLog.Email = item.Email
  189. itemLog.CompanyId = item.CompanyId
  190. itemLog.CompanyName = item.CompanyName
  191. itemLog.Type = 1
  192. lastId, err = o.Insert(itemLog)
  193. return
  194. }
  195. // 添加报名信息
  196. func AddActivitySignupNoSchedule(item *CygxActivitySignup) (lastId int64, err error) {
  197. o, err := orm.NewOrm().Begin()
  198. if err != nil {
  199. return
  200. }
  201. defer func() {
  202. fmt.Println(err)
  203. if err == nil {
  204. o.Commit()
  205. } else {
  206. o.Rollback()
  207. }
  208. }()
  209. lastId, err = o.Insert(item)
  210. if err != nil {
  211. return
  212. }
  213. itemLog := new(CygxActivitySignupLog)
  214. itemLog.UserId = item.UserId
  215. itemLog.ActivityId = item.ActivityId
  216. itemLog.CreateTime = time.Now()
  217. itemLog.Mobile = item.Mobile
  218. itemLog.Email = item.Email
  219. itemLog.CompanyId = item.CompanyId
  220. itemLog.CompanyName = item.CompanyName
  221. itemLog.Type = 1
  222. lastId, err = o.Insert(itemLog)
  223. return
  224. }
  225. // 获取用户报名成功数量
  226. func GetActivitySignupCount(uid, activityId int) (count int, err error) {
  227. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND do_fail_type = 0 AND user_id=? AND activity_id=? `
  228. o := orm.NewOrm()
  229. err = o.Raw(sqlCount, uid, activityId).QueryRow(&count)
  230. return
  231. }
  232. // 获取用户报名数量
  233. func GetActivitySignupByUserCount(uid, activityId int) (count int, err error) {
  234. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND user_id=? AND activity_id=? `
  235. o := orm.NewOrm()
  236. err = o.Raw(sqlCount, uid, activityId).QueryRow(&count)
  237. return
  238. }
  239. // 获取除弘则以外所有成功报名的用户数量
  240. func GetActivitySignupSuccessByUserCountNoHz(activityId int) (count int, err error) {
  241. sqlCount := `SELECT
  242. COUNT( 1 ) AS count
  243. FROM
  244. cygx_activity_signup
  245. WHERE
  246. is_cancel = 0
  247. AND company_id != 16
  248. AND do_fail_type = 0
  249. AND activity_id = ? `
  250. o := orm.NewOrm()
  251. err = o.Raw(sqlCount, activityId).QueryRow(&count)
  252. return
  253. }
  254. // 获取用户报名禁止数量
  255. func GetActivitySignupByUserRestrictCount(uid, activityId int) (count int, err error) {
  256. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE do_fail_type=3 AND user_id=? AND activity_id=? `
  257. o := orm.NewOrm()
  258. err = o.Raw(sqlCount, uid, activityId).QueryRow(&count)
  259. return
  260. }
  261. // 获取某一活动已经报名的数量
  262. func GetActivitySignupSuccessCount(activityId int) (count int, err error) {
  263. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND do_fail_type = 0 AND activity_id=? `
  264. o := orm.NewOrm()
  265. err = o.Raw(sqlCount, activityId).QueryRow(&count)
  266. return
  267. }
  268. // 获取某一活动某个机构已经报名的数量
  269. func GetActivitySignupCompanyCount(activityId, companyId int) (count int, err error) {
  270. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE is_cancel=0 AND fail_type = 0 AND activity_id=? AND company_id=? `
  271. o := orm.NewOrm()
  272. err = o.Raw(sqlCount, activityId, companyId).QueryRow(&count)
  273. return
  274. }
  275. // 获取某一用户是否被限制报名
  276. func GetUserRestrictCount(mobile string) (count int, err error) {
  277. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_restrict_signup WHERE is_restrict=1 AND mobile=? `
  278. o := orm.NewOrm()
  279. err = o.Raw(sqlCount, mobile).QueryRow(&count)
  280. return
  281. }
  282. // 获取某一用户的日程数量
  283. func GetUserMeetingReminderCount(uid int) (count int, err error) {
  284. sqlCount := `SELECT COUNT(1) AS count FROM cygx_my_schedule WHERE user_id=? `
  285. o := orm.NewOrm()
  286. err = o.Raw(sqlCount, uid).QueryRow(&count)
  287. return
  288. }
  289. // 获取某一用户的报名的数量
  290. func GetUserSignupCount(uid int) (count int, err error) {
  291. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup_log WHERE user_id=? `
  292. o := orm.NewOrm()
  293. err = o.Raw(sqlCount, uid).QueryRow(&count)
  294. return
  295. }
  296. // 取消报名
  297. func CancelActivitySignup(item *CygxActivitySignup) (lastId int64, err error) {
  298. o, err := orm.NewOrm().Begin()
  299. if err != nil {
  300. return
  301. }
  302. defer func() {
  303. fmt.Println(err)
  304. if err == nil {
  305. o.Commit()
  306. } else {
  307. o.Rollback()
  308. }
  309. }()
  310. //判断是否删除我的日程
  311. var countReminder int
  312. var countAppointment int
  313. sql := `SELECT COUNT(1) AS count FROM cygx_activity_meeting_reminder WHERE is_cancel = 0 AND user_id=? AND activity_id=? `
  314. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&countReminder)
  315. sql = `SELECT COUNT(1) AS count FROM cygx_activity_appointment WHERE user_id=? AND activity_id=? `
  316. err = o.Raw(sql, item.UserId, item.ActivityId).QueryRow(&countAppointment)
  317. if err != nil {
  318. return
  319. }
  320. if countReminder == 0 && countAppointment == 0 {
  321. sql = `DELETE FROM cygx_my_schedule WHERE user_id=? AND activity_id=? `
  322. _, err = o.Raw(sql, item.UserId, item.ActivityId).Exec()
  323. if err != nil {
  324. return
  325. }
  326. }
  327. sql = `DELETE FROM cygx_activity_signup WHERE user_id=? AND activity_id=? `
  328. _, err = o.Raw(sql, item.UserId, item.ActivityId).Exec()
  329. if err != nil {
  330. return
  331. }
  332. itemLog := new(CygxActivitySignupLog)
  333. itemLog.UserId = item.UserId
  334. itemLog.ActivityId = item.ActivityId
  335. itemLog.CreateTime = time.Now()
  336. itemLog.Mobile = item.Mobile
  337. itemLog.Email = item.Email
  338. itemLog.CompanyId = item.CompanyId
  339. itemLog.CompanyName = item.CompanyName
  340. itemLog.Type = 2
  341. lastId, err = o.Insert(itemLog)
  342. return
  343. }
  344. // 详情
  345. func GetActivitySignupDetail(activityId, uid int) (item *CygxActivitySignup, err error) {
  346. o := orm.NewOrm()
  347. sql := `SELECT * FROM cygx_activity_signup WHERE activity_id = ? AND user_id =? `
  348. err = o.Raw(sql, activityId, uid).QueryRow(&item)
  349. return
  350. }
  351. func GetActivitySignuListByUser(condition string, pars []interface{}) (item []*CygxActivitySignup, err error) {
  352. o := orm.NewOrm()
  353. sql := `SELECT *
  354. FROM
  355. cygx_activity_signup
  356. WHERE 1 = 1 ` + condition
  357. _, err = o.Raw(sql, pars).QueryRows(&item)
  358. return
  359. }
  360. // 解除报名限制之后二次报名
  361. func AddActivitySignupByRestrict(item *CygxActivitySignup) (lastId int64, err error) {
  362. o, err := orm.NewOrm().Begin()
  363. if err != nil {
  364. return
  365. }
  366. defer func() {
  367. fmt.Println(err)
  368. if err == nil {
  369. o.Commit()
  370. } else {
  371. o.Rollback()
  372. }
  373. }()
  374. itemMy := new(CygxMySchedule)
  375. itemMy.UserId = item.UserId
  376. itemMy.ActivityId = item.ActivityId
  377. itemMy.CreateTime = time.Now()
  378. itemMy.Mobile = item.Mobile
  379. itemMy.Email = item.Email
  380. itemMy.CompanyId = item.CompanyId
  381. itemMy.CompanyName = item.CompanyName
  382. lastId, err = o.Insert(itemMy)
  383. if err != nil {
  384. return
  385. }
  386. sql := `UPDATE cygx_activity_signup SET do_fail_type = 0 , fail_type=0 WHERE user_id=? AND activity_id=? `
  387. _, err = o.Raw(sql, item.UserId, item.ActivityId).Exec()
  388. itemLog := new(CygxActivitySignupLog)
  389. itemLog.UserId = item.UserId
  390. itemLog.ActivityId = item.ActivityId
  391. itemLog.CreateTime = time.Now()
  392. itemLog.Mobile = item.Mobile
  393. itemLog.Email = item.Email
  394. itemLog.CompanyId = item.CompanyId
  395. itemLog.CompanyName = item.CompanyName
  396. itemLog.Type = 1
  397. lastId, err = o.Insert(itemLog)
  398. return
  399. }
  400. // 列表
  401. func GetActivitySignupListAll() (items []*CygxActivitySignup, err error) {
  402. o := orm.NewOrm()
  403. sql := `SELECT * FROM cygx_activity_signup `
  404. _, err = o.Raw(sql).QueryRows(&items)
  405. return
  406. }
  407. // 修改是否推送消息状态
  408. func UPdateSignup(item *CygxActivitySignup) (err error) {
  409. sql := ` UPDATE cygx_activity_signup SET outbound_mobile= ? , country_code=86 WHERE id = ?`
  410. o := orm.NewOrm()
  411. _, err = o.Raw(sql, item.Mobile, item.Id).Exec()
  412. return
  413. }
  414. // 获取数量
  415. func GetActivityCountByIdWithUid(activityId, Uid int) (count int, err error) {
  416. o := orm.NewOrm()
  417. sqlCount := `SELECT COUNT(1) AS count FROM cygx_activity_signup WHERE activity_id = ? AND user_id = ?`
  418. err = o.Raw(sqlCount, activityId, Uid).QueryRow(&count)
  419. return
  420. }
  421. // 获取用户报名数量
  422. func GetActivitySignupNomeetingCount(activityId int) (count int, err error) {
  423. sqlCount := `SELECT
  424. COUNT( 1 ) count
  425. FROM
  426. cygx_activity_signup AS s
  427. INNER JOIN cygx_activity AS a ON a.activity_id = s.activity_id
  428. WHERE
  429. 1 = 1
  430. AND a.is_limit_people > 0
  431. AND s.is_meeting = 0
  432. AND a.is_submit_meeting = 1
  433. AND a.activity_id = ?`
  434. o := orm.NewOrm()
  435. err = o.Raw(sqlCount, activityId).QueryRow(&count)
  436. return
  437. }
  438. func GetUserMeetingMobile(activityId int) (items []*CygxActivitySignup, err error) {
  439. o := orm.NewOrm()
  440. sql := `SELECT *
  441. FROM
  442. cygx_activity_signup AS s
  443. WHERE
  444. s.is_meeting = 1
  445. AND s.activity_id = ?`
  446. _, err = o.Raw(sql, activityId).QueryRows(&items)
  447. return
  448. }
  449. // 获取用户是否被限制报名
  450. func GetRestrictSignupCountByUid(uid int) (count int, err error) {
  451. sqlCount := `SELECT COUNT( 1 ) count FROM cygx_activity_restrict_signup WHERE user_id = ?`
  452. o := orm.NewOrm()
  453. err = o.Raw(sqlCount, uid).QueryRow(&count)
  454. return
  455. }
  456. // 获取用户爽约次数
  457. func GetActivitySignupNomeetingCountByUid(uid int) (count int, err error) {
  458. sqlCount := `SELECT
  459. COUNT( 1 ) count
  460. FROM
  461. cygx_activity_signup AS s
  462. INNER JOIN cygx_activity AS a ON a.activity_id = s.activity_id
  463. WHERE
  464. 1 = 1
  465. AND a.is_limit_people > 0
  466. AND s.is_meeting = 0
  467. AND a.is_submit_meeting = 1
  468. AND s.do_fail_type = 0
  469. AND s.user_id = ?`
  470. o := orm.NewOrm()
  471. err = o.Raw(sqlCount, uid).QueryRow(&count)
  472. return
  473. }
  474. // 删除
  475. func DeleteCygxActivityRestrictSignup(uid int) (err error) {
  476. o := orm.NewOrm()
  477. sql := ` DELETE FROM cygx_activity_restrict_signup WHERE user_id=?`
  478. _, err = o.Raw(sql, uid).Exec()
  479. return
  480. }
  481. type CygxActivitySignupList struct {
  482. Id int `orm:"column(id);pk"`
  483. UserId int `description:"用户id"`
  484. ActivityId int `description:"活动ID"`
  485. CompanyName string `description:"公司名称"`
  486. RealName string `description:"姓名"`
  487. CreateTime string `description:"创建时间"`
  488. IsMeeting int `description:"是否到会 ,1是, 0否"`
  489. Operation bool `description:"操作按钮,true,到会,false 未到会"`
  490. Channel int `description:"报名渠道,0 空降、 1小程序报名"`
  491. }
  492. // 获取用户报名列表
  493. func GetActivitySignupNomeetingCountList(activityId int) (items []*CygxActivitySignupList, err error) {
  494. o := orm.NewOrm()
  495. sql := `SELECT
  496. s.user_id
  497. FROM
  498. cygx_activity_signup AS s
  499. INNER JOIN cygx_activity AS a ON a.activity_id = s.activity_id
  500. WHERE
  501. 1 = 1
  502. AND a.is_limit_people > 0
  503. AND s.is_meeting = 0
  504. AND a.is_submit_meeting = 1
  505. AND a.activity_id = ?`
  506. _, err = o.Raw(sql, activityId).QueryRows(&items)
  507. return
  508. }
  509. type UserAndCompanyName struct {
  510. UserId int `orm:"column(user_id);pk"`
  511. Mobile string
  512. Email string
  513. CompanyId int
  514. CompanyName string `description:"公司名称"`
  515. CountryCode string `description:"手机国家区号"`
  516. OutboundMobile string `description:"外呼手机号"`
  517. OutboundCountryCode string `description:"外呼手机号区号"`
  518. }
  519. func GetUserAndCompanyNameList(uid int) (item *UserAndCompanyName, err error) {
  520. o := orm.NewOrm()
  521. sql := ` SELECT u.*,c.company_name
  522. FROM wx_user AS u
  523. INNER JOIN company AS c ON c.company_id = u.company_id
  524. WHERE user_id =?`
  525. err = o.Raw(sql, uid).QueryRow(&item)
  526. return
  527. }
  528. type CygxActivityRestrictSignup struct {
  529. Id int `orm:"column(id);pk"`
  530. UserId int `description:"用户id,多个用,隔开"`
  531. CreateTime time.Time `description:"创建时间"`
  532. Mobile string `description:"手机号"`
  533. Email string `description:"邮箱号"`
  534. CompanyId int `description:"公司ID"`
  535. CompanyName string `description:"公司名称"`
  536. IsRestrict int `description:"是否限制报名,1是,0否"`
  537. }
  538. // 添加
  539. func AddCygxActivityRestrictSignup(item *CygxActivityRestrictSignup) (err error) {
  540. o := orm.NewOrm()
  541. _, err = o.Insert(item)
  542. return
  543. }
  544. // 获取列表信息根据手机号分组
  545. func GetCygxActivitySignupByMobileList(condition string) (items []*CygxActivitySignup, err error) {
  546. o := orm.NewOrm()
  547. sql := `SELECT * FROM cygx_activity_signup WHERE 1= 1 ` + condition + ` GROUP BY mobile `
  548. _, err = o.Raw(sql).QueryRows(&items)
  549. return
  550. }
  551. // 修改用户报名的相关信息
  552. func UpdateCygxActivitySignup(wxUser *WxUserItem) (err error) {
  553. o := orm.NewOrm()
  554. sql := `UPDATE cygx_activity_signup SET email=?,company_id=?,company_name=?,user_id=?,real_name=? WHERE mobile=? `
  555. _, err = o.Raw(sql, wxUser.Email, wxUser.CompanyId, wxUser.CompanyName, wxUser.UserId, wxUser.RealName, wxUser.Mobile).Exec()
  556. return
  557. }
  558. // UpdateCygxActivitySignupisMeet 修改易董的活动,用户已到会
  559. func UpdateCygxActivitySignupisMeet(activityId int, mobile string) (err error) {
  560. o := orm.NewOrm()
  561. sql := `UPDATE cygx_activity_signup SET is_meeting=1 WHERE activity_id=? AND mobile = ? `
  562. _, err = o.Raw(sql, activityId, mobile).Exec()
  563. return
  564. }
  565. // GetCygxCygxActivitySignupList 获取报名列表信息
  566. func GetActivitySignupList(condition string, pars []interface{}) (items []*CygxActivitySignup, err error) {
  567. sql := `SELECT
  568. signup_type,activity_id
  569. FROM
  570. cygx_activity_signup AS v
  571. WHERE
  572. 1 = 1 ` + condition
  573. o := orm.NewOrm()
  574. _, err = o.Raw(sql, pars).QueryRows(&items)
  575. return
  576. }