fix: sale create fields
CI / changes (push) Successful in 14s
CI / docker-bff (push) Successful in 3s
CI / docker-product (push) Successful in 24s
CI / docker-admin (push) Has been skipped
CI / docker-user (push) Has been skipped
CI / docker-ad (push) Has been skipped
CI / docker-chore (push) Successful in 25s
CI / docker-express (push) Has been skipped
CI / docker-sale (push) Successful in 26s
CI / changes (push) Successful in 14s
CI / docker-bff (push) Successful in 3s
CI / docker-product (push) Successful in 24s
CI / docker-admin (push) Has been skipped
CI / docker-user (push) Has been skipped
CI / docker-ad (push) Has been skipped
CI / docker-chore (push) Successful in 25s
CI / docker-express (push) Has been skipped
CI / docker-sale (push) Successful in 26s
This commit is contained in:
@@ -59,6 +59,28 @@ func (l *CreateLogic) Create(in *sale.CreateReq) (*sale.Response, error) {
|
||||
return failResponse(utils.ErrorDataIsExist), nil
|
||||
}
|
||||
|
||||
names, nErr := fetchRegionNames(l.ctx, l.svcCtx.ChoreSvcName, req.TerritoryId, req.ProvinceId, req.CityId, req.DistrictId)
|
||||
if nErr != nil {
|
||||
l.Errorf("sale regions: %v", nErr)
|
||||
return failResponse(utils.Fail), nil
|
||||
}
|
||||
territoryName := names[req.TerritoryId]
|
||||
if territoryName == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择地域"), nil
|
||||
}
|
||||
province := names[req.ProvinceId]
|
||||
if province == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择省份"), nil
|
||||
}
|
||||
city := names[req.CityId]
|
||||
if city == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择城市"), nil
|
||||
}
|
||||
district := names[req.DistrictId]
|
||||
if district == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择区县"), nil
|
||||
}
|
||||
|
||||
data := dao.SaleCreate{
|
||||
SaleId: req.SaleId,
|
||||
Mobile: encryptMobile,
|
||||
@@ -66,12 +88,12 @@ func (l *CreateLogic) Create(in *sale.CreateReq) (*sale.Response, error) {
|
||||
IdCardFront: req.IdCardFront,
|
||||
IdCardBack: req.IdCardBack,
|
||||
BusinessLicense: req.BusinessLicense,
|
||||
Region: buildRegion(req.RegionProvince, req.RegionCity, req.RegionDistrict),
|
||||
Region: buildRegion(province, city, district),
|
||||
ProvinceId: req.ProvinceId,
|
||||
CityId: req.CityId,
|
||||
DistrictId: req.DistrictId,
|
||||
TerritoryId: req.TerritoryId,
|
||||
TerritoryName: req.TerritoryName,
|
||||
TerritoryName: territoryName,
|
||||
GroupId: req.GroupId,
|
||||
Address: req.Address,
|
||||
Status: dao.SaleStatusApproved,
|
||||
|
||||
@@ -73,12 +73,33 @@ func (l *EditLogic) Edit(in *sale.EditReq) (*sale.Response, error) {
|
||||
info.IdCardFront = req.IdCardFront
|
||||
info.IdCardBack = req.IdCardBack
|
||||
info.BusinessLicense = req.BusinessLicense
|
||||
info.Region = buildRegion(req.RegionProvince, req.RegionCity, req.RegionDistrict)
|
||||
names, nErr := fetchRegionNames(l.ctx, l.svcCtx.ChoreSvcName, req.TerritoryId, req.ProvinceId, req.CityId, req.DistrictId)
|
||||
if nErr != nil {
|
||||
l.Errorf("sale regions: %v", nErr)
|
||||
return failResponse(utils.Fail), nil
|
||||
}
|
||||
territoryName := names[req.TerritoryId]
|
||||
if territoryName == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择地域"), nil
|
||||
}
|
||||
province := names[req.ProvinceId]
|
||||
if province == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择省份"), nil
|
||||
}
|
||||
city := names[req.CityId]
|
||||
if city == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择城市"), nil
|
||||
}
|
||||
district := names[req.DistrictId]
|
||||
if district == utils.StringEmpty {
|
||||
return outResponse(utils.ErrorParams, "请选择区县"), nil
|
||||
}
|
||||
info.Region = buildRegion(province, city, district)
|
||||
info.ProvinceId = req.ProvinceId
|
||||
info.CityId = req.CityId
|
||||
info.DistrictId = req.DistrictId
|
||||
info.TerritoryId = req.TerritoryId
|
||||
info.TerritoryName = req.TerritoryName
|
||||
info.TerritoryName = territoryName
|
||||
info.GroupId = req.GroupId
|
||||
info.Address = req.Address
|
||||
info.Type = uint8(req.Type)
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
|
||||
"lone-services/pkg/modelbase"
|
||||
"lone-services/pkg/rpcclient"
|
||||
"lone-services/pkg/utils"
|
||||
chore "lone-services/rpc/chore/pb"
|
||||
"lone-services/services/sale/internal/dao"
|
||||
"lone-services/services/sale/internal/model"
|
||||
"lone-services/services/sale/validator"
|
||||
@@ -26,6 +29,38 @@ func buildRegion(province, city, district string) dao.RegionNames {
|
||||
}
|
||||
}
|
||||
|
||||
func fetchRegionNames(ctx context.Context, choreSvcName string, ids ...int64) (map[int64]string, error) {
|
||||
seen := make(map[int64]struct{}, len(ids))
|
||||
reqIds := make([]int64, 0, len(ids))
|
||||
for _, id := range ids {
|
||||
if id < utils.NumberOne {
|
||||
continue
|
||||
}
|
||||
if _, ok := seen[id]; ok {
|
||||
continue
|
||||
}
|
||||
seen[id] = struct{}{}
|
||||
reqIds = append(reqIds, id)
|
||||
}
|
||||
result := make(map[int64]string, len(reqIds))
|
||||
if len(reqIds) < utils.NumberOne {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
cli, err := rpcclient.Get(choreSvcName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res, err := chore.NewChoreClient(cli.Conn()).RegionsByIds(ctx, &chore.RegionsByIdsReq{Ids: reqIds})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, item := range res.GetItems() {
|
||||
result[item.GetId()] = item.GetName()
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func querySaleNames(req validator.NamesValidator) ([]dao.SaleNameItem, error) {
|
||||
w := modelbase.Params{
|
||||
Eq: map[string]string{"status": strconv.Itoa(int(dao.SaleStatusApproved))},
|
||||
|
||||
Reference in New Issue
Block a user