Parcourir la source

Merge branch 'develop' of http://code.dashoo.cn/chengjian/opms_backend into develop

liuyaqi il y a 3 ans
Parent
commit
3cee25f07a

+ 292 - 36
opms_parent/app/dao/base/internal/base_sales_region_detail.go

@@ -27,17 +27,18 @@ type BaseSalesRegionDetailDao struct {
 
 // BaseSalesRegionDetailColumns defines and stores column names for table base_sales_region_detail.
 type baseSalesRegionDetailColumns struct {
-	Id           string // 主键
-	RegionId     string // 关联销售区域
-	ProvinceCode string // 行政区县(省级)
-	Remark       string // 备注
-	CreatedBy    string // 创建者
-	CreatedName  string // 创建人
-	CreatedTime  string // 创建时间
-	UpdatedBy    string // 更新者
-	UpdatedName  string // 更新人
-	UpdatedTime  string // 更新时间
-	DeletedTime  string // 删除时间
+	Id          string // 主键
+	RegionId    string // 关联销售区域
+	DistId      string // 行政区县ID
+	DistName    string // 行政区县名称
+	Remark      string // 备注
+	CreatedBy   string // 创建者
+	CreatedName string // 创建人
+	CreatedTime string // 创建时间
+	UpdatedBy   string // 更新者
+	UpdatedName string // 更新人
+	UpdatedTime string // 更新时间
+	DeletedTime string // 删除时间
 }
 
 var (
@@ -47,17 +48,18 @@ var (
 		DB:    g.DB("default"),
 		Table: "base_sales_region_detail",
 		Columns: baseSalesRegionDetailColumns{
-			Id:           "id",
-			RegionId:     "region_id",
-			ProvinceCode: "province_code",
-			Remark:       "remark",
-			CreatedBy:    "created_by",
-			CreatedName:  "created_name",
-			CreatedTime:  "created_time",
-			UpdatedBy:    "updated_by",
-			UpdatedName:  "updated_name",
-			UpdatedTime:  "updated_time",
-			DeletedTime:  "deleted_time",
+			Id:          "id",
+			RegionId:    "region_id",
+			DistId:      "dist_id",
+			DistName:    "dist_name",
+			Remark:      "remark",
+			CreatedBy:   "created_by",
+			CreatedName: "created_name",
+			CreatedTime: "created_time",
+			UpdatedBy:   "updated_by",
+			UpdatedName: "updated_name",
+			UpdatedTime: "updated_time",
+			DeletedTime: "deleted_time",
 		},
 	}
 )
@@ -69,17 +71,18 @@ func NewBaseSalesRegionDetailDao(tenant string) BaseSalesRegionDetailDao {
 		DB:    g.DB(tenant),
 		Table: "base_sales_region_detail",
 		Columns: baseSalesRegionDetailColumns{
-			Id:           "id",
-			RegionId:     "region_id",
-			ProvinceCode: "province_code",
-			Remark:       "remark",
-			CreatedBy:    "created_by",
-			CreatedName:  "created_name",
-			CreatedTime:  "created_time",
-			UpdatedBy:    "updated_by",
-			UpdatedName:  "updated_name",
-			UpdatedTime:  "updated_time",
-			DeletedTime:  "deleted_time",
+			Id:          "id",
+			RegionId:    "region_id",
+			DistId:      "dist_id",
+			DistName:    "dist_name",
+			Remark:      "remark",
+			CreatedBy:   "created_by",
+			CreatedName: "created_name",
+			CreatedTime: "created_time",
+			UpdatedBy:   "updated_by",
+			UpdatedName: "updated_name",
+			UpdatedTime: "updated_time",
+			DeletedTime: "deleted_time",
 		},
 	}
 	return dao
@@ -93,6 +96,12 @@ func (d *BaseSalesRegionDetailDao) Ctx(ctx context.Context) *BaseSalesRegionDeta
 	return &BaseSalesRegionDetailDao{M: d.M.Ctx(ctx)}
 }
 
+// GetCtx returns the context for current Model.
+// It returns "context.Background() i"s there's no context previously set.
+func (d *BaseSalesRegionDetailDao) GetCtx() context.Context {
+	return d.M.GetCtx()
+}
+
 // As sets an alias name for current table.
 func (d *BaseSalesRegionDetailDao) As(as string) *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.As(as)}
@@ -119,6 +128,12 @@ func (d *BaseSalesRegionDetailDao) Args(args ...interface{}) *BaseSalesRegionDet
 	return &BaseSalesRegionDetailDao{M: d.M.Args(args...)}
 }
 
+// Handler calls each of "handlers" on current Model and returns a new Model.
+// ModelHandler is a function that handles given Model and returns a new Model that is custom modified.
+func (d *BaseSalesRegionDetailDao) Handler(handlers ...gdb.ModelHandler) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Handler(handlers...)}
+}
+
 // LeftJoin does "LEFT JOIN ... ON ..." statement on the model.
 // The parameter <table> can be joined table and its joined condition,
 // and also with its alias name, like:
@@ -158,7 +173,33 @@ func (d *BaseSalesRegionDetailDao) FieldsEx(fieldNamesOrMapStruct ...interface{}
 	return &BaseSalesRegionDetailDao{M: d.M.FieldsEx(fieldNamesOrMapStruct...)}
 }
 
