合并分支 'dev' 到 'test'
Dev 查看合并请求 !30
正在显示
6 个修改的文件
包含
92 行增加
和
4 行删除
@@ -199,13 +199,22 @@ func (service SyncCompanyService) updateCompany(data CompanytData) error { | @@ -199,13 +199,22 @@ func (service SyncCompanyService) updateCompany(data CompanytData) error { | ||
199 | oldCompany, err = companyRespository.FindOne(domain.CompanyFindOneOptions{ | 199 | oldCompany, err = companyRespository.FindOne(domain.CompanyFindOneOptions{ |
200 | Id: data.Company.Id, | 200 | Id: data.Company.Id, |
201 | }) | 201 | }) |
202 | + if err != nil { | ||
203 | + return fmt.Errorf("获取公司数据失败,%s", err) | ||
204 | + } | ||
202 | _, oldCompanyAdmins, err = userRespository.Find(domain.UsersFindQuery{ | 205 | _, oldCompanyAdmins, err = userRespository.Find(domain.UsersFindQuery{ |
203 | CompanyId: data.Company.Id, | 206 | CompanyId: data.Company.Id, |
204 | AdminType: domain.UserIsAdmin, | 207 | AdminType: domain.UserIsAdmin, |
205 | }) | 208 | }) |
209 | + if err != nil { | ||
210 | + return fmt.Errorf("获取公司admin数据失败,%s", err) | ||
211 | + } | ||
206 | newUser, err = userRespository.FindOne(domain.UsersFindOneQuery{ | 212 | newUser, err = userRespository.FindOne(domain.UsersFindOneQuery{ |
207 | Id: data.User.Id, | 213 | Id: data.User.Id, |
208 | }) | 214 | }) |
215 | + if err != nil { | ||
216 | + return fmt.Errorf("获取用户数据失败,%s,data.user.id=%d", err, data.User.Id) | ||
217 | + } | ||
209 | applets := []domain.CompanyApplets{} | 218 | applets := []domain.CompanyApplets{} |
210 | for _, v := range data.Company.Applets { | 219 | for _, v := range data.Company.Applets { |
211 | app := domain.CompanyApplets{ | 220 | app := domain.CompanyApplets{ |
@@ -265,13 +265,45 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro | @@ -265,13 +265,45 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro | ||
265 | } | 265 | } |
266 | for i := range datas { | 266 | for i := range datas { |
267 | data := datas[i] | 267 | data := datas[i] |
268 | - var oldUser domain.Users | ||
269 | - oldUser, err = usersRepository.FindOne(domain.UsersFindOneQuery{ | 268 | + var ( |
269 | + oldUser *domain.Users | ||
270 | + userExist bool | ||
271 | + ) | ||
272 | + oldUser, userExist, err = usersRepository.FindOneWithExist(domain.UsersFindOneQuery{ | ||
270 | Id: data.Id, | 273 | Id: data.Id, |
271 | }) | 274 | }) |
272 | if err != nil { | 275 | if err != nil { |
273 | return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) | 276 | return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) |
274 | } | 277 | } |
278 | + if !userExist { | ||
279 | + //不存在可更新数据,执行添加数据的操作 | ||
280 | + newUser := domain.Users{ | ||
281 | + Id: data.Id, | ||
282 | + CompanyId: data.CompanyId, | ||
283 | + OpenId: data.OpenId, | ||
284 | + Name: data.Name, | ||
285 | + Sex: data.Sex, | ||
286 | + JobNum: data.JobNum, | ||
287 | + Phone: data.Phone, | ||
288 | + PrivatePhone: data.PrivatePhone, | ||
289 | + Email: data.Email, | ||
290 | + ExtensionNum: data.ExtensionNum, | ||
291 | + Workspace: data.WorkSpace, | ||
292 | + Status: data.Status, | ||
293 | + Avatar: data.Avatar, | ||
294 | + Remarks: data.Remarks, | ||
295 | + ChargeStatus: data.ChargeStatus, | ||
296 | + Permission: []domain.AdminPermissionBase{}, //初始化权限 | ||
297 | + AccessPartners: []domain.Partner{}, //默认初始化 | ||
298 | + AdminType: data.AdminType, | ||
299 | + IsSenior: 2, | ||
300 | + } | ||
301 | + newUser.EntryTime, _ = time.Parse("2006-01-02", data.EntryTime) | ||
302 | + if err = usersRepository.Add(&newUser); err != nil { | ||
303 | + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | ||
304 | + } | ||
305 | + continue | ||
306 | + } else { | ||
275 | entryTime, _ := time.Parse("2006-01-02", data.EntryTime) | 307 | entryTime, _ := time.Parse("2006-01-02", data.EntryTime) |
276 | _ = oldUser.Update(map[string]interface{}{ | 308 | _ = oldUser.Update(map[string]interface{}{ |
277 | "CompanyId": data.CompanyId, | 309 | "CompanyId": data.CompanyId, |
@@ -290,10 +322,11 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro | @@ -290,10 +322,11 @@ func (service SyncEmployeeService) updateEmployeeData(datas []EmployeeData) erro | ||
290 | "EntryTime": entryTime, | 322 | "EntryTime": entryTime, |
291 | "AdminType": data.AdminType, | 323 | "AdminType": data.AdminType, |
292 | }) | 324 | }) |
293 | - if err = usersRepository.Edit(&oldUser); err != nil { | 325 | + if err = usersRepository.Edit(oldUser); err != nil { |
294 | return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) | 326 | return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) |
295 | } | 327 | } |
296 | } | 328 | } |
329 | + } | ||
297 | err = transactionContext.CommitTransaction() | 330 | err = transactionContext.CommitTransaction() |
298 | return err | 331 | return err |
299 | } | 332 | } |
@@ -172,5 +172,8 @@ type UsersRepository interface { | @@ -172,5 +172,8 @@ type UsersRepository interface { | ||
172 | Edit(*Users) error | 172 | Edit(*Users) error |
173 | Remove([]int64) error | 173 | Remove([]int64) error |
174 | FindOne(queryOptions UsersFindOneQuery) (Users, error) | 174 | FindOne(queryOptions UsersFindOneQuery) (Users, error) |
175 | + //FindOneWithExist 查询一个用户, | ||
176 | + //当数据不存在时不返回错误,替代的是返回bool,true表示数据存在,false表示数据不存在 | ||
177 | + FindOneWithExist(queryOptions UsersFindOneQuery) (*Users, bool, error) | ||
175 | Find(queryOptions UsersFindQuery) (int, []Users, error) | 178 | Find(queryOptions UsersFindQuery) (int, []Users, error) |
176 | } | 179 | } |
@@ -124,7 +124,7 @@ func (repository *ColumnSettingRepository) Find(queryOptions map[string]interfac | @@ -124,7 +124,7 @@ func (repository *ColumnSettingRepository) Find(queryOptions map[string]interfac | ||
124 | columnSettings := make([]*domain.ColumnSetting, 0) | 124 | columnSettings := make([]*domain.ColumnSetting, 0) |
125 | query := tx.Model(&columnSettingModels) | 125 | query := tx.Model(&columnSettingModels) |
126 | if ids, ok := queryOptions["ids"]; ok { | 126 | if ids, ok := queryOptions["ids"]; ok { |
127 | - query = query.Where("column_setting.uid IN (?)", pg.In(ids.(int64))) | 127 | + query = query.Where("column_setting.uid IN (?)", pg.In(ids.([]int64))) |
128 | } | 128 | } |
129 | if uid, ok := queryOptions["uid"]; ok { | 129 | if uid, ok := queryOptions["uid"]; ok { |
130 | query = query.Where("column_setting.uid = ?", uid) | 130 | query = query.Where("column_setting.uid = ?", uid) |
@@ -5,6 +5,7 @@ import ( | @@ -5,6 +5,7 @@ import ( | ||
5 | "fmt" | 5 | "fmt" |
6 | "time" | 6 | "time" |
7 | 7 | ||
8 | + "github.com/go-pg/pg/v10" | ||
8 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" | 9 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" |
9 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models" | 10 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models" |
10 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction" | 11 | "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction" |
@@ -153,6 +154,47 @@ func (reponsitory UsersRepository) FindOne(queryOptions domain.UsersFindOneQuery | @@ -153,6 +154,47 @@ func (reponsitory UsersRepository) FindOne(queryOptions domain.UsersFindOneQuery | ||
153 | return reponsitory.transformPgModelToDomainModel(&m) | 154 | return reponsitory.transformPgModelToDomainModel(&m) |
154 | } | 155 | } |
155 | 156 | ||
157 | +//FindOneWithExist 查询一个用户, | ||
158 | +//当数据不存在时不返回错误,替代的是返回bool,true表示数据存在,false表示数据不存在 | ||
159 | +func (reponsitory UsersRepository) FindOneWithExist(queryOptions domain.UsersFindOneQuery) (*domain.Users, bool, error) { | ||
160 | + var ( | ||
161 | + err error | ||
162 | + tx = reponsitory.transactionContext.PgTx | ||
163 | + m models.Users | ||
164 | + hasCondition bool | ||
165 | + ) | ||
166 | + query := tx.Model(&m) | ||
167 | + query = query.Where("delete_at ISNULL") | ||
168 | + if queryOptions.Id > 0 { | ||
169 | + hasCondition = true | ||
170 | + query = query.Where("id=?", queryOptions.Id) | ||
171 | + } | ||
172 | + if len(queryOptions.Phone) > 0 { | ||
173 | + hasCondition = true | ||
174 | + query = query.Where("phone=?", queryOptions.Phone) | ||
175 | + } | ||
176 | + if queryOptions.CompanyId > 0 { | ||
177 | + hasCondition = true | ||
178 | + query = query.Where("company_id=?", queryOptions.CompanyId) | ||
179 | + } | ||
180 | + if queryOptions.OpenId > 0 { | ||
181 | + hasCondition = true | ||
182 | + query = query.Where("open_id=?", queryOptions.OpenId) | ||
183 | + } | ||
184 | + if !hasCondition { | ||
185 | + return nil, false, errors.New("UsersRepository.FindOne 必须要有查询条件") | ||
186 | + } | ||
187 | + err = query.First() | ||
188 | + if err != nil && err == pg.ErrNoRows { | ||
189 | + return nil, false, nil | ||
190 | + } | ||
191 | + if err != nil { | ||
192 | + return nil, false, err | ||
193 | + } | ||
194 | + searchResult, err := reponsitory.transformPgModelToDomainModel(&m) | ||
195 | + return &searchResult, true, err | ||
196 | +} | ||
197 | + | ||
156 | func (reponsitory UsersRepository) Find(queryOption domain.UsersFindQuery) (int, []domain.Users, error) { | 198 | func (reponsitory UsersRepository) Find(queryOption domain.UsersFindQuery) (int, []domain.Users, error) { |
157 | db := reponsitory.transactionContext.PgTx | 199 | db := reponsitory.transactionContext.PgTx |
158 | usersModels := []models.Users{} | 200 | usersModels := []models.Users{} |
-
请 注册 或 登录 后发表评论