|
@@ -810,6 +810,157 @@ func (this *UserController) PotentialList() {
|
|
br.Msg = "获取成功"
|
|
br.Msg = "获取成功"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// PotentialEdit
|
|
|
|
+// @Title 编辑潜在客户(转客户)
|
|
|
|
+// @Description 编辑潜在客户(转客户)
|
|
|
|
+// @Param request body request.UserEidtReq true "type json string"
|
|
|
|
+// @Success 200 {object} request.UserAddReq
|
|
|
|
+// @router /potential/edit [post]
|
|
|
|
+func (this *UserController) PotentialEdit() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ var req request.UserEidtReq
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.RealName == "" {
|
|
|
|
+ br.Msg = "请输入姓名"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ req.Phone = strings.TrimSpace(req.Phone)
|
|
|
|
+ req.Email = strings.TrimSpace(req.Email)
|
|
|
|
+ if req.Phone == "" && req.Email == "" {
|
|
|
|
+ br.Msg = "至少输入一个手机号或邮箱"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.Phone != "" {
|
|
|
|
+ if req.AreaCode == "86" {
|
|
|
|
+ if !utils.ValidateMobileFormatat(req.Phone) {
|
|
|
|
+ br.Msg = "手机号格式有误, 请检查"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ user, err := models.GetUserByPhone(req.Phone, req.AreaCode)
|
|
|
|
+ if err != nil && err != orm.ErrNoRows {
|
|
|
|
+ br.Msg = "编辑用户失败"
|
|
|
|
+ br.ErrMsg = "查询用户失败,系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if user != nil && user.UserId != req.UserId {
|
|
|
|
+ br.Msg = "手机号已存在,请重新输入"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if req.Email != "" {
|
|
|
|
+ if !utils.ValidateEmailFormatat(req.Email) {
|
|
|
|
+ br.Msg = "邮箱格式有误, 请检查"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ user, err := models.GetUserByEmail(req.Email)
|
|
|
|
+ if err != nil && err != orm.ErrNoRows {
|
|
|
|
+ br.Msg = "编辑用户失败"
|
|
|
|
+ br.ErrMsg = "查询用户失败,系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if user != nil && user.UserId != req.UserId {
|
|
|
|
+ br.Msg = "邮箱已存在,请重新输入"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if req.SellerId <= 0 {
|
|
|
|
+ br.Msg = "请选择营业部/销售"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.ValidStartTime == "" || req.ValidEndTime == "" {
|
|
|
|
+ br.Msg = "请选择合理的有效期范围"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ validStartTime, err := time.Parse(utils.FormatDate, req.ValidStartTime)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "错误的日期格式"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ validStartTime = validStartTime.In(time.Local).Add(-time.Hour * 8)
|
|
|
|
+ validEndTime, err := time.Parse(utils.FormatDate, req.ValidEndTime)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "错误的日期格式"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ validEndTime = validEndTime.In(time.Local).Add(-time.Hour*8 + time.Hour*24)
|
|
|
|
+ if !validStartTime.Before(validEndTime) {
|
|
|
|
+ br.Msg = "请选择合理的有效期范围"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.Company == "" {
|
|
|
|
+ br.Msg = "请输入所属公司"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if req.IsEnabled && time.Now().After(validEndTime) {
|
|
|
|
+ br.Msg = "启用后,有效期必须大于当前时间"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ user, err := models.GetUserById(req.UserId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err == orm.ErrNoRows {
|
|
|
|
+ br.Msg = "用户不存在或已删除,请重新刷新页面"
|
|
|
|
+ br.ErrMsg = "用户不存在或已删除,请重新刷新页面,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "编辑用户失败"
|
|
|
|
+ br.ErrMsg = "编辑用户失败, 系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ user.RealName = req.RealName
|
|
|
|
+ user.AreaCode = req.AreaCode
|
|
|
|
+ user.Phone = req.Phone
|
|
|
|
+ user.Email = req.Email
|
|
|
|
+ user.SellerId = req.SellerId
|
|
|
|
+ user.ValidStartTime = validStartTime
|
|
|
|
+ user.ValidEndTime = validEndTime
|
|
|
|
+ user.Company = req.Company
|
|
|
|
+ user.ModifyTime = time.Now()
|
|
|
|
+ // 当用户状态初始为潜在客户时,才更新创建时间
|
|
|
|
+ if user.Status == utils.UserStatusPotential {
|
|
|
|
+ user.CreateTime = time.Now()
|
|
|
|
+ }
|
|
|
|
+ oldStatus := user.Status
|
|
|
|
+ if !req.IsEnabled {
|
|
|
|
+ user.Status = 0
|
|
|
|
+ } else {
|
|
|
|
+ user.Status = 2
|
|
|
|
+ }
|
|
|
|
+ err = models.SaveUser(user, req.ChartPermission)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "添加客户失败"
|
|
|
|
+ br.ErrMsg = "添加客户失败,系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ record := &models.UserChangeRecord{}
|
|
|
|
+ record.UserId = req.UserId
|
|
|
|
+ record.SysUserId = this.SysUser.SysUserId
|
|
|
|
+ if oldStatus == utils.UserStatusPotential && user.Status == utils.UserStatusFormal {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "新增用户"
|
|
|
|
+ } else {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "编辑用户"
|
|
|
|
+ }
|
|
|
|
+ record.Insert()
|
|
|
|
+
|
|
|
|
+ br.Msg = "编辑成功"
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Ret = 200
|
|
|
|
+}
|
|
|
|
+
|
|
// Detail
|
|
// Detail
|
|
// @Title 用户详情信息
|
|
// @Title 用户详情信息
|
|
// @Description 用户详情信息
|
|
// @Description 用户详情信息
|