| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- package base
- import (
- "context"
- "github.com/gogf/gf/errors/gerror"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/gtime"
- "github.com/gogf/gf/util/gconv"
- "dashoo.cn/micro/app/dao/base"
- "dashoo.cn/micro/app/dao/cust"
- model "dashoo.cn/micro/app/model/base"
- "dashoo.cn/micro/app/service"
- )
- var EgionDetailFieldEx = []interface{}{
- "id", "created_by",
- "created_name",
- "created_time",
- "province_code",
- "remark",
- "updated_by",
- "updated_name",
- "updated_time",
- }
- type salesRegionDetailService struct {
- *service.ContextService
- Dao *base.BaseSalesRegionDetailDao
- District *base.BaseDistrictDao
- CustomerDao *cust.CustCustomerDao
- }
- func NewSalesRegionDetailService(ctx context.Context) (svc *salesRegionDetailService, err error) {
- svc = new(salesRegionDetailService)
- if svc.ContextService, err = svc.Init(ctx); err != nil {
- return nil, err
- }
- svc.Dao = base.NewBaseSalesRegionDetailDao(svc.Tenant)
- svc.District = base.NewBaseDistrictDao(svc.Tenant)
- svc.CustomerDao = cust.NewCustCustomerDao(svc.Tenant)
- return svc, nil
- }
- func (p *salesRegionDetailService) GetList(req *model.SecBaseRegionDetailReq) (total int, RegionList []*model.BaseRegionDetailRep, err error) {
- Model := p.Dao.M
- Model = Model.Where(p.Dao.Columns.RegionId, req.RegionId).Where(p.Dao.Columns.DeletedTime + " is null")
- total, err = Model.Count()
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("获取总行数失败")
- return
- }
- if req.PageNum == 0 {
- req.PageNum = 1
- }
- err = Model.Page(req.PageNum, req.PageSize).Order("id asc").Scan(&RegionList)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("获取数据失败")
- return
- }
- var districtList []int
- for _, v := range RegionList {
- districtList = append(districtList, v.ProvinceCode)
- }
- CustModel := p.CustomerDao.M
- CustModel = CustModel.Fields("count(*) as count,cust_dist_code").Where("cust_dist_code in (?)", districtList)
- if req.CustName != "" {
- g.Log().Info("custName", req.CustName)
- CustModel = CustModel.Where(p.CustomerDao.Columns.CustName+" like ?", "%"+req.CustName+"%")
- }
- if req.CustCode != "" {
- g.Log().Info("客户编码搜索", req)
- CustModel = CustModel.Where(p.CustomerDao.Columns.CustCode+" like ?", "%"+req.CustCode+"%")
- }
- if req.CustIndustry != "" {
- CustModel = CustModel.Where(p.CustomerDao.Columns.CustIndustry+" like ?", "%"+req.CustIndustry+"%")
- }
- total, err = Model.Fields().Count()
- dist, _ := p.District.M.Fields("dist_name,dist_code").Where("dist_code in (?)", districtList).All()
- custDist, _ := CustModel.Group("cust_dist_code").All()
- for _, v := range RegionList {
- for _, v2 := range dist {
- if v.ProvinceCode == gconv.Int(v2["dist_code"]) {
- v.DistName = gconv.String(v2["dist_name"])
- }
- }
- for _, v3 := range custDist {
- if v.ProvinceCode == gconv.Int(v3["cust_dist_code"]) {
- v.Count = gconv.Int(v3["count"])
- }
- }
- }
- g.Log().Info("List", RegionList)
- return
- }
- //创建区域
- func (p *salesRegionDetailService) Create(req *model.AddBaseRegionDetailReq) (err error) {
- Model := p.Dao.M
- detailData := new(model.BaseSalesRegionDetail)
- if err = gconv.Struct(req, detailData); err != nil {
- return
- }
- service.SetCreatedInfo(detailData, p.GetCxtUserId(), p.GetCxtUserName())
- detailData.RegionId = req.RegionId
- detailData.ProvinceCode = req.ProvinceCode
- service.SetCreatedInfo(detailData, p.GetCxtUserId(), p.GetCxtUserName())
- _, err = Model.Insert(detailData)
- if err != nil {
- return err
- }
- return nil
- }
- //更新
- func (p *salesRegionDetailService) UpdateById(req *model.UpdateBaseRegionDetailReq) (err error) {
- //uptime := gtime.New(time.Now())
- db := p.Dao.M
- record, err := db.FindOne("Id", req.Id)
- if err != nil || record.IsEmpty() {
- err = gerror.New("该数据不存在")
- return err
- }
- productData := new(model.BaseSalesRegionDetail)
- if err = gconv.Struct(req, productData); err != nil {
- return
- }
- service.SetUpdatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName())
- _, err = db.FieldsEx(base.BaseSalesRegionDetail.Columns.CreatedTime, base.BaseSalesRegionDetail.Columns.CreatedBy, base.BaseSalesRegionDetail.Columns.CreatedName).
- WherePri(base.BaseSalesRegionDetail.Columns.Id, req.Id).Update(productData)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("修改信息失败")
- return
- }
- return
- }
- //删除
- func (p *salesRegionDetailService) DeleteById(req int) (err error) {
- Model := p.Dao.M
- regionDetail := new(model.BaseSalesRegionDetail)
- err = Model.Where(p.Dao.Columns.Id, req).Scan(®ionDetail)
- //g.Log().Info("DeleteByIds", one)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("没有要删除的数据")
- return
- }
- regionDetail.DeletedTime = gtime.Now()
- _, err = Model.FieldsEx(EgionDetailFieldEx).
- WherePri(p.Dao.Columns.Id, req).Update(regionDetail)
- if err != nil {
- g.Log().Error(err)
- err = gerror.New("删除数据失败")
- return err
- }
- return
- }
- //省份客户
- //func (p *salesRegionDetailService) GetCustomerList(distributor []string) (list []*model.BaseRegionCustomer, err error) {
- // Model := p.CustomerDao.M
- // Model.Where("cust_location", "%%")
- //
- // //if req.CustName != "" {
- // // Model = Model.Where("cust_name ", req.CustName)
- // //}
- // ////客户编码
- // //if req.CustCode != "" {
- // // Model = Model.Where("cust_name ", req.CustCode)
- // //}
- // //err = Model.Fields("count(*) counts").Page(req.PageNum, req.PageSize).Order("id desc").Scan($list)
- // return
- //}
|