Files
lone-services/services/sale/internal/logic/helper.go
T
2026-08-28 10:49:09 +08:00

95 lines
2.2 KiB
Go

package logic
import (
"strconv"
"lone-services/pkg/modelbase"
"lone-services/pkg/utils"
"lone-services/services/sale/internal/dao"
"lone-services/services/sale/internal/model"
"lone-services/services/sale/validator"
)
func saleTypeOptions() []dao.SaleTypeOption {
return []dao.SaleTypeOption{
{Value: dao.SaleTypeStaff, Label: "销售人员"},
{Value: dao.SaleTypeAgentCorp, Label: "销售商(法人)"},
{Value: dao.SaleTypeAgentPerson, Label: "销售商(个人)"},
}
}
func buildRegion(province, city, district string) dao.RegionNames {
return dao.RegionNames{
Province: province,
City: city,
District: district,
}
}
func querySaleNames(req validator.NamesValidator) ([]dao.SaleNameItem, error) {
w := modelbase.Params{
Eq: map[string]string{"status": strconv.Itoa(int(dao.SaleStatusApproved))},
Order: "id desc",
Like: map[string]string{},
}
if req.Type > utils.NumberZero {
w.Eq["type"] = strconv.Itoa(int(req.Type))
}
if req.Level == utils.NumberOne {
w.Eq["sale_id"] = strconv.Itoa(utils.NumberZero)
}
if req.Name != utils.StringEmpty {
w.Like["name LIKE ?"] = "%" + req.Name + "%"
}
var items []dao.SaleNameItem
m := model.SaleModel{}.Init()
if err := m.Items(w, &items); err != nil {
return nil, err
}
if items == nil {
items = []dao.SaleNameItem{}
}
maskSaleNameItems(items)
return items, nil
}
func maskSaleMobile(info *dao.SaleInfo) {
if info == nil {
return
}
info.OriginMobile = info.Mobile
mobile, err := utils.DecryptPhone(info.Mobile)
if err != nil {
return
}
info.Mobile = utils.DecryptPhoneReplace(mobile)
}
func maskSaleNameItems(items []dao.SaleNameItem) {
for i := range items {
mobile, err := utils.DecryptPhone(items[i].Mobile)
if err != nil {
continue
}
items[i].Mobile = utils.DecryptPhoneReplace(mobile)
}
}
func validateSaleTypeRules(saleType uint32, account, businessLicense string) string {
switch uint8(saleType) {
case dao.SaleTypeAgentCorp:
if account == utils.StringEmpty {
return "缺少账户信息"
}
if businessLicense == utils.StringEmpty {
return "缺少营业执照"
}
case dao.SaleTypeAgentPerson:
if account == utils.StringEmpty {
return "缺少账户信息"
}
}
return utils.StringEmpty
}