123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package logic
- import (
- "app.yhyue.com/moapp/jyInfo/rpc/model/province"
- "context"
- "fmt"
- "log"
- "strings"
- "app.yhyue.com/moapp/jyInfo/rpc/common/commonclient"
- "app.yhyue.com/moapp/jyInfo/rpc/common/internal/svc"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type AreaInfoLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewAreaInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AreaInfoLogic {
- return &AreaInfoLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- // 获取省份信息
- func (l *AreaInfoLogic) AreaInfo(in *commonclient.ProjectReq) (*commonclient.AreaResp, error) {
- //获取地区信息
- data, err := l.svcCtx.AreaModel.Find()
- log.Println("data:", data, "--err:", err)
- return &commonclient.AreaResp{
- Data: AreaFormat(data),
- }, nil
- }
- //省份信息结构化
- func AreaFormat(data []model.AreaResp) (ps []*commonclient.Province) {
- var provinces = map[string][]*commonclient.City{}
- for _, v := range data {
- pk := fmt.Sprintf("%s-%s", v.Province, fmt.Sprint(v.Pid))
- provinces[pk] = append(provinces[pk], &commonclient.City{
- Name: v.City,
- Code: fmt.Sprint(v.Cid),
- })
- }
- if provinces != nil {
- for pk, pv := range provinces {
- if strings.Contains(pk, "-") {
- pkarr := strings.Split(pk, "-")
- ps = append(ps, &commonclient.Province{
- Name: pkarr[0],
- Code: pkarr[1],
- Citys: pv,
- })
- }
- }
- }
- return
- }
|