-// Option sets the extra operation option for the model.
+// FieldCount formats and appends commonly used field "COUNT(column)" to the select fields of model.
+func (d *BaseSalesRegionDetailDao) FieldCount(column string, as ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.FieldCount(column, as...)}
+}
+
+// FieldSum formats and appends commonly used field "SUM(column)" to the select fields of model.
+func (d *BaseSalesRegionDetailDao) FieldSum(column string, as ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.FieldSum(column, as...)}
+}
+
+// FieldMin formats and appends commonly used field "MIN(column)" to the select fields of model.
+func (d *BaseSalesRegionDetailDao) FieldMin(column string, as ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.FieldMin(column, as...)}
+}
+
+// FieldMax formats and appends commonly used field "MAX(column)" to the select fields of model.
+func (d *BaseSalesRegionDetailDao) FieldMax(column string, as ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.FieldMax(column, as...)}
+}
+
+// FieldAvg formats and appends commonly used field "AVG(column)" to the select fields of model.
+func (d *BaseSalesRegionDetailDao) FieldAvg(column string, as ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.FieldAvg(column, as...)}
+}
+
+// Option adds extra operation option for the model.
+// Deprecated, use separate operations instead.
 func (d *BaseSalesRegionDetailDao) Option(option int) *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.Option(option)}
 }
@@ -169,7 +210,39 @@ func (d *BaseSalesRegionDetailDao) OmitEmpty() *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.OmitEmpty()}
 }
 
+// OmitEmptyWhere sets optionOmitEmptyWhere option for the model, which automatically filers
+// the Where/Having parameters for "empty" values.
+func (d *BaseSalesRegionDetailDao) OmitEmptyWhere() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OmitEmptyWhere()}
+}
+
+// OmitEmptyData sets optionOmitEmptyData option for the model, which automatically filers
+// the Data parameters for "empty" values.
+func (d *BaseSalesRegionDetailDao) OmitEmptyData() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OmitEmptyData()}
+}
+
+// OmitNil sets optionOmitNil option for the model, which automatically filers
+// the data and where parameters for "nil" values.
+func (d *BaseSalesRegionDetailDao) OmitNil() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OmitNil()}
+}
+
+// OmitNilWhere sets optionOmitNilWhere option for the model, which automatically filers
+// the Where/Having parameters for "nil" values.
+func (d *BaseSalesRegionDetailDao) OmitNilWhere() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OmitNilWhere()}
+}
+
+// OmitNilData sets optionOmitNilData option for the model, which automatically filers
+// the Data parameters for "nil" values.
+func (d *BaseSalesRegionDetailDao) OmitNilData() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OmitNilData()}
+}
+
 // Filter marks filtering the fields which does not exist in the fields of the operated table.
+// Note that this function supports only single table operations.
+// Deprecated, filter feature is automatically enabled from GoFrame v1.16.0, it is so no longer used.
 func (d *BaseSalesRegionDetailDao) Filter() *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.Filter()}
 }
@@ -198,18 +271,174 @@ func (d *BaseSalesRegionDetailDao) WherePri(where interface{}, args ...interface
 	return &BaseSalesRegionDetailDao{M: d.M.WherePri(where, args...)}
 }
 
