浏览代码

no message

zhangchuanxing 1 周之前
父节点
当前提交
983803d8ed
共有 3 个文件被更改,包括 182 次插入5 次删除
  1. 14 5
      models/chart_permission.go
  2. 15 0
      models/company/company_contract.go
  3. 153 0
      services/activity_points.go

+ 14 - 5
models/chart_permission.go

@@ -6,11 +6,12 @@ import (
 )
 )
 
 
 type ChartPermission struct {
 type ChartPermission struct {
-	ChartPermissionId int    `description:"权限id"`
-	PermissionName    string `description:"权限名称"`
-	IsShowSustainable bool   `description:"是否展示限免标签"`
-	ImageUrlM         string `description:"图片地址"`
-	IsChoose          bool   `description:"是否选择"`
+	ChartPermissionId   int    `description:"权限id"`
+	PermissionName      string `description:"权限名称"`
+	ChartPermissionName string `description:"名称"`
+	IsShowSustainable   bool   `description:"是否展示限免标签"`
+	ImageUrlM           string `description:"图片地址"`
+	IsChoose            bool   `description:"是否选择"`
 }
 }
 
 
 type ChartPermissionItemResp struct {
 type ChartPermissionItemResp struct {
@@ -179,3 +180,11 @@ func GetChartPermissionIdByName(condition string, pars []interface{}) (chartperm
 	err = o.Raw(sql, pars).QueryRow(&chartpermissionids)
 	err = o.Raw(sql, pars).QueryRow(&chartpermissionids)
 	return
 	return
 }
 }
+
+// 获取权益主观权限
+func GetChartPermissionListRaiSubjectivity() (items []*ChartPermission, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT * FROM chart_permission WHERE product_id=2  AND permission_type = 1 and parent_id > 0  ORDER BY sort ASC `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 15 - 0
models/company/company_contract.go

@@ -83,6 +83,13 @@ func GetCompanyContractList(condition string, pars []interface{}) (items []*Comp
 	return
 	return
 }
 }
 
 
+func GetCompanyContractById(companyContractId int) (item *CompanyContract, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT * FROM company_contract WHERE company_contract_id=? `
+	err = o.Raw(sql, companyContractId).QueryRow(&item)
+	return
+}
+
 // 通过查询条件获取最后一个合同
 // 通过查询条件获取最后一个合同
 func GetCompanyContractLastList(condition string, pars []interface{}) (items []*CompanyContract, err error) {
 func GetCompanyContractLastList(condition string, pars []interface{}) (items []*CompanyContract, err error) {
 	if condition == "" {
 	if condition == "" {
@@ -93,3 +100,11 @@ func GetCompanyContractLastList(condition string, pars []interface{}) (items []*
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 	return
 }
 }
+
+// 获取合同是否包含点数
+func GetCompanyContractPermissionPointsCount(companyId int) (points float64, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sqlCount := `SELECT points FROM company_contract_permission  WHERE company_contract_id=?  AND points >0   LIMIT 	  1 `
+	err = o.Raw(sqlCount, companyId).QueryRow(&points)
+	return
+}

+ 153 - 0
services/activity_points.go

@@ -226,6 +226,10 @@ func YanXuanActivityPointsBillReduce() (err error) {
 				go SpecialActivityPointsBillSignupCancelReduce(log)
 				go SpecialActivityPointsBillSignupCancelReduce(log)
 				fmt.Println(" 10:取消报名专项调研活动")
 				fmt.Println(" 10:取消报名专项调研活动")
 				break
 				break
+			case 11:
+				go ActivitySpecialCompanyApprovalReduce(log)
+				fmt.Println("11:合同审批通过的时候,专项调研点数更新。")
+				break
 			default:
 			default:
 				fmt.Println(string(b))
 				fmt.Println(string(b))
 				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
 				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
@@ -1455,3 +1459,152 @@ func SpecialActivityPointsBillSignupCancelReduce(log models.YanXuanActivityPoint
 	err = models.AddCygxActivitySpecialTripBillMulti(items, itemCompanys)
 	err = models.AddCygxActivitySpecialTripBillMulti(items, itemCompanys)
 	return
 	return
 }
 }
+
+// 11:合同审批通过的时候,专项调研点数更新
+func ActivitySpecialCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err error) {
+	time.Sleep(5 * time.Second) // 延迟5秒处理
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("研选审批通过的时候研选扣点更新,处理Redis队列消息失败:"+err.Error()+fmt.Sprint(log), 2)
+		}
+	}()
+	companyId := log.ComapnyId
+	companyContractId := log.CompanyContractId
+	comapnyDetail, e := models.GetCompanyById(companyId)
+	if e != nil {
+		err = errors.New("GetCompanyById" + e.Error())
+		return
+	}
+
+	//判断公司是不是满足扣点情况,如果是后台超管手动给试用客户报名,就写入一条点数初始化数据
+	total, e := models.GetCygxActivitySpecialPermissionPointsCountByCompanyId(companyId)
+	if e != nil {
+		err = errors.New("GetCygxActivitySpecialPermissionPointsCountByCompanyId, Err: " + e.Error())
+		return
+	}
+	var companyPointsNum float64
+	if total == 0 {
+		companyPointsNum = 0
+		itemPointsCompany := new(models.CygxActivitySpecialPermissionPoints)
+		itemPointsCompany.CompanyId = companyId
+		itemPointsCompany.CompanyName = comapnyDetail.CompanyName
+		itemPointsCompany.CreateTime = time.Now()
+		itemPointsCompany.ModifyTime = time.Now()
+		e = models.AddCygxActivitySpecialPermissionPoints(itemPointsCompany)
+		if e != nil {
+			err = errors.New("AddCygxActivitySpecialPermissionPoints, Err: " + e.Error())
+			return
+		}
+	} else {
+		// 获取用户所在公司剩余的点
+		companyPointsNum, e = models.GetCygxActivitySpecialPermissionPoints(companyId)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetCygxActivitySpecialPermissionPoints, Err: " + e.Error())
+			return
+		}
+	}
+
+	companyPoints, e := company.GetCompanyContractPermissionPointsCount(companyContractId)
+	if e != nil {
+		err = errors.New("GetCompanyContractPermissionPointsCount, Err: " + e.Error())
+		return
+	}
+	//获取需要添加的流水信息
+	var items []*models.CygxActivitySpecialTripBill
+	if companyPoints > 0 {
+		companyPointsNum += companyPoints
+		itemBill := new(models.CygxActivitySpecialTripBill)
+		itemBill.CreateTime = time.Now()
+		itemBill.CompanyId = comapnyDetail.CompanyId
+		itemBill.CompanyName = comapnyDetail.CompanyName
+		itemBill.Source = 2
+		itemBill.DoType = 2
+		itemBill.Way = 3
+		itemBill.RegisterPlatform = log.RegisterPlatform
+		itemBill.TableSource = utils.CYGX_OBJ_ACTIVITYSPECIAL
+		itemBill.BillDetailed = companyPoints
+		itemBill.Total = fmt.Sprint(companyPointsNum, "次")
+		itemBill.Content = "路演/专项点数转正"
+		items = append(items, itemBill)
+	}
+
+	// 获取合同信息-套餐信息
+	companyContract, e := company.GetCompanyContractById(companyContractId)
+	if e != nil {
+		err = errors.New("GetCompanyContractById, Err: " + e.Error())
+		return
+	}
+
+	itemBill := new(models.CygxActivitySpecialTripBill)
+	itemBill.CreateTime = time.Now()
+	itemBill.CompanyId = comapnyDetail.CompanyId
+	itemBill.CompanyName = comapnyDetail.CompanyName
+	itemBill.Source = 2
+	itemBill.DoType = 2
+	itemBill.Way = 3
+	itemBill.RegisterPlatform = log.RegisterPlatform
+	itemBill.TableSource = utils.CYGX_OBJ_ACTIVITYSPECIAL
+
+	packageType := companyContract.RaiPackageType
+	if packageType > 0 {
+		packageTypeMap := map[int]float64{1: 16, 2: 12}
+		totalTrip := packageTypeMap[packageType]
+		itemBill.BillDetailed = totalTrip
+		companyPointsNum += totalTrip
+		itemBill.Total = fmt.Sprint(itemBill.BillDetailed) + "次"
+		if packageType == 2 {
+			itemBill.Content = "45w大套餐转正"
+		} else {
+			itemBill.Content = "70w大套餐转正"
+		}
+		itemBill.Total = fmt.Sprint(companyPointsNum, "次")
+		items = append(items, itemBill)
+	} else {
+		var condition string
+		var pars []interface{}
+		pars = make([]interface{}, 0)
+		condition = " AND  company_contract_id = ?  AND  is_upgrade = 1  "
+		pars = append(pars, companyContractId)
+		list, e := company.GetCompanyContractPermissionList(condition, pars) // 获取带有升级的权限
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
+			return
+		}
+		if len(list) == 0 {
+			return
+		}
+		//获取权益主观权限
+		listRaiSubjectivity, e := models.GetChartPermissionListRaiSubjectivity()
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetChartPermissionListRaiSubjectivity, Err: " + e.Error())
+		}
+		mapRaiSubjectivity := make(map[int]bool)
+		mapPermissionName := make(map[int]string)
+		for _, v := range listRaiSubjectivity {
+			mapRaiSubjectivity[v.ChartPermissionId] = true
+			mapPermissionName[v.ChartPermissionId] = v.ChartPermissionName
+		}
+		for _, v := range list {
+			//如果是升级则加点
+			if v.IsUpgrade == 1 && mapRaiSubjectivity[v.ChartPermissionId] {
+				itemBill.BillDetailed += 4
+				companyPointsNum += 4
+			}
+		}
+		itemBill.Total = fmt.Sprint(companyPointsNum, "次")
+		itemBill.Content = "行业升级套餐转正"
+		items = append(items, itemBill)
+	}
+
+	//更新对应机构的剩余点数
+	var itemCompanys []*models.CygxActivitySpecialPermissionPoints
+	itemCompany := new(models.CygxActivitySpecialPermissionPoints)
+	itemCompany.CompanyId = comapnyDetail.CompanyId
+	itemCompany.Points = companyPointsNum
+	itemCompany.ModifyTime = time.Now()
+	itemCompanys = append(itemCompanys, itemCompany)
+
+	err = models.AddCygxActivitySpecialTripBillMulti(items, itemCompanys)
+	return
+}