activity_signup.go 20 KB

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