作者 唐旭辉

更新

@@ -36,8 +36,8 @@ func (service CompanyService) AllowCompany(companyId int64) error { @@ -36,8 +36,8 @@ func (service CompanyService) AllowCompany(companyId int64) error {
36 }); err != nil { 36 }); err != nil {
37 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 37 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
38 } 38 }
39 - oldCompanyData, err = companyRespository.FindOne(map[string]interface{}{  
40 - "Id": companyId, 39 + oldCompanyData, err = companyRespository.FindOne(domain.CompanyFindOneOptions{
  40 + Id: companyId,
41 }) 41 })
42 if err != nil { 42 if err != nil {
43 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error())) 43 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error()))
@@ -78,8 +78,8 @@ func (service CompanyService) ForbidCompany(companyId int64) error { @@ -78,8 +78,8 @@ func (service CompanyService) ForbidCompany(companyId int64) error {
78 }); err != nil { 78 }); err != nil {
79 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 79 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
80 } 80 }
81 - oldCompanyData, err = companyRespository.FindOne(map[string]interface{}{  
82 - "Id": companyId, 81 + oldCompanyData, err = companyRespository.FindOne(domain.CompanyFindOneOptions{
  82 + Id: companyId,
83 }) 83 })
84 if err != nil { 84 if err != nil {
85 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error())) 85 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error()))
@@ -120,8 +120,8 @@ func (service CompanyService) GetCompanyData(companyId int64) (*domain.Company, @@ -120,8 +120,8 @@ func (service CompanyService) GetCompanyData(companyId int64) (*domain.Company,
120 }); err != nil { 120 }); err != nil {
121 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 121 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
122 } 122 }
123 - companyData, err = companyRespository.FindOne(map[string]interface{}{  
124 - "Id": companyId, 123 + companyData, err = companyRespository.FindOne(domain.CompanyFindOneOptions{
  124 + Id: companyId,
125 }) 125 })
126 if err != nil { 126 if err != nil {
127 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error())) 127 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取公司(id=%d)的数据失败:%s", companyId, err.Error()))
@@ -170,11 +170,11 @@ func (service SyncCompanyService) updateCompany(data CompanytData) error { @@ -170,11 +170,11 @@ func (service SyncCompanyService) updateCompany(data CompanytData) error {
170 }); err != nil { 170 }); err != nil {
171 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 171 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
172 } 172 }
173 - oldCompany, err = companyRespository.FindOne(map[string]interface{}{  
174 - "Id": data.Company.Id, 173 + oldCompany, err = companyRespository.FindOne(domain.CompanyFindOneOptions{
  174 + Id: data.Company.Id,
175 }) 175 })
176 - oldUser, err = userRespository.FindOne(map[string]interface{}{  
177 - "Id": data.User.Id, 176 + oldUser, err = userRespository.FindOne(domain.UsersFindOneQuery{
  177 + Id: data.User.Id,
178 }) 178 })
179 oldCompany.Update(map[string]interface{}{ 179 oldCompany.Update(map[string]interface{}{
180 "Name": data.Company.Name, 180 "Name": data.Company.Name,
@@ -233,10 +233,10 @@ func (service SyncCompanyService) updateCompanyCharge(data CompanyCharge) error @@ -233,10 +233,10 @@ func (service SyncCompanyService) updateCompanyCharge(data CompanyCharge) error
233 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 233 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
234 } 234 }
235 var oldUsers []domain.Users 235 var oldUsers []domain.Users
236 - _, oldUsers, err = userRespository.Find(map[string]interface{}{  
237 - "CompanyId": data.Id,  
238 - "charge_status": domain.UserIsCompanyCharge,  
239 - "Limit": -1, 236 + _, oldUsers, err = userRespository.Find(domain.UsersFindQuery{
  237 + CompanyId: data.Id,
  238 + ChargeStatus: domain.UserIsCompanyCharge,
  239 + Limit: -1,
240 }) 240 })
241 for i := range oldUsers { 241 for i := range oldUsers {
242 _ = oldUsers[i].Update(map[string]interface{}{ 242 _ = oldUsers[i].Update(map[string]interface{}{
@@ -249,8 +249,8 @@ func (service SyncCompanyService) updateCompanyCharge(data CompanyCharge) error @@ -249,8 +249,8 @@ func (service SyncCompanyService) updateCompanyCharge(data CompanyCharge) error
249 } 249 }
250 for _, v := range data.Charge { 250 for _, v := range data.Charge {
251 var userToUpdate domain.Users 251 var userToUpdate domain.Users
252 - userToUpdate, err := userRespository.FindOne(map[string]interface{}{  
253 - "Id": v, 252 + userToUpdate, err := userRespository.FindOne(domain.UsersFindOneQuery{
  253 + Id: v,
254 }) 254 })
255 if err != nil { 255 if err != nil {
256 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取用户(id=%d)的数据失败:%s", v, err.Error())) 256 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取用户(id=%d)的数据失败:%s", v, err.Error()))
@@ -222,8 +222,8 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro @@ -222,8 +222,8 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro
222 for i := range datas { 222 for i := range datas {
223 data := datas[i] 223 data := datas[i]
224 var oldUser domain.Users 224 var oldUser domain.Users
225 - oldUser, err = usersRepository.FindOne(map[string]interface{}{  
226 - "Id": data.Id, 225 + oldUser, err = usersRepository.FindOne(domain.UsersFindOneQuery{
  226 + Id: data.Id,
227 }) 227 })
228 if err != nil { 228 if err != nil {
229 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) 229 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error())
@@ -327,9 +327,9 @@ func (service SyncEmployeeService) ChangeSuperAdmin(cmd command.ChanceSuperAdmin @@ -327,9 +327,9 @@ func (service SyncEmployeeService) ChangeSuperAdmin(cmd command.ChanceSuperAdmin
327 newSuperUser domain.Users 327 newSuperUser domain.Users
328 userList []domain.Users 328 userList []domain.Users
329 ) 329 )
330 - _, userList, err = usersRepository.Find(map[string]interface{}{  
331 - "CompanyId": cmd.CompanyId,  
332 - "AdminType": domain.UserIsAdmin, 330 + _, userList, err = usersRepository.Find(domain.UsersFindQuery{
  331 + CompanyId: cmd.CompanyId,
  332 + AdminType: domain.UserIsAdmin,
333 }) 333 })
334 if err != nil { 334 if err != nil {
335 e := fmt.Sprintf("获取用户(admin_type=%d;company_id=%d)数据失败:%s", 335 e := fmt.Sprintf("获取用户(admin_type=%d;company_id=%d)数据失败:%s",
@@ -347,9 +347,9 @@ func (service SyncEmployeeService) ChangeSuperAdmin(cmd command.ChanceSuperAdmin @@ -347,9 +347,9 @@ func (service SyncEmployeeService) ChangeSuperAdmin(cmd command.ChanceSuperAdmin
347 return lib.ThrowError(lib.BUSINESS_ERROR, e) 347 return lib.ThrowError(lib.BUSINESS_ERROR, e)
348 } 348 }
349 oldSuperUser = userList[0] 349 oldSuperUser = userList[0]
350 - newSuperUser, err = usersRepository.FindOne(map[string]interface{}{  
351 - "CompanyId": cmd.CompanyId,  
352 - "Phone": cmd.Phone, 350 + newSuperUser, err = usersRepository.FindOne(domain.UsersFindOneQuery{
  351 + CompanyId: cmd.CompanyId,
  352 + Phone: cmd.Phone,
353 }) 353 })
354 if err != nil { 354 if err != nil {
355 e := fmt.Sprintf("获取公司用户数据(phone=%s;company_id=%d)", 355 e := fmt.Sprintf("获取公司用户数据(phone=%s;company_id=%d)",
@@ -79,9 +79,16 @@ func (c *Company) Update(m map[string]interface{}) error { @@ -79,9 +79,16 @@ func (c *Company) Update(m map[string]interface{}) error {
79 return nil 79 return nil
80 } 80 }
81 81
  82 +type CompanyFindOneOptions struct {
  83 + Id int64
  84 +}
  85 +
  86 +type CompanyFindOptions struct {
  87 +}
  88 +
82 type CompanyRepository interface { 89 type CompanyRepository interface {
83 Add(*Company) error 90 Add(*Company) error
84 Edit(*Company) error 91 Edit(*Company) error
85 - FindOne(queryOptions map[string]interface{}) (Company, error)  
86 - Find(queryOptions map[string]interface{}) (int64, []Company, error) 92 + FindOne(queryOptions CompanyFindOneOptions) (Company, error)
  93 + Find(queryOptions CompanyFindOptions) (int64, []Company, error)
87 } 94 }
@@ -117,20 +117,25 @@ func (u *Users) Update(m map[string]interface{}) error { @@ -117,20 +117,25 @@ func (u *Users) Update(m map[string]interface{}) error {
117 return nil 117 return nil
118 } 118 }
119 119
120 -// type UsersFindOneQuery struct {  
121 -// Id int64  
122 -// Phone string  
123 -// } 120 +type UsersFindOneQuery struct {
  121 + Id int64
  122 + Phone string
  123 + CompanyId int64
  124 + OpenId int64
  125 +}
124 126
125 -// type UsersFindQuery struct {  
126 -// Ids []int64  
127 -// Offset int  
128 -// Limit int  
129 -// } 127 +type UsersFindQuery struct {
  128 + AdminType int8
  129 + ChargeStatus int8
  130 + CompanyId int64
  131 + Ids []int64
  132 + Offset int
  133 + Limit int
  134 +}
130 type UsersRepository interface { 135 type UsersRepository interface {
131 Add(*Users) error 136 Add(*Users) error
132 Edit(*Users) error 137 Edit(*Users) error
133 Remove([]int64) error 138 Remove([]int64) error
134 - FindOne(queryOptions map[string]interface{}) (Users, error)  
135 - Find(queryOptions map[string]interface{}) (int, []Users, error) 139 + FindOne(queryOptions UsersFindOneQuery) (Users, error)
  140 + Find(queryOptions UsersFindQuery) (int, []Users, error)
136 } 141 }
1 package repository 1 package repository
2 2
3 import ( 3 import (
4 - "errors"  
5 "fmt" 4 "fmt"
6 5
7 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" 6 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
@@ -82,11 +81,7 @@ func (reponsitory CompanyRepository) Edit(m *domain.Company) error { @@ -82,11 +81,7 @@ func (reponsitory CompanyRepository) Edit(m *domain.Company) error {
82 return err 81 return err
83 } 82 }
84 83
85 -func (reponsitory CompanyRepository) FindOne(queryOptions map[string]interface{}) (domain.Company, error) {  
86 -  
87 - if len(queryOptions) == 0 {  
88 - return domain.Company{}, errors.New("queryOptions empty")  
89 - } 84 +func (reponsitory CompanyRepository) FindOne(queryOptions domain.CompanyFindOneOptions) (domain.Company, error) {
90 var ( 85 var (
91 err error 86 err error
92 tx = reponsitory.transactionContext.PgTx 87 tx = reponsitory.transactionContext.PgTx
@@ -94,8 +89,8 @@ func (reponsitory CompanyRepository) FindOne(queryOptions map[string]interface{} @@ -94,8 +89,8 @@ func (reponsitory CompanyRepository) FindOne(queryOptions map[string]interface{}
94 ) 89 )
95 90
96 query := tx.Model(&m) 91 query := tx.Model(&m)
97 - if v, ok := queryOptions["Id"]; ok {  
98 - query = query.Where("id=?", v) 92 + if queryOptions.Id > 0 {
  93 + query = query.Where("id=?", queryOptions.Id)
99 } 94 }
100 err = query.First() 95 err = query.First()
101 if err != nil { 96 if err != nil {
@@ -104,6 +99,6 @@ func (reponsitory CompanyRepository) FindOne(queryOptions map[string]interface{} @@ -104,6 +99,6 @@ func (reponsitory CompanyRepository) FindOne(queryOptions map[string]interface{}
104 return reponsitory.transformPgModelToDomainModel(&m) 99 return reponsitory.transformPgModelToDomainModel(&m)
105 } 100 }
106 101
107 -func (reponsitory CompanyRepository) Find(queryOptions map[string]interface{}) (int64, []domain.Company, error) { 102 +func (reponsitory CompanyRepository) Find(queryOptions domain.CompanyFindOptions) (int64, []domain.Company, error) {
108 return 0, nil, nil 103 return 0, nil, nil
109 } 104 }
1 package repository 1 package repository
2 2
3 import ( 3 import (
4 - "errors"  
5 "fmt" 4 "fmt"
6 "time" 5 "time"
7 6
@@ -111,10 +110,7 @@ func (reponsitory UsersRepository) Edit(u *domain.Users) error { @@ -111,10 +110,7 @@ func (reponsitory UsersRepository) Edit(u *domain.Users) error {
111 return err 110 return err
112 } 111 }
113 112
114 -func (reponsitory UsersRepository) FindOne(queryOptions map[string]interface{}) (domain.Users, error) {  
115 - if len(queryOptions) == 0 {  
116 - return domain.Users{}, errors.New("queryOptions is empty")  
117 - } 113 +func (reponsitory UsersRepository) FindOne(queryOptions domain.UsersFindOneQuery) (domain.Users, error) {
118 var ( 114 var (
119 err error 115 err error
120 tx = reponsitory.transactionContext.PgTx 116 tx = reponsitory.transactionContext.PgTx
@@ -122,17 +118,17 @@ func (reponsitory UsersRepository) FindOne(queryOptions map[string]interface{}) @@ -122,17 +118,17 @@ func (reponsitory UsersRepository) FindOne(queryOptions map[string]interface{})
122 ) 118 )
123 query := tx.Model(&m) 119 query := tx.Model(&m)
124 query.Where("deleted_at ISNULL") 120 query.Where("deleted_at ISNULL")
125 - if v, ok := queryOptions["Id"]; ok {  
126 - query = query.Where("id=?", v) 121 + if queryOptions.Id > 0 {
  122 + query = query.Where("id=?", queryOptions.Id)
127 } 123 }
128 - if v, ok := queryOptions["Phone"]; ok {  
129 - query = query.Where("phone=?", v) 124 + if len(queryOptions.Phone) > 0 {
  125 + query = query.Where("phone=?", queryOptions.Phone)
130 } 126 }
131 - if v, ok := queryOptions["CompanyId"]; ok {  
132 - query = query.Where("company_id=?", v) 127 + if queryOptions.CompanyId > 0 {
  128 + query = query.Where("company_id=?", queryOptions.CompanyId)
133 } 129 }
134 - if v, ok := queryOptions["OpenId"]; ok {  
135 - query = query.Where("open_id=?", v) 130 + if queryOptions.OpenId > 0 {
  131 + query = query.Where("open_id=?", queryOptions.OpenId)
136 } 132 }
137 err = query.First() 133 err = query.First()
138 if err != nil { 134 if err != nil {
@@ -141,31 +137,27 @@ func (reponsitory UsersRepository) FindOne(queryOptions map[string]interface{}) @@ -141,31 +137,27 @@ func (reponsitory UsersRepository) FindOne(queryOptions map[string]interface{})
141 return reponsitory.transformPgModelToDomainModel(&m) 137 return reponsitory.transformPgModelToDomainModel(&m)
142 } 138 }
143 139
144 -func (reponsitory UsersRepository) Find(queryOption map[string]interface{}) (int, []domain.Users, error) { 140 +func (reponsitory UsersRepository) Find(queryOption domain.UsersFindQuery) (int, []domain.Users, error) {
145 db := reponsitory.transactionContext.PgTx 141 db := reponsitory.transactionContext.PgTx
146 usersModels := []models.Users{} 142 usersModels := []models.Users{}
147 query := db.Model(&usersModels) 143 query := db.Model(&usersModels)
148 query.Where("deleted_at ISNULL") 144 query.Where("deleted_at ISNULL")
149 - if v, ok := queryOption["CompanyId"]; ok {  
150 - query = query.Where("company_id=?", v) 145 + if queryOption.CompanyId > 0 {
  146 + query = query.Where("company_id=?", queryOption.CompanyId)
151 } 147 }
152 - if v, ok := queryOption["ChargeStatus"]; ok {  
153 - query = query.Where("charge_status=?", v) 148 + if queryOption.ChargeStatus > 0 {
  149 + query = query.Where("charge_status=?", queryOption.ChargeStatus)
154 } 150 }
155 - if v, ok := queryOption["AdminType"]; ok {  
156 - query = query.Where("admin_type=?", v) 151 + if queryOption.AdminType > 0 {
  152 + query = query.Where("admin_type=?", queryOption.AdminType)
157 } 153 }
158 - if v, ok := queryOption["Offset"]; ok {  
159 - offset := v.(int)  
160 - query = query.Offset(offset) 154 + if queryOption.Offset >= 0 {
  155 + query = query.Offset(queryOption.Offset)
161 } 156 }
162 - if v, ok := queryOption["Limit"]; ok {  
163 - limit := v.(int)  
164 - if limit > 0 {  
165 - query = query.Limit(limit)  
166 - } 157 + if queryOption.Limit > 0 {
  158 + query = query.Limit(queryOption.Limit)
167 } else { 159 } else {
168 - query = query.Limit(20) 160 + query = query.Limit(1000)
169 } 161 }
170 var ( 162 var (
171 err error 163 err error