Browse Source

Merge branch 'needs/815'

hsun 1 year ago
parent
commit
cfda62c015
2 changed files with 167 additions and 2 deletions
  1. 19 2
      controllers/eta_trial.go
  2. 148 0
      services/eta_trial.go

+ 19 - 2
controllers/eta_trial.go

@@ -240,6 +240,7 @@ func (this *ETATrialController) Add() {
 	resp := new(eta_trial.ETATrialListResp)
 
 	//提交审批
+	approvalIds := make([]int, 0)
 	for _, v := range req.List {
 		if v.CompanyName == "" {
 			br.Msg = "请填写公司名称"
@@ -381,7 +382,7 @@ func (this *ETATrialController) Add() {
 		msgItem := new(company.CompanyApprovalMessage)
 		msgItem.CreateUserId = sysUser.AdminId
 		msgItem.ReceiveUserId = -1
-		msgItem.MessageStatus = 0
+		msgItem.MessageStatus = 1 // 已读, 不再亮红点, 但是消息要有
 		msgItem.Remark = seller.RealName + "申请试用账号"
 		msgItem.Content = seller.RealName + "申请试用账号"
 		msgItem.CompanyName = v.CompanyName
@@ -393,6 +394,17 @@ func (this *ETATrialController) Add() {
 		msgItem.SourceType = 9     //消息来源
 		msgItem.ApprovalStatus = 1 //审批状态,1:待审批,2:已审批,3:已驳回
 		err = company.AddCompanyApprovalMessage(msgItem)
+
+		approvalIds = append(approvalIds, int(approvalId))
+	}
+
+	// 2023-08-01默认审批通过, 不再进行人工审批, 也不发送待办消息
+	if len(approvalIds) > 0 {
+		go func() {
+			for _, v := range approvalIds {
+				_ = services.ApprovalApply(v)
+			}
+		}()
 	}
 
 	br.Ret = 200
@@ -484,7 +496,7 @@ func (this *ETATrialController) ApplyEnable() {
 	msgItem := new(company.CompanyApprovalMessage)
 	msgItem.CreateUserId = sysUser.AdminId
 	msgItem.ReceiveUserId = -1
-	msgItem.MessageStatus = 0
+	msgItem.MessageStatus = 1 // 已读, 不再亮红点, 但是消息要有
 	msgItem.Remark = seller.RealName + "申请账号启用"
 	msgItem.Content = seller.RealName + "申请账号启用"
 	msgItem.CompanyName = req.CompanyName
@@ -497,6 +509,11 @@ func (this *ETATrialController) ApplyEnable() {
 	msgItem.ApprovalStatus = 1 //审批状态,1:待审批,2:已审批,3:已驳回
 	err = company.AddCompanyApprovalMessage(msgItem)
 
+	// 2023-08-01默认审批通过, 不再进行人工审批
+	go func() {
+		_ = services.ApprovalApply(int(approvalId))
+	}()
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "提交成功"

+ 148 - 0
services/eta_trial.go

@@ -2,8 +2,13 @@ package services
 
 import (
 	"fmt"
+	"github.com/mozillazg/go-pinyin"
+	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/eta_trial"
 	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+	"strconv"
+	"time"
 )
 
 // UpdateOldTrialUsersManualAuth 更新原试用客户手工录入权限(一次性)
@@ -73,3 +78,146 @@ func CreateTrialUserManualAuth(adminId int, adminRealName string) (err error) {
 	}
 	return
 }
+
+// ApprovalApply 同意审批
+func ApprovalApply(approvalId int) (err error) {
+	defer func() {
+		if err != nil {
+			tips := fmt.Sprintf("ETA试用-自动审批失败, ApprovalId: %d, Err: %s", approvalId, err.Error())
+			utils.FileLog.Info("%s", tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+	}()
+
+	// 获取审批
+	approval, e := eta_trial.GetETATrialApprovalById(approvalId)
+	if e != nil {
+		err = fmt.Errorf("获取审批失败, Err: %s", e.Error())
+		return
+	}
+
+	// 更新审批
+	if e = eta_trial.ApprovalTrial(approvalId); e != nil {
+		err = fmt.Errorf("更新审批失败, Err: %s", e.Error())
+		return
+	}
+
+	// 如果是新客户申请就新增,旧客户更改账号状态即可
+	if approval.ApplyMethod == 2 {
+		if e = eta_trial.UpdateETATrialEnable(approval.Mobile); e != nil {
+			err = fmt.Errorf("启用失败, Err: %s", e.Error())
+			return
+		}
+		if e = eta_trial.UpdateAdminEnable(approval.Mobile); e != nil {
+			err = fmt.Errorf("启用用户失败, Err: %s", e.Error())
+			return
+		}
+	} else {
+		//新增客户
+		newItem := eta_trial.EtaTrial{
+			UserName:    approval.UserName,
+			CompanyName: approval.CompanyName,
+			Position:    approval.Position,
+			Mobile:      approval.Mobile,
+			Enabled:     1,
+			SellerId:    approval.SellerId,
+			Seller:      approval.Seller,
+			CreateTime:  time.Now(),
+			ModifyTime:  time.Now(),
+		}
+
+		strResult := ""
+		a := pinyin.NewArgs()
+		rows := pinyin.Pinyin(newItem.UserName, a)
+		for i := 0; i < len(rows); i++ {
+			strResult += rows[i][0]
+		}
+
+		//若非中文
+		if strResult == "" {
+			strResult = newItem.UserName
+		}
+		list, e := eta_trial.GetETATrialByAccount(strResult)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = fmt.Errorf("获取ETA试用账号失败, Err: %s", e.Error())
+			return
+		}
+		if list != nil && len(list) > 0 {
+			newItem.Account = strResult + strconv.Itoa(len(list))
+		} else {
+			newItem.Account = strResult
+		}
+
+		// 初始密码固定
+		newItem.Password = "123456a"
+
+		_, e = eta_trial.AddETATrial(&newItem)
+		if e != nil {
+			err = fmt.Errorf("新增ETA试用账号失败, Err: %s", e.Error())
+			return
+		}
+
+		// 新增至试用平台的Admin
+		adminItem, e := eta_trial.GetSysUserByRoleAndDepartment("试用", "ETA试用客户")
+		if e != nil {
+			err = fmt.Errorf("获取ETA试用admin失败, Err: %s", e.Error())
+			return
+		}
+
+		admin := new(eta_trial.ETATrialAdmin)
+		admin.AdminName = newItem.Account
+		admin.RealName = newItem.UserName
+		admin.Password = utils.MD5(newItem.Password)
+		admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
+		admin.Enabled = 1
+		admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
+		admin.CreatedTime = time.Now()
+		admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
+		admin.Mobile = newItem.Mobile
+		admin.RoleType = 0
+		admin.RoleId = adminItem.RoleId
+		admin.RoleName = "试用"
+		admin.RoleTypeCode = "管理员"
+		admin.DepartmentId = adminItem.DepartmentId
+		admin.DepartmentName = "ETA试用客户"
+		admin.Role = "admin"
+		admin.Position = approval.Position
+
+		newId, e := eta_trial.AddAdmin(admin)
+		if e != nil {
+			err = fmt.Errorf("新增ETA试用admin失败, Err: %s", e.Error())
+			return
+		}
+
+		// 新增试用客户手工权限
+		go func() {
+			_ = CreateTrialUserManualAuth(newId, admin.RealName)
+		}()
+	}
+
+	// 推送消息给销售
+	msgItem := new(company.CompanyApprovalMessage)
+	msgItem.CreateUserId = 0 // 系统自动创建的消息
+	msgItem.ReceiveUserId = approval.SellerId
+	msgItem.MessageStatus = 0
+	msgItem.Remark = approval.UserName + approval.ApprovalContent + "通过"
+	msgItem.Content = approval.UserName + approval.ApprovalContent + "通过"
+	msgItem.CompanyName = approval.CompanyName
+	msgItem.CreateTime = time.Now()
+	msgItem.ModifyTime = time.Now()
+	msgItem.CompanyApprovalId = approvalId
+	msgItem.OperationStatus = 1
+	msgItem.MessageType = 2    //1:申请消息,2:审批结果,3:文字消息
+	msgItem.SourceType = 9     //消息来源
+	msgItem.ApprovalStatus = 2 //审批状态,1:待审批,2:已审批,3:已驳回
+	err = company.AddCompanyApprovalMessage(msgItem)
+
+	// 更新审批消息(发给所有管理员的)为已读
+	//go func() {
+	//	cond := ` AND company_approval_id = ? AND source_type = ? AND message_status = ? AND receive_user_id = -1 `
+	//	pars := make([]interface{}, 0)
+	//	pars = append(pars, approvalId, 9, 0)
+	//	_ = company.ModifyCompanyApprovalMessageStatusByCond(cond, pars)
+	//}()
+	return
+}