| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package base
- import (
- "context"
- "strconv"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/gtime"
- "github.com/gogf/gf/util/gconv"
- "dashoo.cn/micro/app/dao/base"
- model "dashoo.cn/micro/app/model/base"
- "dashoo.cn/micro/app/service"
- )
- type salesRegionService struct {
- *service.ContextService
- Dao *base.BaseSalesRegionDao
- Detail *base.BaseSalesRegionDetailDao
- }
- func NewSalesRegionService(ctx context.Context) (svc *salesRegionService, err error) {
- svc = new(salesRegionService)
- if svc.ContextService, err = svc.Init(ctx); err != nil {
- return nil, err
- }
- svc.Dao = base.NewBaseSalesRegionDao(svc.Tenant)
- svc.Detail = base.NewBaseSalesRegionDetailDao(svc.Tenant)
- return svc, nil
- }
- // Create 创建区域
- func (s *salesRegionService) Create(req *model.AddRegionReq) (err error) {
- regionData := new(model.BaseSalesRegion)
- if err = gconv.Struct(req, regionData); err != nil {
- return
- }
- service.SetCreatedInfo(regionData, s.GetCxtUserId(), s.GetCxtUserName())
- regionData.RegionCode = strconv.Itoa(int(gtime.Timestamp()))
- _, err = s.Dao.Insert(regionData)
- if err != nil {
- g.Log().Error(err)
- return
- }
- return nil
- }
- // GetRegionList 获取区域
- func (s *salesRegionService) GetRegionList() (RegionList []*model.Region, err error) {
- err = s.Dao.Order("id asc").Scan(&RegionList)
- if err != nil {
- g.Log().Error(err)
- return
- }
- return
- }
- // GetRegionTree 获取大区及下属地区
- func (s *salesRegionService) GetRegionTree() (regionList []*model.Region, err error) {
- err = s.Dao.Order("id asc").Scan(®ionList)
- if err != nil {
- return
- }
- detailDao := base.NewBaseSalesRegionDetailDao(s.Tenant)
- regionDetailsList := ([]*model.District)(nil)
- err = detailDao.Fields("region_id, cust_province_id as regionCode, cust_province as regionDesc").Group("cust_province_id").
- OrderAsc(detailDao.Columns.RegionId).Scan(®ionDetailsList)
- if err != nil {
- return
- }
- for _, item := range regionList {
- item.Children = make([]*model.District, 0)
- for _, v := range regionDetailsList {
- if item.Id == v.RegionId {
- item.Children = append(item.Children, v)
- }
- }
- }
- return
- }
|