+// Having sets the having statement for the model.
+// The parameters of this function usage are as the same as function Where.
+// See Where.
+func (d *BaseSalesRegionDetailDao) Having(having interface{}, args ...interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Having(having, args...)}
+}
+
+// Wheref builds condition string using fmt.Sprintf and arguments.
+// Note that if the number of "args" is more than the place holder in "format",
+// the extra "args" will be used as the where condition arguments of the Model.
+func (d *BaseSalesRegionDetailDao) Wheref(format string, args ...interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Wheref(format, args...)}
+}
+
+// WhereLT builds "column < value" statement.
+func (d *BaseSalesRegionDetailDao) WhereLT(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereLT(column, value)}
+}
+
+// WhereLTE builds "column <= value" statement.
+func (d *BaseSalesRegionDetailDao) WhereLTE(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereLTE(column, value)}
+}
+
+// WhereGT builds "column > value" statement.
+func (d *BaseSalesRegionDetailDao) WhereGT(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereGT(column, value)}
+}
+
+// WhereGTE builds "column >= value" statement.
+func (d *BaseSalesRegionDetailDao) WhereGTE(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereGTE(column, value)}
+}
+
+// WhereBetween builds "column BETWEEN min AND max" statement.
+func (d *BaseSalesRegionDetailDao) WhereBetween(column string, min, max interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereBetween(column, min, max)}
+}
+
+// WhereLike builds "column LIKE like" statement.
+func (d *BaseSalesRegionDetailDao) WhereLike(column string, like interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereLike(column, like)}
+}
+
+// WhereIn builds "column IN (in)" statement.
+func (d *BaseSalesRegionDetailDao) WhereIn(column string, in interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereIn(column, in)}
+}
+
+// WhereNull builds "columns[0] IS NULL AND columns[1] IS NULL ..." statement.
+func (d *BaseSalesRegionDetailDao) WhereNull(columns ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNull(columns...)}
+}
+
+// WhereNotBetween builds "column NOT BETWEEN min AND max" statement.
+func (d *BaseSalesRegionDetailDao) WhereNotBetween(column string, min, max interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNotBetween(column, min, max)}
+}
+
+// WhereNotLike builds "column NOT LIKE like" statement.
+func (d *BaseSalesRegionDetailDao) WhereNotLike(column string, like interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNotLike(column, like)}
+}
+
+// WhereNot builds "column != value" statement.
+func (d *BaseSalesRegionDetailDao) WhereNot(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNot(column, value)}
+}
+
+// WhereNotIn builds "column NOT IN (in)" statement.
+func (d *BaseSalesRegionDetailDao) WhereNotIn(column string, in interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNotIn(column, in)}
+}
+
+// WhereNotNull builds "columns[0] IS NOT NULL AND columns[1] IS NOT NULL ..." statement.
+func (d *BaseSalesRegionDetailDao) WhereNotNull(columns ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereNotNull(columns...)}
+}
+
+// WhereOr adds "OR" condition to the where statement.
+func (d *BaseSalesRegionDetailDao) WhereOr(where interface{}, args ...interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOr(where, args...)}
+}
+
+// WhereOrf builds "OR" condition string using fmt.Sprintf and arguments.
+func (d *BaseSalesRegionDetailDao) WhereOrf(format string, args ...interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrf(format, args...)}
+}
+
+// WhereOrLT builds "column < value" statement in "OR" conditions..
+func (d *BaseSalesRegionDetailDao) WhereOrLT(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrLT(column, value)}
+}
+
+// WhereOrLTE builds "column <= value" statement in "OR" conditions..
+func (d *BaseSalesRegionDetailDao) WhereOrLTE(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrLTE(column, value)}
+}
+
+// WhereOrGT builds "column > value" statement in "OR" conditions..
+func (d *BaseSalesRegionDetailDao) WhereOrGT(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrGT(column, value)}
+}
+
+// WhereOrGTE builds "column >= value" statement in "OR" conditions..
+func (d *BaseSalesRegionDetailDao) WhereOrGTE(column string, value interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrGTE(column, value)}
+}
+
+// WhereOrBetween builds "column BETWEEN min AND max" statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrBetween(column string, min, max interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrBetween(column, min, max)}
+}
+
+// WhereOrLike builds "column LIKE like" statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrLike(column string, like interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrLike(column, like)}
+}
+
+// WhereOrIn builds "column IN (in)" statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrIn(column string, in interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrIn(column, in)}
+}
+
+// WhereOrNull builds "columns[0] IS NULL OR columns[1] IS NULL ..." statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrNull(columns ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrNull(columns...)}
+}
+
+// WhereOrNotBetween builds "column NOT BETWEEN min AND max" statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrNotBetween(column string, min, max interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrNotBetween(column, min, max)}
+}
+
+// WhereOrNotLike builds "column NOT LIKE like" statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrNotLike(column string, like interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrNotLike(column, like)}
+}
+
+// WhereOrNotIn builds "column NOT IN (in)" statement.
+func (d *BaseSalesRegionDetailDao) WhereOrNotIn(column string, in interface{}) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrNotIn(column, in)}
+}
+
+// WhereOrNotNull builds "columns[0] IS NOT NULL OR columns[1] IS NOT NULL ..." statement in "OR" conditions.
+func (d *BaseSalesRegionDetailDao) WhereOrNotNull(columns ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.WhereOrNotNull(columns...)}
+}
+
+// Group sets the "GROUP BY" statement for the model.
+func (d *BaseSalesRegionDetailDao) Group(groupBy ...string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Group(groupBy...)}
+}
+
 // And adds "AND" condition to the where statement.
+// Deprecated, use Where instead.
 func (d *BaseSalesRegionDetailDao) And(where interface{}, args ...interface{}) *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.And(where, args...)}
 }
 
 // Or adds "OR" condition to the where statement.
+// Deprecated, use WhereOr instead.
 func (d *BaseSalesRegionDetailDao) Or(where interface{}, args ...interface{}) *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.Or(where, args...)}
 }
 
-// Group sets the "GROUP BY" statement for the model.
-func (d *BaseSalesRegionDetailDao) Group(groupBy string) *BaseSalesRegionDetailDao {
+// GroupBy sets the "GROUP BY" statement for the model.
+func (d *BaseSalesRegionDetailDao) GroupBy(groupBy string) *BaseSalesRegionDetailDao {
 	return &BaseSalesRegionDetailDao{M: d.M.Group(groupBy)}
 }
 
@@ -218,6 +447,28 @@ func (d *BaseSalesRegionDetailDao) Order(orderBy ...string) *BaseSalesRegionDeta
 	return &BaseSalesRegionDetailDao{M: d.M.Order(orderBy...)}
 }
 
+// OrderAsc sets the "ORDER BY xxx ASC" statement for the model.
+func (d *BaseSalesRegionDetailDao) OrderAsc(column string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OrderAsc(column)}
+}
+
+// OrderDesc sets the "ORDER BY xxx DESC" statement for the model.
+func (d *BaseSalesRegionDetailDao) OrderDesc(column string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OrderDesc(column)}
+}
+
+// OrderRandom sets the "ORDER BY RANDOM()" statement for the model.
+func (d *BaseSalesRegionDetailDao) OrderRandom() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.OrderRandom()}
+}
+
+// OrderBy is alias of Model.Order.
+// See Model.Order.
+// Deprecated, use Order instead.
+func (d *BaseSalesRegionDetailDao) OrderBy(orderBy string) *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Order(orderBy)}
+}
+
 // Limit sets the "LIMIT" statement for the model.
 // The parameter <limit> can be either one or two number, if passed two number is passed,
 // it then sets "LIMIT limit[0],limit[1]" statement for the model, or else it sets "LIMIT limit[0]"
