|
@@ -117,6 +117,7 @@ type CompanyApprovalList struct {
|
|
|
ApplyContractType int `description:"申请合同类型 0 非标 1 标准"`
|
|
|
ApplyUserId int `description:"申请人编号id" json:"-"`
|
|
|
WxUserId int `description:"用户id,针对某份合同仅对单个用户使用的时候的场景"`
|
|
|
+ WxUserName string `description:"用户姓名,针对某份合同仅对单个用户使用的时候的场景"`
|
|
|
}
|
|
|
|
|
|
// ApprovalButton 审批操作权限
|
|
@@ -283,6 +284,83 @@ func TryOutToFormal(companyId, productId, sellerId, companyApprovalId, companyCo
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// TryOutToFormalByWxUser 试用转正式
|
|
|
+func TryOutToFormalByWxUser(companyId, productId, sellerId, companyApprovalId, companyContractId int, startDate, endDate, sellerName, productName string, packageType, raiPackageType, userId int) (newCompanyReportPermissionList []*CompanyReportPermission, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ to, err := o.Begin()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ tmpErr := to.Rollback()
|
|
|
+ if tmpErr != nil {
|
|
|
+ go alarm_msg.SendAlarmMsg("TryOutToFormalByWxUser 事务回滚失败,Err:"+tmpErr.Error(), 3)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = to.Commit()
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var sql string
|
|
|
+
|
|
|
+ sql = `UPDATE company_approval SET approve_status='已审批',approve_time=NOW(),modify_time=NOW() WHERE company_approval_id=? AND company_id=? AND product_id=? `
|
|
|
+ _, err = to.Raw(sql, companyApprovalId, companyId, productId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ items := make([]*UserReportPermission, 0)
|
|
|
+ sql = `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? `
|
|
|
+ _, err = to.Raw(sql, companyId, productId).QueryRows(&items)
|
|
|
+ for _, pv := range items {
|
|
|
+ cpLog := new(UserPermissionLog)
|
|
|
+ cpLog.CompanyId = companyId
|
|
|
+ cpLog.ChartPermissionId = pv.ChartPermissionId
|
|
|
+ cpLog.CreateTime = time.Now()
|
|
|
+ cpLog.SysUserId = sellerId
|
|
|
+ cpLog.SysUserName = sellerName
|
|
|
+ cpLog.StartDate = pv.StartDate
|
|
|
+ cpLog.EndDate = pv.EndDate
|
|
|
+ cpLog.ProductId = productId
|
|
|
+ cpLog.ProductName = pv.ProductName
|
|
|
+ go AddUserPermissionLog(cpLog)
|
|
|
+ }
|
|
|
+
|
|
|
+ contractPermission := make([]*CompanyReportPermission, 0)
|
|
|
+ sql = `SELECT * FROM company_contract_permission WHERE company_contract_id=? AND company_id=? `
|
|
|
+ _, err = to.Raw(sql, companyContractId, companyId).QueryRows(&contractPermission)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, pv := range contractPermission {
|
|
|
+ tmpUserReportPermission := &UserReportPermission{
|
|
|
+ UserId: userId,
|
|
|
+ CompanyId: companyId,
|
|
|
+ ReportPermissionId: pv.ChartPermissionId,
|
|
|
+ CreatedTime: time.Now(),
|
|
|
+ LastUpdatedTime: time.Now(),
|
|
|
+ ChartPermissionId: pv.ChartPermissionId,
|
|
|
+ StartDate: pv.StartDate,
|
|
|
+ EndDate: pv.EndDate,
|
|
|
+ ProductId: productId,
|
|
|
+ ProductName: productName,
|
|
|
+ CompanyContractId: companyContractId,
|
|
|
+ Status: "正式",
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+ _, tmpErr := to.Insert(tmpUserReportPermission)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sql = `UPDATE company_contract SET status=1 WHERE company_contract_id=? AND company_id=? AND product_id=? `
|
|
|
+ _, err = to.Raw(sql, companyContractId, companyId, productId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// TryOutToFormalXClassRai 权益客户试用转正式
|
|
|
func TryOutToFormalXClassRai(companyId, productId, sellerId, companyApprovalId, companyContractId int, startDate, endDate, sellerName, productName string, raiPackageType int) (newCompanyReportPermissionList []*CompanyReportPermission, err error) {
|
|
|
o := orm.NewOrm()
|
|
@@ -1122,6 +1200,40 @@ func ApplyApproveContract(companyId, productId, companyApprovalId, companyContra
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// ApplyApproveContract 更新审批单、合同状态
|
|
|
+func ApplyApproveContractByUser(companyId, productId, companyApprovalId, companyContractId int) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ to, err := o.Begin()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ tmpErr := to.Rollback()
|
|
|
+ if tmpErr != nil {
|
|
|
+ go alarm_msg.SendAlarmMsg("ApplyApproveContract 事务回滚失败,Err:"+tmpErr.Error(), 3)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = to.Commit()
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ //更新审批单
|
|
|
+ sql := `UPDATE company_approval SET approve_status='已审批',approve_time=NOW(),modify_time=NOW() WHERE company_approval_id=? AND company_id=? AND product_id=? `
|
|
|
+ _, err = to.Raw(sql, companyApprovalId, companyId, productId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新合同
|
|
|
+ sql = `UPDATE company_contract SET status=1 WHERE company_contract_id=? AND company_id=? AND product_id=? `
|
|
|
+ _, err = to.Raw(sql, companyContractId, companyId, productId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func GetCompanyApprovalDetailById(companyId, productId int) (item *CompanyApproval, err error) {
|
|
|
sql := `SELECT * FROM company_approval WHERE company_id=? AND product_id=? AND approve_status IN('驳回','已撤回') ORDER BY modify_time DESC LIMIT 1 `
|
|
|
o := orm.NewOrm()
|