Kaynağa Gözat

fix:添加潜在用户

zqbao 9 ay önce
ebeveyn
işleme
bbfc1cdb4a
2 değiştirilmiş dosya ile 160 ekleme ve 0 silme
  1. 151 0
      controllers/user.go
  2. 9 0
      routers/commentsRouter.go

+ 151 - 0
controllers/user.go

@@ -810,6 +810,157 @@ func (this *UserController) PotentialList() {
 	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
 // @Title 用户详情信息
 // @Description 用户详情信息

+ 9 - 0
routers/commentsRouter.go

@@ -313,6 +313,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UserController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UserController"],
+        beego.ControllerComments{
+            Method: "PotentialEdit",
+            Router: `/potential/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UserController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UserController"],
         beego.ControllerComments{
             Method: "PotentialList",