@@ -232,6 +483,11 @@ func (d *BaseSalesRegionDetailDao) Offset(offset int) *BaseSalesRegionDetailDao
 	return &BaseSalesRegionDetailDao{M: d.M.Offset(offset)}
 }
 
+// Distinct forces the query to only return distinct results.
+func (d *BaseSalesRegionDetailDao) Distinct() *BaseSalesRegionDetailDao {
+	return &BaseSalesRegionDetailDao{M: d.M.Distinct()}
+}
+
 // Page sets the paging number for the model.
 // The parameter <page> is started from 1 for paging.
 // Note that, it differs that the Limit function start from 0 for "LIMIT" statement.

+ 1 - 16
opms_parent/app/handler/base/district.go

@@ -11,7 +11,7 @@ import (
 
 type DistrictHandler struct{}
 
-//GetList 所属区域列表
+// GetList 所属区域列表
 func (d *DistrictHandler) GetList(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
 	districtServer, err := server.NewDistrictService(ctx)
 	if err != nil {
@@ -25,21 +25,6 @@ func (d *DistrictHandler) GetList(ctx context.Context, req *comm_def.IdReq, rsp
 	return nil
 }
 
-//GetRegionList 区域下所有的省份
-func (s *DistrictHandler) GetRegionList(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
-	districtServer, err := server.NewDistrictService(ctx)
-	if err != nil {
-		return err
-	}
-	list, err := districtServer.GetRegionsProvinceList()
-	if err != nil {
-		return err
-	}
-
-	rsp.Data = g.Map{"list": list}
-	return nil
-}
-
 // GetProvinceList 返回所有省份的
 func (d *DistrictHandler) GetProvinceList(ctx context.Context, null, rsp *comm_def.CommonMsg) error {
 	districtServer, err := server.NewDistrictService(ctx)

+ 42 - 36
opms_parent/app/handler/base/region.go

@@ -2,27 +2,38 @@ package base
 
 import (
 	"context"
-
-	"dashoo.cn/common_definition/comm_def"
-	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/util/gvalid"
 
+	"dashoo.cn/common_definition/comm_def"
 	model "dashoo.cn/micro/app/model/base"
 	server "dashoo.cn/micro/app/service/base"
+	"github.com/gogf/gf/frame/g"
 )
 
 type RegionHandler struct{}
 
-//区域列表
-func (r *RegionHandler) GetList(ctx context.Context, req *model.SecBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
-	regionServer, err := server.NewSalesRegionDetailService(ctx)
+// GetRegionList 获取销售大
+func (p *RegionHandler) GetRegionList(ctx context.Context, null, rsp *comm_def.CommonMsg) error {
+	regionServer, err := server.NewSalesRegionService(ctx)
 	if err != nil {
-
 		return err
 	}
-	total, list, err := regionServer.GetList(req)
+	list, err := regionServer.GetRegionList()
 	if err != nil {
+		return err
+	}
+	rsp.Data = g.Map{"list": list}
+	return nil
+}
 
+// GetRegionDetailList 获取详细销售地区
+func (r *RegionHandler) GetRegionDetailList(ctx context.Context, req *model.SecBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
+	detailServer, err := server.NewSalesRegionDetailService(ctx)
+	if err != nil {
+		return err
+	}
+	total, list, err := detailServer.GetList(req)
+	if err != nil {
 		return err
 	}
 
@@ -30,74 +41,69 @@ func (r *RegionHandler) GetList(ctx context.Context, req *model.SecBaseRegionDet
 	return nil
 }
 
-//创建区域
-func (r *RegionHandler) Create(ctx context.Context, req *model.AddBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
-
-	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
-	}
-	productServer, err := server.NewSalesRegionDetailService(ctx)
+// GetRegionTree 获取大区及下属地区
+func (p *RegionHandler) GetRegionTree(ctx context.Context, null, rsp *comm_def.CommonMsg) error {
+	regionServer, err := server.NewSalesRegionService(ctx)
 	if err != nil {
 		return err
 	}
-	err = productServer.Create(req)
+	list, err := regionServer.GetRegionTree()
 	if err != nil {
 		return err
 	}
+	rsp.Data = g.Map{"list": list}
 	return nil
 }
 
-//获取区域
-func (p *RegionHandler) GetRegion(ctx context.Context, null, rsp *comm_def.CommonMsg) error {
+// CreateRegion 创建销售区域
+func (p *RegionHandler) CreateRegion(ctx context.Context, req *model.AddRegionReq, rsp *comm_def.CommonMsg) error {
 	regionServer, err := server.NewSalesRegionService(ctx)
 	if err != nil {
-
 		return err
 	}
-	list, err := regionServer.GetListRegion()
+	err = regionServer.Create(req)
 	if err != nil {
-
 		return err
 	}
-
-	rsp.Data = g.Map{"list": list}
 	return nil
 }
 
-//修改
-func (p *RegionHandler) UpdateById(ctx context.Context, req *model.UpdateBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
-	regionServer, err := server.NewSalesRegionDetailService(ctx)
+// CreateRegionDetail 创建详细销售地区
+func (r *RegionHandler) CreateRegionDetail(ctx context.Context, req *model.AddBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
+	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
+		return err
+	}
+	detailService, err := server.NewSalesRegionDetailService(ctx)
 	if err != nil {
 		return err
 	}
-	err = regionServer.UpdateById(req)
+	err = detailService.Create(req)
 	if err != nil {
 		return err
 	}
 	return nil
 }
 
-//创建销售区域
-func (p *RegionHandler) CreateRegion(ctx context.Context, req *model.AddRegionReq, rsp *comm_def.CommonMsg) error {
-	regionServer, err := server.NewSalesRegionService(ctx)
+// UpdateRegionDetail 修改详细销售地区
+func (p *RegionHandler) UpdateRegionDetail(ctx context.Context, req *model.UpdateBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
+	detailService, err := server.NewSalesRegionDetailService(ctx)
 	if err != nil {
 		return err
 	}
-	err = regionServer.Create(req)
-
+	err = detailService.UpdateById(req)
 	if err != nil {
 		return err
 	}
 	return nil
 }
 
-//删除区域省份
-func (p *RegionHandler) DeleteByIds(ctx context.Context, req *model.DeleteBaseRegionDetailReq, rsp *comm_def.CommonMsg) error {
-	regionDetailServer, err := server.NewSalesRegionDetailService(ctx)
+// DeleteRegionDetail 删除详细销售地
+func (p *RegionHandler) DeleteRegionDetail(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
+	detailService, err := server.NewSalesRegionDetailService(ctx)
 	if err != nil {
 		return err
 	}
-	err = regionDetailServer.DeleteByIds(req.Ids)
+	err = detailService.DeleteByIds(req.Ids)
 	if err != nil {
 		return err
 	}

+ 3 - 3
opms_parent/app/handler/dingtalk/ding_event.go

@@ -94,12 +94,12 @@ func (h *DingHandler) handleBpmsInstanceChange(msg *message.MixMessage, ctx *din
 		}
 		return "success"
 	case model.ProjectCreate:
-		if msg.ProcessType == "finish" {
+		if msg.ProcessType == "finish" || msg.ProcessType == "terminate" {
 			//srv.Handle(instance, msg)
 		}
 		return "success"
 	case model.ContractCreate:
-		if msg.ProcessType == "finish" {
+		if msg.ProcessType == "finish" || msg.ProcessType == "terminate" {
 			//srv.Handle(instance, msg)
 		}
 		return "success"
@@ -118,7 +118,7 @@ func (h *DingHandler) handleBpmsInstanceChange(msg *message.MixMessage, ctx *din
 	////按照类型处理数据(不需要钉钉审批实例参数)
 	//switch instance.BizType {
 	//case model.CustomerReceive:
-	//	if msg.ProcessType == "finish" {
+	//	if msg.ProcessType == "finish" || msg.ProcessType == "terminate" {
 	//		//srv.Handle(instance, msg, resp)
 	//	}
 

+ 1 - 13
opms_parent/app/model/base/base_district.go

@@ -20,7 +20,7 @@ type BaseDistrictSearchReq struct {
 	request.PageReq
 }
 
-//Provinces  省市区三级结构
+// Provinces  省市区三级结构
 type ProvincesTree struct {
 	Id       int              `json:"id"`
 	ParentId int              `json:"parentId"`
@@ -32,15 +32,3 @@ type Province struct {
 	ParentId int    `json:"parentId"`
 	DistName string `json:"distName" `
 }
-
-type Region struct {
-	Id         int         `json:"id"`
-	RegionDesc string      `json:"regionDesc" `
-	Children   []*District `json:"children" `
-}
-
-type District struct {
-	RegionDesc string `json:"regionDesc" `
-	RegionId   int    `json:"RegionId" `
-	Id         int    `json:"id" `
-}

+ 12 - 6
opms_parent/app/model/base/base_sales_region.go

@@ -19,16 +19,22 @@ type RegionSeq struct {
 	request.PageReq
 }
 
-//创建值
+// 创建值
 type AddRegionReq struct {
 	RegionDesc string `p:"regionDesc"    json:"regionDesc"   v:"required#创建描述不能为空"`
 	UserName   string `p:"userName"    json:"userName"      v:"required#区域负责人不能为空"`
 	Remark     string
 }
 
-//只返回区域
-type RegionRep struct {
-	Id         int    `p:"id" json:"id" `
-	RegionDesc string `p:"regionDesc" json:"regionDesc" `
-	RegionCode string `p:"regionCode" json:"regionCode" `
+type Region struct {
+	Id         int         `p:"id" json:"id" `
+	RegionCode string      `p:"regionCode" json:"regionCode" `
+	RegionDesc string      `p:"regionDesc" json:"regionDesc" `
+	Children   []*District `json:"children,omitempty" `
+}
+
+type District struct {
+	RegionId   int    `json:"regionId" `
+	RegionCode string `json:"regionCode" `
+	RegionDesc string `json:"regionDesc" `
 }

+ 17 - 28
opms_parent/app/model/base/base_sales_region_detail.go

@@ -5,17 +5,17 @@
 package base
 
 import (
+	"dashoo.cn/micro/app/model/base/internal"
 	"dashoo.cn/opms_libary/request"
 	"github.com/gogf/gf/os/gtime"
-
-	"dashoo.cn/micro/app/model/base/internal"
 )
 
 // BaseSalesRegionDetail is the golang structure for table base_sales_region_detail.
 type BaseSalesRegionDetail internal.BaseSalesRegionDetail
 
 // Fill with you ideas below.
-//条件搜索
+
+// 条件搜索
 type SecBaseRegionDetailReq struct {
 	RegionId     int    `p:"regionId"    json:"regionId"`
 	CustCode     string `p:"custCode"    json:"custCode"`
@@ -24,23 +24,24 @@ type SecBaseRegionDetailReq struct {
 	request.PageReq
 }
 
-//创建区域
+// 创建区域
 type AddBaseRegionDetailReq struct {
-	RegionId     int `p:"regionId"        json:"regionId"   v:"required#关联销售区域"`
-	ProvinceCode int `p:"provinceCode"    json:"provinceCode"   v:"required#区域编码不能为空"`
-	Remark       string
+	RegionId int    `p:"regionId"        json:"regionId"   v:"required#关联销售区域"`
+	DistId   int    `json:"distId"  v:"required#区域编码不能为空"`   // 行政区县ID
+	DistName string `json:"distName"  v:"required#区域名称不能为空"` // 行政区县名称
+	Remark   string
 }
 
-//列表字段
+// 列表字段
 type BaseRegionDetailRep struct {
-	Id           int        `p:"id"         json:"id"   `
-	RegionId     int        `p:"regionId"         json:"regionId"   `
-	ProvinceCode int        `p:"provinceCode"    json:"provinceCode" `
-	CreatedName  string     `p:"createdName"    json:"createdName" `
-	Count        int        `p:"count"    json:"count" `
-	DistName     string     `p:"distName"    json:"distName" `
-	CreatedTime  gtime.Time `p:"createdTime"    json:"createdTime" `
-	Remark       string     `p:"remark"    json:"remark" `
+	Id          int        `p:"id"         json:"id"   `
+	RegionId    int        `p:"regionId"         json:"regionId"   `
+	DistId      int        `p:"distId"    json:"distId" `
+	DistName    string     `p:"distName"    json:"distName" `
+	Count       int        `p:"count"    json:"count" `
+	Remark      string     `p:"remark"    json:"remark" `
+	CreatedName string     `p:"createdName"    json:"createdName" `
+	CreatedTime gtime.Time `p:"createdTime"    json:"createdTime" `
 }
 
 //更新
@@ -49,15 +50,3 @@ type UpdateBaseRegionDetailReq struct {
 	*BaseSalesRegionDetail
 	Id int `p:"id"  json:"id" v:"required# id不能为空"`
 }
-
-type BaseRegionCustomer struct {
-	CustDistCode string `p:"custDistCode"  json:"custDistCode"   `
-	Count        int    `p:"count"         json:"count"   `
-}
-type DeleteBaseRegionDetailReq struct {
-	Ids []int64 `json:"ids" v:"required# id不能为空"`
-}
-type BaseRegionCountNum struct {
-	//cust_dist_code
-	Count int `p:"count"         json:"count"   `
-}

+ 12 - 11
opms_parent/app/model/base/internal/base_sales_region_detail.go

@@ -10,15 +10,16 @@ import (
 
 // BaseSalesRegionDetail is the golang structure for table base_sales_region_detail.
 type BaseSalesRegionDetail struct {
-	Id           int         `orm:"id,primary"    json:"id"`           // 主键
-	RegionId     int         `orm:"region_id"     json:"regionId"`     // 关联销售区域
-	ProvinceCode int         `orm:"province_code" json:"provinceCode"` // 行政区县(省级)
-	Remark       string      `orm:"remark"        json:"remark"`       // 备注
-	CreatedBy    int         `orm:"created_by"    json:"createdBy"`    // 创建者
-	CreatedName  string      `orm:"created_name"  json:"createdName"`  // 创建人
-	CreatedTime  *gtime.Time `orm:"created_time"  json:"createdTime"`  // 创建时间
-	UpdatedBy    int         `orm:"updated_by"    json:"updatedBy"`    // 更新者
-	UpdatedName  string      `orm:"updated_name"  json:"updatedName"`  // 更新人
-	UpdatedTime  *gtime.Time `orm:"updated_time"  json:"updatedTime"`  // 更新时间
-	DeletedTime  *gtime.Time `orm:"deleted_time"  json:"deletedTime"`  // 删除时间
+	Id          int         `orm:"id,primary"   json:"id"`          // 主键
+	RegionId    int         `orm:"region_id"    json:"regionId"`    // 关联销售区域
+	DistId      int         `orm:"dist_id"      json:"distId"`      // 行政区县ID
+	DistName    string      `orm:"dist_name"    json:"distName"`    // 行政区县名称
+	Remark      string      `orm:"remark"       json:"remark"`      // 备注
+	CreatedBy   int         `orm:"created_by"   json:"createdBy"`   // 创建者
+	CreatedName string      `orm:"created_name" json:"createdName"` // 创建人
+	CreatedTime *gtime.Time `orm:"created_time" json:"createdTime"` // 创建时间
+	UpdatedBy   int         `orm:"updated_by"   json:"updatedBy"`   // 更新者
+	UpdatedName string      `orm:"updated_name" json:"updatedName"` // 更新人
+	UpdatedTime *gtime.Time `orm:"updated_time" json:"updatedTime"` // 更新时间
+	DeletedTime *gtime.Time `orm:"deleted_time" json:"deletedTime"` // 删除时间
 }

+ 2 - 36
opms_parent/app/service/base/base_district.go

@@ -3,12 +3,10 @@ package base
 import (
 	"context"
 
-	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/util/gconv"
-
 	"dashoo.cn/micro/app/dao/base"
 	model "dashoo.cn/micro/app/model/base"
 	"dashoo.cn/micro/app/service"
+	"github.com/gogf/gf/frame/g"
 )
 
 type districtService struct {
@@ -29,7 +27,7 @@ func NewDistrictService(ctx context.Context) (svc *districtService, err error) {
 	return svc, nil
 }
 
-//GetProvincesList 所属区域列表
+// GetProvincesList 所属区域列表
 func (s *districtService) GetProvincesList(Id int64) (treeList []*model.ProvincesTree, err error) {
 	ms := make(map[int]*model.ProvincesTree)
 	var distributorList []model.BaseDistrict
@@ -84,35 +82,3 @@ func (s *districtService) GetProvinceList() (list []*model.Province, err error)
 
 	return
 }
-
-//GetRegionsProvinceList 区域下所有的省份
-func (s *districtService) GetRegionsProvinceList() (region []*model.Region, err error) {
-
-	err = s.RegionDao.Fields(s.RegionDao.Columns.RegionDesc, s.RegionDao.Columns.Id).Scan(&region)
-	if err != nil {
-		g.Log().Error(err)
-		return
-	}
-	var districtList []int
-	for _, v := range region {
-		districtList = append(districtList, v.Id)
-	}
-	list, err := s.Dao.M.As("dis").RightJoin("base_sales_region_detail deftail", "dis.id = deftail.province_code").
-		Fields("dis.dist_name,dis.id,deftail.region_id").Where("deftail.region_id in (?)", districtList).All()
-	if err != nil {
-		g.Log().Error(err)
-		return
-	}
-	ms := make(map[int][]*model.District)
-	for _, v := range list.List() {
-		ms[gconv.Int(v["region_id"])] = append(ms[gconv.Int(v["region_id"])], &model.District{
-			Id:         gconv.Int(v["id"]),
-			RegionDesc: gconv.String(v["dist_name"]),
-			RegionId:   gconv.Int(v["region_id"]),
-		})
-	}
-	for _, v := range region {
-		v.Children = ms[v.Id]
-	}
-	return
-}

+ 27 - 3
opms_parent/app/service/base/base_sales_region.go

@@ -30,7 +30,7 @@ func NewSalesRegionService(ctx context.Context) (svc *salesRegionService, err er
 	return svc, nil
 }
 
-//Create 创建区域
+// Create 创建区域
 func (s *salesRegionService) Create(req *model.AddRegionReq) (err error) {
 
 	regionData := new(model.BaseSalesRegion)
@@ -48,8 +48,8 @@ func (s *salesRegionService) Create(req *model.AddRegionReq) (err error) {
 	return nil
 }
 
-//GetListRegion 获取区域
-func (s *salesRegionService) GetListRegion() (RegionList []*model.RegionRep, err error) {
+// 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)
@@ -57,3 +57,27 @@ func (s *salesRegionService) GetListRegion() (RegionList []*model.RegionRep, err
 	}
 	return
 }
+
+// GetRegionTree 获取大区及下属地区
+func (s *salesRegionService) GetRegionTree() (regionList []*model.Region, err error) {
+	err = s.Dao.Order("id asc").Scan(&regionList)
+	if err != nil {
+		return
+	}
+	detailDao := base.NewBaseSalesRegionDetailDao(s.Tenant)
+	regionDetailsList := ([]*model.District)(nil)
+	err = detailDao.Fields("region_id, dist_id as regionCode, dist_name as regionDesc").
+		OrderAsc(detailDao.Columns.RegionId).Scan(&regionDetailsList)
+	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
+}

+ 11 - 61
opms_parent/app/service/base/base_sales_region_detail.go

@@ -2,8 +2,6 @@ package base
 
 import (
 	"context"
-	"fmt"
-
 	"dashoo.cn/opms_libary/myerrors"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/util/gconv"
@@ -32,71 +30,52 @@ func NewSalesRegionDetailService(ctx context.Context) (svc *salesRegionDetailSer
 	return svc, nil
 }
 
-//GetList 销售区域列表
+// GetList 销售区域列表
 func (s *salesRegionDetailService) GetList(req *model.SecBaseRegionDetailReq) (total int, RegionList []*model.BaseRegionDetailRep, err error) {
-
-	Model := s.Dao.M
-	Model = Model.Where(s.Dao.Columns.RegionId, req.RegionId)
+	Model := s.Dao.Where(s.Dao.Columns.RegionId, req.RegionId)
 	total, err = Model.Count()
 	if err != nil {
-		g.Log().Error(err)
 		err = myerrors.DbError("获取总行数失败。")
 		return
 	}
-	if req.PageNum == 0 {
-		req.PageNum = 1
-	}
-	err = Model.Page(req.PageNum, req.PageSize).Order("id asc").Scan(&RegionList)
+	err = Model.Page(req.GetPage()).Order("id asc").Scan(&RegionList)
 	if err != nil {
-		g.Log().Error(err)
 		return
 	}
 	var districtList []int
 	for _, v := range RegionList {
-		districtList = append(districtList, v.ProvinceCode)
+		districtList = append(districtList, v.DistId)
 	}
 	//CustModel := p.CustomerDao.M
 	CustModel := s.CustomerDao.M.Fields("count(*) as count,cust_dist_code").Where("cust_dist_code in (?)", districtList)
 	if req.CustName != "" {
-
 		CustModel = CustModel.Where(s.CustomerDao.Columns.CustName+" like ?", "%"+req.CustName+"%")
 	}
 	if req.CustCode != "" {
-
 		CustModel = CustModel.Where(s.CustomerDao.Columns.CustCode+" like ?", "%"+req.CustCode+"%")
 	}
 	if req.CustIndustry != "" {
 		CustModel = CustModel.Where(s.CustomerDao.Columns.CustIndustry+" like ?", "%"+req.CustIndustry+"%")
 	}
 
-	dist, _ := s.District.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.DistCode) {
-				v.DistName = gconv.String(v2.DistName)
-			}
-		}
 		for _, v3 := range custDist {
-			if v.ProvinceCode == gconv.Int(v3["cust_dist_code"]) {
+			if v.DistId == gconv.Int(v3["cust_dist_code"]) {
 				v.Count = gconv.Int(v3["count"])
 			}
 		}
 	}
-
 	return
 }
 
-//创建区域
+// 创建区域
 func (s *salesRegionDetailService) Create(req *model.AddBaseRegionDetailReq) (err error) {
 	detailData := new(model.BaseSalesRegionDetail)
 	if err = gconv.Struct(req, detailData); err != nil {
 		return
 	}
-	detailData.RegionId = req.RegionId
-	detailData.ProvinceCode = req.ProvinceCode
 	service.SetCreatedInfo(detailData, s.GetCxtUserId(), s.GetCxtUserName())
 	_, err = s.Dao.Insert(detailData)
 	if err != nil {
@@ -107,7 +86,7 @@ func (s *salesRegionDetailService) Create(req *model.AddBaseRegionDetailReq) (er
 
 }
 
-//UpdateById   修改
+// UpdateById   修改
 func (s *salesRegionDetailService) UpdateById(req *model.UpdateBaseRegionDetailReq) (err error) {
 	count, err := s.Dao.FindCount(req.Id)
 	if err != nil {
@@ -115,18 +94,16 @@ func (s *salesRegionDetailService) UpdateById(req *model.UpdateBaseRegionDetailR
 		return
 	}
 	if count == 0 {
-		err = myerrors.TipsError("无修改数据")
+		err = myerrors.TipsError("数据不存在")
 		return
 	}
 
 	productData := new(model.BaseSalesRegionDetail)
 	if err = gconv.Struct(req, productData); err != nil {
-		g.Log().Error(err)
 		return
 	}
 	service.SetUpdatedInfo(productData, s.GetCxtUserId(), s.GetCxtUserName())
-	_, err = s.Dao.FieldsEx(base.BaseSalesRegionDetail.Columns.CreatedTime, base.BaseSalesRegionDetail.Columns.CreatedBy, base.BaseSalesRegionDetail.Columns.CreatedName).
-		WherePri(base.BaseSalesRegionDetail.Columns.Id, req.Id).Update(productData)
+	_, err = s.Dao.FieldsEx(service.UpdateFieldEx...).WherePri(base.BaseSalesRegionDetail.Columns.Id, req.Id).Update(productData)
 
 	if err != nil {
 		g.Log().Error(err)
@@ -135,35 +112,8 @@ func (s *salesRegionDetailService) UpdateById(req *model.UpdateBaseRegionDetailR
 	return
 }
 
-//DeleteByIds 删除
+// DeleteByIds 删除
 func (s *salesRegionDetailService) DeleteByIds(ids []int64) (err error) {
-	if len(ids) == 1 {
-		count, err := s.Dao.WherePri(ids[0]).Count()
-		if err != nil {
-			g.Log().Error(err)
-			return err
-		}
-		if count == 0 {
-			return myerrors.TipsError("数据不存在或已被删除,请刷新页面")
-		}
-	} else {
-		_, err := s.Dao.WhereIn(s.Dao.Columns.Id, ids).LockShared().Count()
-		if err != nil {
-			g.Log().Error(err)
-			return err
-		}
-		result, err := s.Dao.WhereIn(s.Dao.Columns.Id, ids).Delete()
-		if err != nil {
-			g.Log().Error(err)
-			return err
-		}
-		rows, err := result.RowsAffected()
-		if err == nil {
-			if len(ids) != int(rows) {
-				return myerrors.TipsError(fmt.Sprintf("应更新%s行,实际更新%s行", len(ids), int(rows)))
-			}
-		}
-	}
+	_, err = s.Dao.WhereIn(s.Dao.Columns.Id, ids).Delete()
 	return
-
 }