|
@@ -6,6 +6,7 @@ import (
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -52,107 +53,298 @@ func SpecialTripPopupMsg(activityInfo *models.CygxActivitySpecialDetail, user *m
|
|
|
}
|
|
|
|
|
|
|
|
|
-func GetTripRemainingtimesBycompany(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (errMsg string, tripRemaining int, err error) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+func CheckTripRemainingtimesBycompany(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (errMsg string, err error) {
|
|
|
msgTemplate := "您的专项调研次数已用完,如仍想参加,请与您的对口销售商议"
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- userType, _, e := GetUserType(user.CompanyId)
|
|
|
+ companyId := user.CompanyId
|
|
|
+ chartPermissionName := activityInfo.ChartPermissionName
|
|
|
+
|
|
|
+ companyDetail, e := models.GetCompanyDetailByIdGroup(companyId)
|
|
|
if e != nil {
|
|
|
- err = errors.New("获取客户身份信息失败 GetActivitySpecialUserType, Err: " + e.Error())
|
|
|
+ err = errors.New("GetCompanyDetailByIdGroup, Err:" + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- if userType == 0 {
|
|
|
- errMsg = msgTemplate
|
|
|
+
|
|
|
+ if companyDetail.Status == utils.COMPANY_STATUS_FOREVER {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND company_id = ? AND points > 0 ORDER BY chart_permission_id DESC "
|
|
|
+ pars = append(pars, companyId)
|
|
|
+ activitySpecialPermissionPointsList, e := models.GetCygxActivitySpecialPermissionPointsList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxActivitySpecialPermissionPointsList, Err:" + e.Error())
|
|
|
return
|
|
|
- } else if userType == 1 {
|
|
|
- tripRemaining = 999
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(activitySpecialPermissionPointsList) == 0 {
|
|
|
+ errMsg = msgTemplate
|
|
|
return
|
|
|
- } else if userType == 2 {
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
-
|
|
|
- condition += ` AND company_id = ? `
|
|
|
- pars = append(pars, user.CompanyId)
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- condition += ` AND create_time >= ? `
|
|
|
- pars = append(pars, time.Now().Format(utils.FormatYearDate)+"-01-01")
|
|
|
- listTripBill, e := models.GetCygxActivitySpecialTripBill(condition, pars)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- var TripBillNum int
|
|
|
- for _, v := range listTripBill {
|
|
|
- TripBillNum += v.BillDetailed
|
|
|
- }
|
|
|
- var packageType int
|
|
|
-
|
|
|
- companyUserTypeDetail, errs := models.GetCygxCompanyUserType(user.CompanyId)
|
|
|
- if errs != nil && errs.Error() != utils.ErrNoRow() {
|
|
|
- err = errs
|
|
|
- return
|
|
|
- }
|
|
|
- if companyUserTypeDetail != nil {
|
|
|
- packageType = companyUserTypeDetail.PackageType
|
|
|
- if companyUserTypeDetail.CustomerTypeId != 0 {
|
|
|
- userType = companyUserTypeDetail.CustomerTypeId
|
|
|
+
|
|
|
+ if chartPermissionName == utils.CE_LUE_NAME {
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ for _, v := range activitySpecialPermissionPointsList {
|
|
|
+ if v.ChartPermissionName == chartPermissionName || v.ChartPermissionId == 0 {
|
|
|
return
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ errMsg = msgTemplate
|
|
|
+ return
|
|
|
|
|
|
- packageTypeMap := map[int]int{1: 16, 2: 10}
|
|
|
- totalTrip := packageTypeMap[packageType]
|
|
|
-
|
|
|
- tripRemaining = totalTrip + TripBillNum
|
|
|
- if tripRemaining <= 0 {
|
|
|
- errMsg = msgTemplate
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func GetSpecialBillMaxChartPermissionId(user *models.WxUserItem) (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 := models.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
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func DeductTripRemainingtimesByUser(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (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)
|
|
|
|
|
|
- condition += ` AND company_id = ? `
|
|
|
- pars = append(pars, user.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 := models.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 = models.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
- condition += ` AND chart_permission_id = ? `
|
|
|
- pars = append(pars, activityInfo.ChartPermissionId)
|
|
|
+
|
|
|
+func RebateTripRemainingtimesByUser(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (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)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- condition += ` AND create_time >= ? `
|
|
|
- pars = append(pars, time.Now().Format(utils.FormatYearDate)+"-01-01")
|
|
|
- listTripBill, e := models.GetCygxActivitySpecialTripBill(condition, pars)
|
|
|
+
|
|
|
+ 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 := models.GetCygxActivitySpecialTripBillLastDetialByActivityId(activityInfo.ActivityId, user.UserId)
|
|
|
if e != nil {
|
|
|
err = errors.New("GetActivitySpecialTripCountByActivitySpecial, Err: " + e.Error())
|
|
|
return
|
|
|
}
|
|
|
- var TripBillNum int
|
|
|
- for _, v := range listTripBill {
|
|
|
- TripBillNum += v.BillDetailed
|
|
|
+
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ condition = " AND company_id = ? AND chart_permission_id = ? LIMIT 1 "
|
|
|
+ pars = append(pars, companyId, lastTripBill.ChartPermissionId)
|
|
|
+ }
|
|
|
+ activitySpecialPermissionPointsList, e := models.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 = models.UpdateCygxActivitySpecialPermissionPoints(points, companyId, maxChartPermissionId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateCygxActivitySpecialPermissionPoints, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func HandleActivitySpecialTripBillTotalText(user *models.WxUserItem) (totalText string, err error) {
|
|
|
+ companyId := user.CompanyId
|
|
|
+ companyDetail, e := models.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 := models.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, "次"))
|
|
|
}
|
|
|
-
|
|
|
- tripRemaining = 5 + TripBillNum
|
|
|
- if tripRemaining <= 0 {
|
|
|
- errMsg = msgTemplate
|
|
|
- return
|
|
|
+ if v.ChartPermissionId == 0 {
|
|
|
+ totalText = fmt.Sprint(v.Points, "次")
|
|
|
}
|
|
|
}
|
|
|
+ if len(itemBillTotal) > 0 {
|
|
|
+ totalText = strings.Join(itemBillTotal, "+")
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|