mkt_resource_model.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package model
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "strings"
  6. "git.i2edu.net/i2/go-zero/core/stores/cache"
  7. "git.i2edu.net/i2/go-zero/core/stores/sqlc"
  8. "git.i2edu.net/i2/go-zero/core/stores/sqlx"
  9. "git.i2edu.net/i2/go-zero/core/stringx"
  10. "git.i2edu.net/i2/go-zero/tools/goctl/model/sql/builderx"
  11. )
  12. var (
  13. mktResourceFieldNames = builderx.RawFieldNames(&MktResource{})
  14. mktResourceRows = strings.Join(mktResourceFieldNames, ",")
  15. mktResourceRowsExpectAutoSet = strings.Join(stringx.Remove(mktResourceFieldNames, "`id`", "`update_time`"), ",")
  16. mktResourceRowsWithPlaceHolder = strings.Join(stringx.Remove(mktResourceFieldNames, "`id`", "`update_time`"), "=?,") + "=?"
  17. cacheMktResourceIdPrefix = "cache:mktResource:id:"
  18. )
  19. type (
  20. MktResourceModel interface {
  21. Insert(data MktResource) (sql.Result, error)
  22. FindOne(id int64) (*MktResource, error)
  23. Update(data MktResource) error
  24. Delete(id int64) error
  25. }
  26. defaultMktResourceModel struct {
  27. sqlc.CachedConn
  28. table string
  29. }
  30. MktResource struct {
  31. HfCs sql.NullFloat64 `db:"hf_cs"` // 回访次数
  32. OrtherCard sql.NullString `db:"orther_card"` // 其他证件号码
  33. StuMydType sql.NullString `db:"stu_myd_type"`
  34. AgreementId sql.NullInt64 `db:"agreement_id"`
  35. StuPhone2 sql.NullString `db:"stu_phone2"` // 联系人2电话
  36. StuInvalidDate sql.NullTime `db:"stu_invalid_date"`
  37. OsName sql.NullString `db:"os_name"` // 资源收集校区
  38. StuRemark sql.NullString `db:"stu_remark"`
  39. StuSex sql.NullInt64 `db:"stu_sex"` // 性别(数据字典)
  40. UserLoginState sql.NullInt64 `db:"user_login_state"`
  41. StuEnName sql.NullString `db:"stu_en_name"` // 学员英文
  42. StuBir sql.NullTime `db:"stu_bir"` // 学员出生日
  43. SchId sql.NullInt64 `db:"sch_id"` // 资源跟进校区ID
  44. LastUpdateBy sql.NullString `db:"last_update_by"`
  45. PtuserId sql.NullInt64 `db:"ptuser_id"` // 兼职人员ID
  46. PkCurrentPay sql.NullInt64 `db:"pk_current_pay"`
  47. RecipientInfo sql.NullInt64 `db:"recipient_info"`
  48. TmkZxsDate sql.NullTime `db:"tmk_zxs_date"`
  49. StuLinkPerson sql.NullString `db:"stu_link_person"` // 联系人1
  50. StuLoadSchool sql.NullInt64 `db:"stu_load_school"` // 资源收集校区
  51. LoadUser sql.NullString `db:"load_user"` // 资源收集人
  52. StuDjMoney sql.NullFloat64 `db:"stu_dj_money"` // 定金金额
  53. Relation1 sql.NullInt64 `db:"relation1"` // 联系人1关系(数据字典)
  54. QuaoYji sql.NullInt64 `db:"quao_yji"` // 渠道一级
  55. IdcardType sql.NullInt64 `db:"idcard_type"` // 证件号类型
  56. CrmId sql.NullInt64 `db:"crm_id"`
  57. MaType sql.NullInt64 `db:"ma_type"` // 来源渠道(活动渠道数据字典)
  58. StuLinkPerson2 sql.NullString `db:"stu_link_person2"` // 联系人2
  59. AttendSchool sql.NullString `db:"attend_school"` // 就读学校
  60. TimerVisitTime sql.NullTime `db:"timer_visit_time"` // 定时回访日期
  61. TurnUserType sql.NullString `db:"turn_user_type"`
  62. StuNowJc sql.NullInt64 `db:"stu_now_jc"`
  63. StuAddress sql.NullString `db:"stu_address"` // 家庭住址
  64. RecommendStu sql.NullInt64 `db:"recommend_stu"` // 推荐学生ID
  65. StuSysState int64 `db:"stu_sys_state"` // 学员系统状态(数据字典)
  66. KhType sql.NullInt64 `db:"kh_type"` // 客户类型(数据字典)
  67. StuFollowUpMonthly sql.NullInt64 `db:"stu_follow_up_monthly"` // 新生跟进月状态(数据字典)
  68. ZzxsDate sql.NullTime `db:"zzxs_date"`
  69. UselessRemark sql.NullString `db:"useless_remark"`
  70. StuZcMoney sql.NullFloat64 `db:"stu_zc_money"` // 暂存总金额
  71. Relation2 sql.NullInt64 `db:"relation2"` // 联系人2关系(数据字典)
  72. Plfpbz sql.NullString `db:"plfpbz"`
  73. HeadImage sql.NullInt64 `db:"head_image"`
  74. StuAllotTmkdate sql.NullTime `db:"stu_allot_tmkdate"`
  75. Age sql.NullInt64 `db:"age"` // 年龄
  76. StuPhone sql.NullString `db:"stu_phone"` // 联系人1电话
  77. TjUser sql.NullString `db:"tj_user"` // 员工推荐人
  78. AgeGroup sql.NullInt64 `db:"age_group"` // 年龄段(数据字典)
  79. StuWxksDate sql.NullTime `db:"stu_wxks_date"` // 无效到期日期
  80. EmployeeReferralArea sql.NullString `db:"employee_referral_area"`
  81. Id int64 `db:"id"`
  82. CreateBy sql.NullString `db:"create_by"` // 资源录入人ID
  83. StuJifen sql.NullFloat64 `db:"stu_jifen"` // 学员积分
  84. StuLevel sql.NullInt64 `db:"stu_level"`
  85. TmkZxsUsername sql.NullString `db:"tmk_zxs_username"`
  86. StuType int64 `db:"stu_type"` // 学员类型(数据字典)
  87. NewVisitDate sql.NullTime `db:"new_visit_date"` // 最近回访时间
  88. StuCity sql.NullString `db:"stu_city"` // 资源收集城市
  89. IsImportant sql.NullInt64 `db:"is_important"` // 是否重点(0否,1是)
  90. ParentsProfession sql.NullString `db:"parents_profession"`
  91. Remark sql.NullString `db:"remark"`
  92. CreateTime sql.NullTime `db:"create_time"`
  93. DelFlag int64 `db:"del_flag"`
  94. StuParentId sql.NullInt64 `db:"stu_parent_id"`
  95. StuMydTypeMark sql.NullString `db:"stu_myd_type_mark"`
  96. StudentCustomerId sql.NullString `db:"student_customer_id"` // 跟进客服(新增字段)
  97. IsChildOfEmployee sql.NullInt64 `db:"is_child_of_employee"`
  98. StuName sql.NullString `db:"stu_name"` // 学员姓名
  99. LastUpdateTime sql.NullTime `db:"last_update_time"`
  100. MaTypeRemark sql.NullString `db:"ma_type_remark"` // 来源备注
  101. Idcard sql.NullString `db:"idcard"` // 身份证号码
  102. Stuschcount sql.NullFloat64 `db:"stuschcount"`
  103. DegreeDepositMoney sql.NullFloat64 `db:"degree_deposit_money"` // 学位订金
  104. StuWxdqDate sql.NullTime `db:"stu_wxdq_date"`
  105. NewPlanDate sql.NullTime `db:"new_plan_date"` // 计划回访日期
  106. StuSale sql.NullString `db:"stu_sale"` // 销售
  107. StuCityId sql.NullInt64 `db:"stu_city_id"` // 资源收集城市ID
  108. CallType sql.NullInt64 `db:"call_type"` // 咨询类型(数据字典)
  109. Wechatid sql.NullString `db:"wechatid"` // 微信ID
  110. NetworkDetail sql.NullInt64 `db:"network_detail"` // 渠道细分(NETWORK_DETAIL表)
  111. NewAllotDate sql.NullTime `db:"new_allot_date"`
  112. EmployeeReferralDepart sql.NullString `db:"employee_referral_depart"`
  113. TmkCity sql.NullInt64 `db:"tmk_city"`
  114. }
  115. )
  116. func NewMktResourceModel(conn sqlx.SqlConn, c cache.CacheConf) MktResourceModel {
  117. return &defaultMktResourceModel{
  118. CachedConn: sqlc.NewConn(conn, c),
  119. table: "`mkt_resource`",
  120. }
  121. }
  122. func (m *defaultMktResourceModel) Insert(data MktResource) (sql.Result, error) {
  123. query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, mktResourceRowsExpectAutoSet)
  124. ret, err := m.ExecNoCache(query, data.HfCs, data.OrtherCard, data.StuMydType, data.AgreementId, data.StuPhone2, data.StuInvalidDate, data.OsName, data.StuRemark, data.StuSex, data.UserLoginState, data.StuEnName, data.StuBir, data.SchId, data.LastUpdateBy, data.PtuserId, data.PkCurrentPay, data.RecipientInfo, data.TmkZxsDate, data.StuLinkPerson, data.StuLoadSchool, data.LoadUser, data.StuDjMoney, data.Relation1, data.QuaoYji, data.IdcardType, data.CrmId, data.MaType, data.StuLinkPerson2, data.AttendSchool, data.TimerVisitTime, data.TurnUserType, data.StuNowJc, data.StuAddress, data.RecommendStu, data.StuSysState, data.KhType, data.StuFollowUpMonthly, data.ZzxsDate, data.UselessRemark, data.StuZcMoney, data.Relation2, data.Plfpbz, data.HeadImage, data.StuAllotTmkdate, data.Age, data.StuPhone, data.TjUser, data.AgeGroup, data.StuWxksDate, data.EmployeeReferralArea, data.CreateBy, data.StuJifen, data.StuLevel, data.TmkZxsUsername, data.StuType, data.NewVisitDate, data.StuCity, data.IsImportant, data.ParentsProfession, data.Remark, data.CreateTime, data.DelFlag, data.StuParentId, data.StuMydTypeMark, data.StudentCustomerId, data.IsChildOfEmployee, data.StuName, data.LastUpdateTime, data.MaTypeRemark, data.Idcard, data.Stuschcount, data.DegreeDepositMoney, data.StuWxdqDate, data.NewPlanDate, data.StuSale, data.StuCityId, data.CallType, data.Wechatid, data.NetworkDetail, data.NewAllotDate, data.EmployeeReferralDepart, data.TmkCity)
  125. return ret, err
  126. }
  127. func (m *defaultMktResourceModel) FindOne(id int64) (*MktResource, error) {
  128. mktResourceIdKey := fmt.Sprintf("%s%v", cacheMktResourceIdPrefix, id)
  129. var resp MktResource
  130. err := m.QueryRow(&resp, mktResourceIdKey, func(conn sqlx.SqlConn, v interface{}) error {
  131. query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", mktResourceRows, m.table)
  132. return conn.QueryRow(v, query, id)
  133. })
  134. switch err {
  135. case nil:
  136. return &resp, nil
  137. case sqlc.ErrNotFound:
  138. return nil, ErrNotFound
  139. default:
  140. return nil, err
  141. }
  142. }
  143. func (m *defaultMktResourceModel) Update(data MktResource) error {
  144. mktResourceIdKey := fmt.Sprintf("%s%v", cacheMktResourceIdPrefix, data.Id)
  145. _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
  146. query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, mktResourceRowsWithPlaceHolder)
  147. return conn.Exec(query, data.HfCs, data.OrtherCard, data.StuMydType, data.AgreementId, data.StuPhone2, data.StuInvalidDate, data.OsName, data.StuRemark, data.StuSex, data.UserLoginState, data.StuEnName, data.StuBir, data.SchId, data.LastUpdateBy, data.PtuserId, data.PkCurrentPay, data.RecipientInfo, data.TmkZxsDate, data.StuLinkPerson, data.StuLoadSchool, data.LoadUser, data.StuDjMoney, data.Relation1, data.QuaoYji, data.IdcardType, data.CrmId, data.MaType, data.StuLinkPerson2, data.AttendSchool, data.TimerVisitTime, data.TurnUserType, data.StuNowJc, data.StuAddress, data.RecommendStu, data.StuSysState, data.KhType, data.StuFollowUpMonthly, data.ZzxsDate, data.UselessRemark, data.StuZcMoney, data.Relation2, data.Plfpbz, data.HeadImage, data.StuAllotTmkdate, data.Age, data.StuPhone, data.TjUser, data.AgeGroup, data.StuWxksDate, data.EmployeeReferralArea, data.CreateBy, data.StuJifen, data.StuLevel, data.TmkZxsUsername, data.StuType, data.NewVisitDate, data.StuCity, data.IsImportant, data.ParentsProfession, data.Remark, data.CreateTime, data.DelFlag, data.StuParentId, data.StuMydTypeMark, data.StudentCustomerId, data.IsChildOfEmployee, data.StuName, data.LastUpdateTime, data.MaTypeRemark, data.Idcard, data.Stuschcount, data.DegreeDepositMoney, data.StuWxdqDate, data.NewPlanDate, data.StuSale, data.StuCityId, data.CallType, data.Wechatid, data.NetworkDetail, data.NewAllotDate, data.EmployeeReferralDepart, data.TmkCity, data.Id)
  148. }, mktResourceIdKey)
  149. return err
  150. }
  151. func (m *defaultMktResourceModel) Delete(id int64) error {
  152. mktResourceIdKey := fmt.Sprintf("%s%v", cacheMktResourceIdPrefix, id)
  153. _, err := m.Exec(func(conn sqlx.SqlConn) (result sql.Result, err error) {
  154. query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
  155. return conn.Exec(query, id)
  156. }, mktResourceIdKey)
  157. return err
  158. }
  159. func (m *defaultMktResourceModel) formatPrimary(primary interface{}) string {
  160. return fmt.Sprintf("%s%v", cacheMktResourceIdPrefix, primary)
  161. }
  162. func (m *defaultMktResourceModel) queryPrimary(conn sqlx.SqlConn, v, primary interface{}) error {
  163. query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", mktResourceRows, m.table)
  164. return conn.QueryRow(v, query, primary)
  165. }