hsun 1 жил өмнө
parent
commit
d90a39ae0d

+ 125 - 67
controllers/eta_business/eta_business.go

@@ -3,6 +3,7 @@ package eta_business
 import (
 	"encoding/json"
 	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_crm_api/controllers"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/eta_business"
@@ -26,8 +27,8 @@ type EtaBusinessController struct {
 // @Param   SigningStatus	query	string	false	"签约状态: 1-首次签约; 2-续约中; 3-已终止"
 // @Param   Province		query	string	false	"省份筛选"
 // @Param   City			query	string	false	"城市筛选"
-// @Param   SortParam		query	string	false	"排序字段: SignTime-签约时间; ExpireTime-到期时间; CreateTime-创建时间; UserMax-用户上限"
-// @Param   SortType		query	string	false	"排序类型: Asc-正序; Desc-倒序"
+// @Param   SortParam		query	int	false	"排序字段: 1-签约时间; 2-到期时间; 3-创建时间; 4-用户上限"
+// @Param   SortType		query	int	false	"排序类型: 1-正序; 2-倒序"
 // @Success 200 Ret=200 获取成功
 // @router /page_list [get]
 func (this *EtaBusinessController) PageList() {
@@ -46,8 +47,21 @@ func (this *EtaBusinessController) PageList() {
 		br.Ret = 408
 		return
 	}
+
+	// 分页
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
 	// 权限校验
-	resp := make([]*eta_business.EtaBusinessItem, 0)
+	resp := new(eta_business.EtaBusinessListResp)
 	ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode)
 	if e != nil {
 		br.Msg = "操作失败"
@@ -55,6 +69,7 @@ func (this *EtaBusinessController) PageList() {
 		return
 	}
 	if !ok {
+		resp.Paging = paging.GetPaging(currentIndex, pageSize, 0)
 		br.Data = resp
 		br.Ret = 200
 		br.Success = true
@@ -64,82 +79,121 @@ func (this *EtaBusinessController) PageList() {
 
 	cond := ``
 	pars := make([]interface{}, 0)
-	order := ``
-	// 关键词
-	keyword := this.GetString("Keyword", "")
-	keyword = strings.TrimSpace(keyword)
-	if keyword != "" {
-		kw := fmt.Sprint("%", keyword, "%")
-		cond += fmt.Sprintf(` AND (%s = ? OR %s = ? OR %s = ?)`, eta_business.EtaBusinessColumns.BusinessName, eta_business.EtaBusinessColumns.BusinessCode, eta_business.EtaBusinessColumns.CreditCode)
-		pars = append(pars, kw, kw, kw)
-	}
-	// 销售
-	sellerIds := this.GetString("SellerIds", "")
-	if sellerIds != "" {
-		arr := strings.Split(sellerIds, ",")
-		ids := make([]int, 0)
-		for _, s := range arr {
-			v, e := strconv.Atoi(s)
-			if e != nil {
-				br.Msg = "销售ID有误"
+	// 筛选项
+	{
+		// 关键词
+		keyword := this.GetString("Keyword", "")
+		keyword = strings.TrimSpace(keyword)
+		if keyword != "" {
+			kw := fmt.Sprint("%", keyword, "%")
+			cond += fmt.Sprintf(` AND (%s LIKE ? OR %s LIKE ? OR %s LIKE ?)`, eta_business.EtaBusinessColumns.BusinessName, eta_business.EtaBusinessColumns.BusinessCode, eta_business.EtaBusinessColumns.CreditCode)
+			pars = append(pars, kw, kw, kw)
+		}
+
+		// 销售
+		sellerIds := this.GetString("SellerIds", "")
+		if sellerIds != "" {
+			arr := strings.Split(sellerIds, ",")
+			ids := make([]int, 0)
+			for _, s := range arr {
+				v, e := strconv.Atoi(s)
+				if e != nil {
+					br.Msg = "销售ID有误"
+					return
+				}
+				ids = append(ids, v)
+			}
+			if len(ids) == 0 {
+				resp.Paging = paging.GetPaging(currentIndex, pageSize, 0)
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
 				return
 			}
-			ids = append(ids, v)
+			cond += fmt.Sprintf(` AND %s IN (%s)`, eta_business.EtaBusinessColumns.SellerId, utils.GetOrmInReplace(len(ids)))
+			pars = append(pars, ids)
 		}
-		if len(ids) == 0 {
-			br.Data = resp
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			return
+
+		// 签约状态
+		signingStatus, _ := this.GetInt("SigningStatus", 0)
+		if signingStatus > 0 {
+			cond += fmt.Sprintf(` AND %s = ?`, eta_business.EtaBusinessColumns.SigningStatus)
+			pars = append(pars, signingStatus)
 		}
-		cond += fmt.Sprintf(` AND %s IN (%s)`, eta_business.EtaBusinessColumns.SellerId, utils.GetOrmInReplace(len(ids)))
-		pars = append(pars, ids)
-	}
-	// 签约状态
-	signingStatus, _ := this.GetInt("SigningStatus", 0)
-	if signingStatus > 0 {
-		cond += fmt.Sprintf(` AND %s = ?`, eta_business.EtaBusinessColumns.SigningStatus)
-		pars = append(pars, signingStatus)
-	}
-	// TODO:商家地址(多选)
-	province := this.GetString("Province", "")
-	province = strings.TrimSpace(province)
-	if province != "" {
 
+		// 商家地址
+		province := this.GetString("Province", "")
+		province = strings.TrimSpace(province)
+		if province != "" {
+			provinceArr := strings.Split(province, ",")
+			if len(provinceArr) == 0 {
+				resp.Paging = paging.GetPaging(currentIndex, pageSize, 0)
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
+			cond += fmt.Sprintf(` AND %s IN (%s)`, eta_business.EtaBusinessColumns.Province, utils.GetOrmInReplace(len(provinceArr)))
+			pars = append(pars, provinceArr)
+		}
+		city := this.GetString("City", "")
+		city = strings.TrimSpace(city)
+		if city != "" {
+			cityArr := strings.Split(city, ",")
+			if len(cityArr) == 0 {
+				resp.Paging = paging.GetPaging(currentIndex, pageSize, 0)
+				br.Data = resp
+				br.Ret = 200
+				br.Success = true
+				br.Msg = "获取成功"
+				return
+			}
+			cond += fmt.Sprintf(` AND %s IN (%s)`, eta_business.EtaBusinessColumns.City, utils.GetOrmInReplace(len(cityArr)))
+			pars = append(pars, cityArr)
+		}
 	}
-	//if province != "" {
-	//	var provinceSql string
-	//	slice := strings.Split(province, ",")
-	//	for _, v := range slice {
-	//		provinceSql += "'" + v + "'" + ","
-	//	}
-	//	provinceSql = strings.TrimRight(provinceSql, ",")
-	//	condition += ` AND a.province IN (` + provinceSql + `) `
-	//}
-	//
-	//if city != "" {
-	//	var citySql string
-	//	slice := strings.Split(city, ",")
-	//	for _, v := range slice {
-	//		citySql += "'" + v + "'" + ","
-	//	}
-	//	citySql = strings.TrimRight(citySql, ",")
-	//	condition += ` AND a.city IN (` + citySql + `) `
-	//}
 
-	// @Param   SortParam		query	string	false	"排序字段: SignTime-签约时间; ExpireTime-到期时间; CreateTime-创建时间; UserMax-用户上限"
-	// @Param   SortType		query	string	false	"排序类型: Asc-正序; Desc-倒序"
-	// TODO:排序
+	order := ``
+	// 排序
+	{
+		fieldArr := []int{1, 2, 3, 4}
+		typeArr := []int{1, 2}
+		fieldMap := map[int]string{
+			1: "signing_time",
+			2: "expired_time",
+			3: "create_time",
+			4: "user_max",
+		}
+		typeMap := map[int]string{
+			1: "ASC",
+			2: "DESC",
+		}
+
+		sortParam, _ := this.GetInt("SortParam", 0)
+		sortType, _ := this.GetInt("SortType", 0)
+		if utils.InArrayByInt(fieldArr, sortParam) && utils.InArrayByInt(typeArr, sortType) {
+			order = fmt.Sprintf("%s %s", fieldMap[sortParam], typeMap[sortType])
+		}
+		fmt.Println("order: ", order)
+	}
 
 	// 获取列表
 	businessOb := new(eta_business.EtaBusiness)
-	list, e := businessOb.GetItemsByCondition(cond, pars, []string{}, order)
+	total, e := businessOb.GetCountByCondition(cond, pars)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家总数失败, Err: " + e.Error()
+		return
+	}
+	list, e := businessOb.GetPageItemsByCondition(cond, pars, []string{}, order, startSize, pageSize)
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取商家列表失败, Err: " + e.Error()
 		return
 	}
+	items := make([]*eta_business.EtaBusinessItem, 0)
 	for _, v := range list {
 		b := new(eta_business.EtaBusinessItem)
 		b.EtaBusinessId = v.EtaBusinessId
@@ -162,9 +216,11 @@ func (this *EtaBusinessController) PageList() {
 		b.ExpiredTime = v.ExpiredTime.Format(utils.FormatDate)
 		b.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
 		b.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
-		resp = append(resp, b)
+		items = append(items, b)
 	}
 
+	resp.List = items
+	resp.Paging = paging.GetPaging(currentIndex, pageSize, total)
 	br.Data = resp
 	br.Ret = 200
 	br.Success = true
@@ -321,7 +377,7 @@ func (this *EtaBusinessController) Add() {
 		br.Data = true
 		br.Ret = 200
 		br.Success = true
-		br.Msg = "操作成功"
+		br.Msg = "校验通过"
 		return
 	}
 
@@ -352,6 +408,7 @@ func (this *EtaBusinessController) Add() {
 	businessItem.BusinessName = req.BusinessName
 	businessItem.BusinessCode = businessCode
 	businessItem.CreditCode = req.CreditCode
+	businessItem.RegionType = req.RegionType
 	businessItem.Province = req.Province
 	businessItem.City = req.City
 	businessItem.Address = req.Province + req.City
@@ -957,6 +1014,7 @@ func (this *EtaBusinessController) ContractList() {
 	now := time.Now().Local()
 	for _, v := range list {
 		b := new(eta_business.EtaBusinessContractItem)
+		b.EtaBusinessContractId = v.EtaBusinessContractId
 		b.EtaBusinessId = v.EtaBusinessId
 		b.SigningTime = v.SigningTime.Format(utils.FormatDate)
 		b.ExpiredTime = v.ExpiredTime.Format(utils.FormatDate)
@@ -971,7 +1029,7 @@ func (this *EtaBusinessController) ContractList() {
 		}
 		b.ExpireDay = "-"
 		if now.After(v.SigningTime) && now.Before(endTime) {
-			diff := utils.GetDiffDays(now, v.ExpiredTime)
+			diff := utils.GetDiffDays(v.ExpiredTime, now)
 			b.ExpireDay = strconv.Itoa(diff)
 			b.Using = true
 		}

+ 24 - 2
models/eta_business/eta_business.go

@@ -3,6 +3,7 @@ package eta_business
 import (
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_crm_api/utils"
 	"strings"
 	"time"
@@ -163,6 +164,21 @@ func (m *EtaBusiness) GetItemsByCondition(condition string, pars []interface{},
 	return
 }
 
+func (m *EtaBusiness) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EtaBusiness, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // CreateEtaBusinessAndContract 新增商家和签约
 func CreateEtaBusinessAndContract(businessItem *EtaBusiness, contractItem *EtaBusinessContract) (err error) {
 	if businessItem == nil || contractItem == nil {
@@ -256,15 +272,21 @@ type EtaBusinessMoveSellerReq struct {
 func CreateEtaBusinessCode() (code string, err error) {
 	var num int
 	o := orm.NewOrm()
-	sql := `SELECT COUNT(1) AS num FROM eta_business WHERE created_time >= ? `
+	sql := `SELECT COUNT(1) AS num FROM eta_business WHERE create_time >= ? `
 	err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRow(&num)
 	if err != nil {
 		return
 	}
-	code = "BZ" + time.Now().Format("20060102") + fmt.Sprintf("%03d", num)
+	code = "E" + time.Now().Format("20060102") + fmt.Sprintf("%02d", num)
 	return
 }
 
+// EtaBusinessListResp 商家分页列表响应体
+type EtaBusinessListResp struct {
+	List   []*EtaBusinessItem `description:"商家列表数据"`
+	Paging *paging.PagingItem `description:"分页数据"`
+}
+
 // EtaBusinessItem ETA商家信息
 type EtaBusinessItem struct {
 	EtaBusinessId    int

+ 1 - 1
models/eta_business/eta_business_operation_record.go

@@ -30,7 +30,7 @@ type EtaBusinessOperationRecord struct {
 }
 
 func (m *EtaBusinessOperationRecord) TableName() string {
-	return "eta_business_contract"
+	return "eta_business_operation_record"
 }
 
 func (m *EtaBusinessOperationRecord) PrimaryId() string {

+ 72 - 0
routers/commentsRouter.go

@@ -6442,6 +6442,78 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "ContractList",
+            Router: `/contract_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "Enable",
+            Router: `/enable`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "MoveSeller",
+            Router: `/move_seller`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "OperateRecordList",
+            Router: `/operate_record_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "PageList",
+            Router: `/page_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessController"],
+        beego.ControllerComments{
+            Method: "Signing",
+            Router: `/signing`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarController"],
         beego.ControllerComments{
             Method: "Accept",