|
|
@@ -5,6 +5,7 @@ import (
|
|
|
"dashoo.cn/micro/app/dao"
|
|
|
"dashoo.cn/micro/app/model"
|
|
|
"dashoo.cn/opms_libary/myerrors"
|
|
|
+ "dashoo.cn/opms_libary/plugin/dingtalk"
|
|
|
"dashoo.cn/opms_libary/request"
|
|
|
"dashoo.cn/opms_libary/utils"
|
|
|
"database/sql"
|
|
|
@@ -278,40 +279,38 @@ func (s *UserService) GetUserInfoById(id int, withPwd ...bool) (user *model.SysU
|
|
|
}
|
|
|
|
|
|
func (s *UserService) CreateUser(req *model.AddUserReq) (err error) {
|
|
|
- var tx *gdb.TX
|
|
|
- tx, err = s.Dao.DB.Begin()
|
|
|
- if err != nil {
|
|
|
- err = myerrors.TipsError("事务开启失败")
|
|
|
- return
|
|
|
- }
|
|
|
- Model := s.Dao.TX(tx)
|
|
|
- if i, _ := Model.Where("user_name=?", req.UserName).Count(); i != 0 {
|
|
|
+ if i, _ := s.Dao.Where("user_name", req.UserName).Count(); i != 0 {
|
|
|
err = myerrors.TipsError("用户名已经存在")
|
|
|
- tx.Rollback()
|
|
|
return
|
|
|
}
|
|
|
- if i, _ := Model.Where("phone=?", req.Phone).Count(); i != 0 {
|
|
|
+ if i, _ := s.Dao.Where("phone", req.Phone).Count(); i != 0 {
|
|
|
err = myerrors.TipsError("手机号已经存在")
|
|
|
- tx.Rollback()
|
|
|
return
|
|
|
}
|
|
|
userData := new(model.SysUser)
|
|
|
if err = gconv.Struct(req, userData); err != nil {
|
|
|
- tx.Rollback()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var tx *gdb.TX
|
|
|
+ tx, err = s.Dao.DB.Begin()
|
|
|
+ if err != nil {
|
|
|
+ err = myerrors.TipsError("事务开启失败")
|
|
|
return
|
|
|
}
|
|
|
userData.IsFirstLogin = "10"
|
|
|
userData.AllowErrorNum = 5
|
|
|
userData.UserSalt = grand.S(10)
|
|
|
userData.Password = utils.EncryptPassword(userData.Password, userData.UserSalt)
|
|
|
+ userData.DingtalkUid, userData.DingtalkId = dingtalk.NewClient().GetContact().QueryUserIdAndUnionidByPhone(req.Phone)
|
|
|
SetCreatedInfo(userData, s.GetCxtUserId(), s.GetCxtUserName())
|
|
|
- res, err := Model.Insert(userData)
|
|
|
+ insertId, err := s.Dao.TX(tx).InsertAndGetId(userData)
|
|
|
if err != nil {
|
|
|
tx.Rollback()
|
|
|
return
|
|
|
}
|
|
|
- insertId, _ := res.LastInsertId()
|
|
|
if err := s.AddUserOtherInfo(req.SetUserReq, insertId, tx); err != nil {
|
|
|
+ tx.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
tx.Commit()
|