feat: sale manager
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user