perf: clear user related data
This commit is contained in:
+17
-3
@@ -168,7 +168,21 @@ func (u *UserService) Delete(param models.UserDeleteParam) int {
|
|||||||
if code != param.Code {
|
if code != param.Code {
|
||||||
return response.ErrCodeVerityCodeInvalid
|
return response.ErrCodeVerityCodeInvalid
|
||||||
}
|
}
|
||||||
err := global.Db.Delete(&models.User{}, param.Id).Error
|
err := global.Db.Transaction(func(tx *gorm.DB) error {
|
||||||
|
mw := map[interface{}]string{
|
||||||
|
&models.Product{}: "creator = ?",
|
||||||
|
&models.Customer{}: "creator = ?",
|
||||||
|
&models.Contract{}: "creator = ?",
|
||||||
|
&models.Subscribe{}: "uid = ?",
|
||||||
|
&models.User{}: "id = ?",
|
||||||
|
}
|
||||||
|
for k, v := range mw {
|
||||||
|
if err := tx.Where(v, param.Id).Delete(k).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response.ErrCodeFailed
|
return response.ErrCodeFailed
|
||||||
}
|
}
|
||||||
@@ -179,11 +193,11 @@ func (u *UserService) Delete(param models.UserDeleteParam) int {
|
|||||||
func (u *UserService) GetInfo(uid int64) (*models.UserPersonInfo, int) {
|
func (u *UserService) GetInfo(uid int64) (*models.UserPersonInfo, int) {
|
||||||
var user models.UserPersonInfo
|
var user models.UserPersonInfo
|
||||||
err := global.Db.Transaction(func(tx *gorm.DB) error {
|
err := global.Db.Transaction(func(tx *gorm.DB) error {
|
||||||
if err := global.Db.Table(USER).Where("id = ?", uid).First(&user).Error; err != nil {
|
if err := tx.Table(USER).Where("id = ?", uid).First(&user).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var subscribe models.Subscribe
|
var subscribe models.Subscribe
|
||||||
if err := global.Db.Table(SUBSCRIBE).Select("version").Where("uid = ?", uid).First(&subscribe).Error; err != nil {
|
if err := tx.Table(SUBSCRIBE).Select("version").Where("uid = ?", uid).First(&subscribe).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
user.Version = subscribe.Version
|
user.Version = subscribe.Version
|
||||||
|
|||||||
Reference in New Issue
Block a user