|
@@ -539,15 +539,32 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+//func init() {
|
|
|
+// ActivitySpecialCompanyApproval(7030, 1259, "怀民大套餐客户")
|
|
|
+
|
|
|
+// //格式化合同开始时间
|
|
|
+// contractStartDate, tmpErr := time.Parse(utils.FormatDate, "2023-12-19")
|
|
|
+//
|
|
|
+// if tmpErr != nil {
|
|
|
+// fmt.Println(tmpErr)
|
|
|
+// return
|
|
|
+// }
|
|
|
+//
|
|
|
+// if time.Now().After(contractStartDate) {
|
|
|
+// fmt.Println("go")
|
|
|
+// }
|
|
|
+//}
|
|
|
+
|
|
|
// 审批通过的时候专项调研次数更新
|
|
|
-func ActivitySpecialCompanyApproval(companyId int, companyName string) (err error) {
|
|
|
+func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyName string) (err error) {
|
|
|
userType, packageType, _, _, _ := GetUserType(companyId)
|
|
|
// 获取继承点数
|
|
|
//inheritList, e := cygx.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
|
|
|
//if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
// err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
|
|
|
//}
|
|
|
- chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
|
|
|
+ //chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
|
|
|
+ var items []*cygx.CygxActivitySpecialPermissionPoints
|
|
|
|
|
|
itemBill := new(cygx.CygxActivitySpecialTripBill)
|
|
|
itemBill.CreateTime = time.Now()
|
|
@@ -559,17 +576,6 @@ func ActivitySpecialCompanyApproval(companyId int, companyName string) (err erro
|
|
|
if userType == 2 {
|
|
|
packageTypeMap := map[int]int{1: 16, 2: 10}
|
|
|
totalTrip := packageTypeMap[packageType]
|
|
|
- //if len(inheritList) > 0 {
|
|
|
- // for _, v := range inheritList {
|
|
|
- // if v.ChartPermissionId == 0 {
|
|
|
- // itemBill.BillDetailed = totalTrip + v.Points
|
|
|
- // } else {
|
|
|
- // itemBill.BillDetailed = totalTrip
|
|
|
- // }
|
|
|
- // }
|
|
|
- //} else {
|
|
|
- // itemBill.BillDetailed = totalTrip
|
|
|
- //}
|
|
|
itemBill.BillDetailed = totalTrip
|
|
|
itemBill.Total = strconv.Itoa(itemBill.BillDetailed) + "次"
|
|
|
if totalTrip == 10 {
|
|
@@ -577,70 +583,104 @@ func ActivitySpecialCompanyApproval(companyId int, companyName string) (err erro
|
|
|
} else {
|
|
|
itemBill.Content = "70w大套餐转正"
|
|
|
}
|
|
|
+
|
|
|
+ //记录公司剩余点数
|
|
|
+ item := new(cygx.CygxActivitySpecialPermissionPoints)
|
|
|
+ item.Points = totalTrip
|
|
|
+ item.CompanyId = companyId
|
|
|
+ item.CompanyName = companyName
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ items = append(items, item)
|
|
|
+
|
|
|
} else {
|
|
|
- list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
|
|
|
+ //list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
|
|
|
+ //if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ // err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
|
|
|
+ //}
|
|
|
+ //if len(list) == 0 {
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ 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("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
|
|
|
- }
|
|
|
- if len(list) == 0 {
|
|
|
+ err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- var chartPermissionIdSlice []string
|
|
|
- mapChartName := make(map[string]int)
|
|
|
- mapUpgradeId := make(map[int]int)
|
|
|
- mapInheritChartName := make(map[string]int)
|
|
|
- mapPermissionNameTrip := make(map[string]int)
|
|
|
- //mapPermissionName := make(map[int]string)
|
|
|
- for _, v := range list {
|
|
|
- chartPermissionIdSlice = append(chartPermissionIdSlice, strconv.Itoa(v.ChartPermissionId))
|
|
|
- //是升级套餐才有点数
|
|
|
- if v.IsUpgrade == 1 {
|
|
|
- mapUpgradeId[v.ChartPermissionId] = 1
|
|
|
- }
|
|
|
- }
|
|
|
- chartList := make([]*models.ChartPermission, 0)
|
|
|
- if len(chartPermissionIdSlice) > 0 {
|
|
|
- chartList, e = models.GetChartPermissionByIds(chartPermissionIdSlice)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("获取品种信息失败, Err:" + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxAllocationCompanyContractPermissionListById, Err: " + e.Error())
|
|
|
+ return
|
|
|
}
|
|
|
- if len(chartList) == 0 {
|
|
|
+
|
|
|
+ if len(list) == 0 {
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range chartList {
|
|
|
- //如果是升级则加点
|
|
|
- if _, ok := mapUpgradeId[v.ChartPermissionId]; ok {
|
|
|
- mapChartName[v.PermissionName] = 5 + mapPermissionNameTrip[v.ChartPermissionName]
|
|
|
- } else {
|
|
|
- mapChartName[v.PermissionName] = mapPermissionNameTrip[v.ChartPermissionName]
|
|
|
- }
|
|
|
+
|
|
|
+ //获取权益主观权限
|
|
|
+ listRaiSubjectivity, e := models.GetChartPermissionListRaiSubjectivity()
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetChartPermissionListRaiSubjectivity, Err: " + e.Error())
|
|
|
}
|
|
|
- // 通过继承获得的加点
|
|
|
- //for _, v := range inheritList {
|
|
|
- // mapInheritChartName[v.ChartPermissionName] = v.Points
|
|
|
- //}
|
|
|
- for k, _ := range chartNameMap {
|
|
|
- if _, ok := mapChartName[k]; ok {
|
|
|
- if inherit, ok2 := mapInheritChartName[k]; ok2 {
|
|
|
- mapChartName[k] += inherit
|
|
|
- }
|
|
|
- }
|
|
|
+ mapRaiSubjectivity := make(map[int]bool)
|
|
|
+ mapPermissionName := make(map[int]string)
|
|
|
+ for _, v := range listRaiSubjectivity {
|
|
|
+ mapRaiSubjectivity[v.ChartPermissionId] = true
|
|
|
+ mapPermissionName[v.ChartPermissionId] = v.ChartPermissionName
|
|
|
}
|
|
|
- for k, v := range mapChartName {
|
|
|
- if v > 0 {
|
|
|
- itemBill.BillDetailed += v
|
|
|
- itemBill.Total += k + strconv.Itoa(v) + "次+"
|
|
|
+ for _, v := range list {
|
|
|
+ //如果是升级则加点
|
|
|
+ if v.IsUpgrade == 1 && mapRaiSubjectivity[v.ChartPermissionId] {
|
|
|
+ item := new(cygx.CygxActivitySpecialPermissionPoints)
|
|
|
+ item.Points = 5
|
|
|
+ item.CompanyId = companyId
|
|
|
+ item.CompanyName = companyName
|
|
|
+ item.ChartPermissionId = v.ChartPermissionId
|
|
|
+ item.ChartPermissionName = mapPermissionName[v.ChartPermissionId]
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ items = append(items, item)
|
|
|
}
|
|
|
}
|
|
|
itemBill.Content = "行业升级套餐转正"
|
|
|
- itemBill.Total = strings.TrimRight(itemBill.Total, "+")
|
|
|
}
|
|
|
- err = cygx.AddCygxActivitySpecialTripBill(itemBill)
|
|
|
- if err != nil {
|
|
|
+
|
|
|
+ e := cygx.MultiAddCygxActivitySpecialPermissionPoints(items)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("MultiAddCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
+ if userType != 2 && len(items) > 0 {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND points > 0 ORDER BY chart_permission_id DESC "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+ activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var itemBillTotal []string
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次"))
|
|
|
+ }
|
|
|
+ itemBill.BillDetailed = 5 * len(items)
|
|
|
+ itemBill.Total = strings.Join(itemBillTotal, "+")
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果有升级行业权限,或者大套餐客户就写入流水信息
|
|
|
+ if itemBill.Total != "" {
|
|
|
+ e := cygx.AddCygxActivitySpecialTripBill(itemBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxActivitySpecialTripBill, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -697,3 +737,214 @@ func GetSpecialSurplusByCompanyNew(companyId int) (specialSurplus string, err er
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetSpecialBillMaxChartPermissionId 获取专项调研剩余点数最多的行业
|
|
|
+func GetSpecialBillMaxChartPermissionId(user *cygx.UserAndCompanyName) (maxChartPermissionId int, maxChartPermissionName string, err error) {
|
|
|
+ companyId := user.CompanyId
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND company_id = ? AND points > 0 ORDER BY points DESC LIMIT 1 "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+
|
|
|
+ activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ maxChartPermissionId = v.ChartPermissionId
|
|
|
+ maxChartPermissionName = v.ChartPermissionName
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// DeductTripRemainingtimesByUser 扣除用户专项调研剩余次数
|
|
|
+func DeductTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo *cygx.ActivitySpecialDetail) (err error) {
|
|
|
+ msgTemplate := "您的专项调研次数已用完,如仍想参加,请与您的对口销售商议"
|
|
|
+ companyId := user.CompanyId
|
|
|
+ chartPermissionName := activityInfo.ChartPermissionName
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND company_id = ? AND points > 0 ORDER BY points DESC LIMIT 1 "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+
|
|
|
+ //判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
|
|
|
+ if chartPermissionName != utils.CE_LUE_NAME {
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND chart_permission_id = ? AND points > 0 ORDER BY points DESC LIMIT 1 "
|
|
|
+ pars = append(pars, companyId, activityInfo.ChartPermissionId)
|
|
|
+ }
|
|
|
+ activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //如果没有剩余的点数,就返回
|
|
|
+ if len(activitySpecialPermissionPointsList) == 0 {
|
|
|
+ err = errors.New(msgTemplate)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var maxChartPermissionId int // 剩余点数最多的行业
|
|
|
+ var points int // 剩余点数
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ maxChartPermissionId = v.ChartPermissionId
|
|
|
+ points = v.Points - 1
|
|
|
+ }
|
|
|
+ //更新对应行业剩余点数
|
|
|
+ e = cygx.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// RebateTripRemainingtimesByUser 返点用户专项调研剩余次数
|
|
|
+func RebateTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo *cygx.ActivitySpecialDetail) (err error) {
|
|
|
+ companyId := user.CompanyId
|
|
|
+ chartPermissionName := activityInfo.ChartPermissionName
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND company_id = ? ORDER BY points DESC LIMIT 1 "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+
|
|
|
+ //判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
|
|
|
+ if chartPermissionName != utils.CE_LUE_NAME {
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND chart_permission_id = ? LIMIT 1 "
|
|
|
+ pars = append(pars, companyId, activityInfo.ChartPermissionId)
|
|
|
+ } else {
|
|
|
+ lastTripBill, e := cygx.GetCygxActivitySpecialTripBillLastDetialByActivityId(activityInfo.ActivityId, user.UserId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND chart_permission_id = ? LIMIT 1 "
|
|
|
+ pars = append(pars, companyId, lastTripBill.ChartPermissionId)
|
|
|
+ }
|
|
|
+ activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var maxChartPermissionId int // 剩余点数最多的行业(返点行业)
|
|
|
+ var points int // 剩余点数
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ maxChartPermissionId = v.ChartPermissionId
|
|
|
+ points = v.Points + 1
|
|
|
+ }
|
|
|
+ //更新对应行业剩余点数
|
|
|
+ e = cygx.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 预处理专项调研流水明细表描述内容
|
|
|
+func HandleActivitySpecialTripBillTotalText(user *cygx.UserAndCompanyName) (totalText string, err error) {
|
|
|
+ companyId := user.CompanyId
|
|
|
+ companyDetail, e := cygx.GetCompanyDetailByIdGroup(companyId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCompanyDetailByIdGroup, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //永续客户不限制次数
|
|
|
+ if companyDetail.Status == utils.COMPANY_STATUS_FOREVER {
|
|
|
+ totalText = "0次"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND points != 0 ORDER BY chart_permission_id DESC "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+ activitySpecialPermissionPointsList, e := cygx.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var itemBillTotal []string
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ if v.ChartPermissionId > 0 {
|
|
|
+ itemBillTotal = append(itemBillTotal, fmt.Sprint(v.ChartPermissionName, v.Points, "次")) // 行业套餐客户展示规则
|
|
|
+ }
|
|
|
+ if v.ChartPermissionId == 0 {
|
|
|
+ totalText = fmt.Sprint(v.Points, "次") // 大套餐客户展示规则
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(itemBillTotal) > 0 {
|
|
|
+ totalText = strings.Join(itemBillTotal, "+")
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func initnee885() {
|
|
|
+ list, err := cygx.GetBestNewBillList()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ }
|
|
|
+ var items []*cygx.CygxActivitySpecialPermissionPoints
|
|
|
+ for _, v := range list {
|
|
|
+ fmt.Println(v.Total)
|
|
|
+ if v.Total == "" || v.Total == "0" || v.Total == "0次" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ //智造5次+科技5次+消费5次+医药4次
|
|
|
+ sliceTotal := strings.Split(v.Total, "+")
|
|
|
+
|
|
|
+ for _, vs := range sliceTotal {
|
|
|
+ var points string
|
|
|
+ item := new(cygx.CygxActivitySpecialPermissionPoints)
|
|
|
+ if strings.Contains(vs, "医药") {
|
|
|
+ item.ChartPermissionName = "医药"
|
|
|
+ points := strings.Replace(vs, "医药", "", -1)
|
|
|
+ fmt.Println(points)
|
|
|
+ points = strings.Replace(points, "次", "", -1)
|
|
|
+ item.Points, _ = strconv.Atoi(points)
|
|
|
+ item.ChartPermissionId = 22
|
|
|
+ } else if strings.Contains(vs, "消费") {
|
|
|
+ item.ChartPermissionName = "消费"
|
|
|
+ points := strings.Replace(vs, "消费", "", -1)
|
|
|
+ points = strings.Replace(points, "次", "", -1)
|
|
|
+ item.ChartPermissionId = 21
|
|
|
+ item.Points, _ = strconv.Atoi(points)
|
|
|
+ } else if strings.Contains(vs, "科技") {
|
|
|
+ item.ChartPermissionName = "科技"
|
|
|
+ points := strings.Replace(vs, "科技", "", -1)
|
|
|
+ points = strings.Replace(points, "次", "", -1)
|
|
|
+ item.ChartPermissionId = 20
|
|
|
+ item.Points, _ = strconv.Atoi(points)
|
|
|
+ } else if strings.Contains(vs, "智造") {
|
|
|
+ item.ChartPermissionName = "智造"
|
|
|
+ points := strings.Replace(vs, "智造", "", -1)
|
|
|
+ points = strings.Replace(points, "次", "", -1)
|
|
|
+ item.ChartPermissionId = 19
|
|
|
+ item.Points, _ = strconv.Atoi(points)
|
|
|
+ } else {
|
|
|
+ points = strings.Replace(vs, "次", "", -1)
|
|
|
+ item.Points, _ = strconv.Atoi(points)
|
|
|
+ }
|
|
|
+ fmt.Println("points", points)
|
|
|
+ fmt.Println(vs)
|
|
|
+
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ fmt.Println(item)
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(len(items))
|
|
|
+ err = cygx.MultiAddCygxActivitySpecialPermissionPoints(items)
|
|
|
+ fmt.Println(err)
|
|
|
+
|
|
|
+}
|