|
@@ -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
|
|
|
+}
|