Xingyu Xian 3 долоо хоног өмнө
parent
commit
3d7e4c5506

+ 1 - 1
db/sub_account.go

@@ -60,7 +60,7 @@ func FindSubAccountById(ctx context.Context, subAccountId int) (*gorm_model.Youn
 	db := GetReadDB(ctx)
 	db := GetReadDB(ctx)
 	var total int64
 	var total int64
 	var subAccount *gorm_model.YounggeeSubAccount
 	var subAccount *gorm_model.YounggeeSubAccount
-	whereCondition := gorm_model.YounggeeSubAccount{SubAccountId: subAccountId, SubAccountType: 1}
+	whereCondition := gorm_model.YounggeeSubAccount{SubAccountId: subAccountId, SubAccountType: 3}
 	err := db.Model(gorm_model.YounggeeSubAccount{}).Where(whereCondition).Find(&subAccount).Count(&total).Error
 	err := db.Model(gorm_model.YounggeeSubAccount{}).Where(whereCondition).Find(&subAccount).Count(&total).Error
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err

+ 58 - 0
handler/get_account_info.go

@@ -0,0 +1,58 @@
+package handler
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+	"youngee_b_api/consts"
+	"youngee_b_api/model/http_model"
+	"youngee_b_api/service"
+	"youngee_b_api/util"
+)
+
+func WrapGetAccountInfoHandler(ctx *gin.Context) {
+	handler := newGetAccountInfoHandler(ctx)
+	baseRun(handler)
+}
+
+func newGetAccountInfoHandler(ctx *gin.Context) *GetAccountInfoHandler {
+	return &GetAccountInfoHandler{
+		req:  http_model.NewGetAccountInfoRequest(),
+		resp: http_model.NewGetAccountInfoResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetAccountInfoHandler struct {
+	req  *http_model.GetAccountInfoRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetAccountInfoHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetAccountInfoHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetAccountInfoHandler) getResponse() interface{} {
+	return h.resp
+}
+func (h *GetAccountInfoHandler) run() {
+	data, err := service.Supplier.GetSupplierAccountInfo(h.ctx, h.req)
+	if err != nil {
+		logrus.Errorf("[GetSupplierAccountInfo] call SetSession err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
+		log.Info("GetSupplierAccountInfo fail,req:%+v", h.req)
+		h.resp.Message = err.Error()
+		h.resp.Status = 40000
+		return
+	}
+	h.resp.Data = data
+	h.resp.Status = 20000
+	h.resp.Message = "ok"
+}
+
+func (h *GetAccountInfoHandler) checkParam() error {
+	return nil
+}

+ 14 - 14
handler/update_contact.go → handler/get_contact.go

@@ -10,36 +10,36 @@ import (
 	"youngee_b_api/util"
 	"youngee_b_api/util"
 )
 )
 
 
-func WrapUpdateContactHandler(ctx *gin.Context) {
-	handler := newUpdateContactHandler(ctx)
+func WrapGetContactInfoHandler(ctx *gin.Context) {
+	handler := newGetContactInfoHandler(ctx)
 	baseRun(handler)
 	baseRun(handler)
 }
 }
 
 
-func newUpdateContactHandler(ctx *gin.Context) *UpdateContactHandler {
-	return &UpdateContactHandler{
-		req:  http_model.NewFindAllJobRequest(),
-		resp: http_model.NewFindAllJobResponse(),
+func newGetContactInfoHandler(ctx *gin.Context) *GetContactInfoHandler {
+	return &GetContactInfoHandler{
+		req:  http_model.NewGetContactInfoRequest(),
+		resp: http_model.NewGetContactInfoResponse(),
 		ctx:  ctx,
 		ctx:  ctx,
 	}
 	}
 }
 }
 
 
-type UpdateContactHandler struct {
-	req  *http_model.FindAllJobRequest
+type GetContactInfoHandler struct {
+	req  *http_model.GetContactInfoRequest
 	resp *http_model.CommonResponse
 	resp *http_model.CommonResponse
 	ctx  *gin.Context
 	ctx  *gin.Context
 }
 }
 
 
-func (h *UpdateContactHandler) getRequest() interface{} {
+func (h *GetContactInfoHandler) getRequest() interface{} {
 	return h.req
 	return h.req
 }
 }
-func (h *UpdateContactHandler) getContext() *gin.Context {
+func (h *GetContactInfoHandler) getContext() *gin.Context {
 	return h.ctx
 	return h.ctx
 }
 }
-func (h *UpdateContactHandler) getResponse() interface{} {
+func (h *GetContactInfoHandler) getResponse() interface{} {
 	return h.resp
 	return h.resp
 }
 }
-func (h *UpdateContactHandler) run() {
-	data, err := service.Job.FindJobBySupplierId(h.ctx, *h.req)
+func (h *GetContactInfoHandler) run() {
+	data, err := service.Supplier.GetSupplierContactInfo(h.ctx, h.req)
 	if err != nil {
 	if err != nil {
 		logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
 		logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
 		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
 		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
@@ -53,6 +53,6 @@ func (h *UpdateContactHandler) run() {
 	h.resp.Message = "ok"
 	h.resp.Message = "ok"
 }
 }
 
 
-func (h *UpdateContactHandler) checkParam() error {
+func (h *GetContactInfoHandler) checkParam() error {
 	return nil
 	return nil
 }
 }

+ 58 - 0
handler/get_review_info.go

@@ -0,0 +1,58 @@
+package handler
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+	"youngee_b_api/consts"
+	"youngee_b_api/model/http_model"
+	"youngee_b_api/service"
+	"youngee_b_api/util"
+)
+
+func WrapGetReviewInfoHandler(ctx *gin.Context) {
+	handler := newGetReviewInfoHandler(ctx)
+	baseRun(handler)
+}
+
+func newGetReviewInfoHandler(ctx *gin.Context) *GetReviewInfoHandler {
+	return &GetReviewInfoHandler{
+		req:  http_model.NewGetReviewInfoRequest(),
+		resp: http_model.NewGetReviewInfoResponse(),
+		ctx:  ctx,
+	}
+}
+
+type GetReviewInfoHandler struct {
+	req  *http_model.GetReviewInfoRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *GetReviewInfoHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *GetReviewInfoHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *GetReviewInfoHandler) getResponse() interface{} {
+	return h.resp
+}
+func (h *GetReviewInfoHandler) run() {
+	data, err := service.Supplier.GetSupplierReviewInfo(h.ctx, h.req)
+	if err != nil {
+		logrus.Errorf("[GetSupplierReviewInfo] call SetSession err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
+		log.Info("GetSupplierReviewInfo fail,req:%+v", h.req)
+		h.resp.Message = err.Error()
+		h.resp.Status = 40000
+		return
+	}
+	h.resp.Data = data
+	h.resp.Status = 20000
+	h.resp.Message = "ok"
+}
+
+func (h *GetReviewInfoHandler) checkParam() error {
+	return nil
+}

+ 4 - 0
model/gorm_model/sub_account.go

@@ -10,6 +10,10 @@ type YounggeeSubAccount struct {
 	UserId         int    `gorm:"column:user_id"`                                   // 用户表中ID
 	UserId         int    `gorm:"column:user_id"`                                   // 用户表中ID
 	SubAccountType int    `gorm:"column:sub_account_type"`                          // 子账号类型,1为商家端子账号,2为管理后台子账号
 	SubAccountType int    `gorm:"column:sub_account_type"`                          // 子账号类型,1为商家端子账号,2为管理后台子账号
 	SupplierId     int    `gorm:"column:supplier_id"`                               // 所属服务商ID
 	SupplierId     int    `gorm:"column:supplier_id"`                               // 所属服务商ID
+	Avatar         string `gorm:"column:avatar"`                                    // 头像
+	ContactPhone   string `gorm:"column:contact_phone"`                             // 联系电话
+	WechatNumber   string `gorm:"column:wechat_number"`                             // 微信号
+	WechatQRCode   string `gorm:"column:wechat_qr_code"`                            // 微信二维码url
 }
 }
 
 
 func (m *YounggeeSubAccount) TableName() string {
 func (m *YounggeeSubAccount) TableName() string {

+ 4 - 0
model/gorm_model/supplier.go

@@ -15,6 +15,10 @@ type YoungeeSupplier struct {
 	Name            string `gorm:"column:name"`                                   // 姓名
 	Name            string `gorm:"column:name"`                                   // 姓名
 	UserId          int64  `gorm:"column:user_id"`                                // 用户表中的用户ID
 	UserId          int64  `gorm:"column:user_id"`                                // 用户表中的用户ID
 	SupplierType    int    `gorm:"column:supplier_type"`                          // 服务商用户类型,1为个人PR,2为机构
 	SupplierType    int    `gorm:"column:supplier_type"`                          // 服务商用户类型,1为个人PR,2为机构
+	Avatar          string `gorm:"column:avatar"`                                 // 头像
+	ReviewStatus    int    `gorm:"column:review_status"`                          // 认证状态,1未认证,2已认证
+	WechatNumber    string `gorm:"column:wechat_number"`                          // 微信号
+	WechatQrCode    string `gorm:"column:wechat_qr_code"`                         // 微信二维码url
 }
 }
 
 
 func (m *YoungeeSupplier) TableName() string {
 func (m *YoungeeSupplier) TableName() string {

+ 2 - 1
model/http_model/company_review.go

@@ -3,10 +3,11 @@ package http_model
 type CompanyReviewRequest struct {
 type CompanyReviewRequest struct {
 	BusinessLicenseUrl string `json:"business_license_url"`
 	BusinessLicenseUrl string `json:"business_license_url"`
 	SupplierId         int    `json:"supplier_id"`
 	SupplierId         int    `json:"supplier_id"`
-	SubAccountId       int    `json:"sub_account_id"`
 }
 }
 
 
 type CompanyReviewData struct {
 type CompanyReviewData struct {
+	USCI        string `json:"usci"`         // 统一社会信用代码
+	CompanyName string `json:"company_name"` // 公司名称
 }
 }
 
 
 func NewCompanyReviewRequest() *CompanyReviewRequest {
 func NewCompanyReviewRequest() *CompanyReviewRequest {

+ 25 - 0
model/http_model/get_account_info.go

@@ -0,0 +1,25 @@
+package http_model
+
+type GetAccountInfoRequest struct {
+	SupplierId   int `json:"supplier_id"`    // 服务商ID
+	SubAccountId int `json:"sub_account_id"` // 子账号ID
+}
+
+type GetAccountInfoData struct {
+	Type           int    `json:"type"`             // 账号类型,1主账号,2子账号
+	Phone          string `json:"phone"`            // 绑定手机号
+	SupplierName   string `json:"supplier_name"`    // 服务商名称
+	Avatar         string `json:"avatar"`           // 头像url
+	SubAccountName string `json:"sub_account_name"` // 子账号名称
+	JobName        string `json:"job_name"`         // 子账号岗位名称
+}
+
+func NewGetAccountInfoRequest() *GetAccountInfoRequest {
+	return new(GetAccountInfoRequest)
+}
+
+func NewGetAccountInfoResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetAccountInfoData)
+	return resp
+}

+ 22 - 0
model/http_model/get_contact_info.go

@@ -0,0 +1,22 @@
+package http_model
+
+type GetContactInfoRequest struct {
+	SupplierId   int `json:"supplier_id"`    // 服务商ID
+	SubAccountId int `json:"sub_account_id"` // 子账号ID
+}
+
+type GetContactInfoData struct {
+	ContactPhone string `json:"contact_phone"`  // 联系电话
+	WechatNumber string `json:"wechat_number"`  // 微信号
+	WechatQRCode string `json:"wechat_qr_code"` // 微信二维码
+}
+
+func NewGetContactInfoRequest() *GetContactInfoRequest {
+	return new(GetContactInfoRequest)
+}
+
+func NewGetContactInfoResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetContactInfoData)
+	return resp
+}

+ 27 - 0
model/http_model/get_review_info.go

@@ -0,0 +1,27 @@
+package http_model
+
+type GetReviewInfoRequest struct {
+	SupplierId int `json:"supplier_id"` // 服务商ID
+}
+
+type GetReviewInfoData struct {
+	SupplierType    int    `json:"supplier_type"`    // 服务商用户类型,1为个人PR,2为机构
+	ReviewStatus    int    `json:"review_status"`    // 认证状态,1未认证,2已认证
+	USCI            string `json:"usci"`             // 统一社会信用代码
+	CompanyName     string `json:"company_name"`     // 公司名称
+	BusinessLicense string `json:"business_license"` // 营业执照url
+	Name            string `json:"name"`             // 个人服务商姓名
+	IdNumber        string `json:"id_number"`        // 个人服务商身份证号
+	IdFront         string `json:"id_front"`         // 身份证正面url
+	IdBack          string `json:"id_back"`          // 身份证反面url
+}
+
+func NewGetReviewInfoRequest() *GetReviewInfoRequest {
+	return new(GetReviewInfoRequest)
+}
+
+func NewGetReviewInfoResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(GetReviewInfoData)
+	return resp
+}

+ 2 - 0
model/http_model/id_card_review.go

@@ -8,6 +8,8 @@ type IdCardReviewRequest struct {
 }
 }
 
 
 type IdCardReviewData struct {
 type IdCardReviewData struct {
+	Name     string `json:"name"`      // 姓名
+	IdNumber string `json:"id_number"` // 身份证号
 }
 }
 
 
 func NewIdCardReviewRequest() *IdCardReviewRequest {
 func NewIdCardReviewRequest() *IdCardReviewRequest {

+ 3 - 1
route/init.go

@@ -25,7 +25,9 @@ func InitRoute(r *gin.Engine) {
 		a.POST("/sendCode", handler.WrapSendCodeHandler)                   // 发送登录验证码
 		a.POST("/sendCode", handler.WrapSendCodeHandler)                   // 发送登录验证码
 		a.POST("/login", handler.WrapCodeLoginHandler)                     // 服务商登录
 		a.POST("/login", handler.WrapCodeLoginHandler)                     // 服务商登录
 		a.POST("/getUserInfo", handler.WrapGetUserInfoHandler)             // 服务商用户信息
 		a.POST("/getUserInfo", handler.WrapGetUserInfoHandler)             // 服务商用户信息
-		a.POST("/updateContact", handler.WrapUpdateContactHandler)         // 更新联系方式
+		a.POST("/getAccountInfo", handler.WrapGetAccountInfoHandler)       // 账号管理-账号信息查询
+		a.POST("/getReviewInfo", handler.WrapGetReviewInfoHandler)         // 账号管理-认证信息查询
+		a.POST("/getContactInfo", handler.WrapGetContactInfoHandler)       // 账号管理-联系方式查询
 		a.POST("/company/review", handler.WrapCompanyReviewHandler)        // 营业执照审核
 		a.POST("/company/review", handler.WrapCompanyReviewHandler)        // 营业执照审核
 		a.POST("/idCard/review", handler.WrapIdCardReviewHandler)          // 身份证认证
 		a.POST("/idCard/review", handler.WrapIdCardReviewHandler)          // 身份证认证
 		a.GET("/test/ping", func(c *gin.Context) {
 		a.GET("/test/ping", func(c *gin.Context) {

+ 3 - 0
service/company_review.go

@@ -11,6 +11,7 @@ func (c *Config) CheckBusinessLicense(param *http_model.CompanyReviewRequest) er
 	request.Body = &model.BusinessLicenseRequestBody{
 	request.Body = &model.BusinessLicenseRequestBody{
 		Url: &param.BusinessLicenseUrl,
 		Url: &param.BusinessLicenseUrl,
 	}
 	}
+	// 1. ocr识别
 	response, err := c.OcrClient.RecognizeBusinessLicense(request)
 	response, err := c.OcrClient.RecognizeBusinessLicense(request)
 	if err != nil {
 	if err != nil {
 		//if err.StatusCode == 400 {
 		//if err.StatusCode == 400 {
@@ -19,6 +20,8 @@ func (c *Config) CheckBusinessLicense(param *http_model.CompanyReviewRequest) er
 		return err
 		return err
 	}
 	}
 	result := response.Result
 	result := response.Result
+
+	// 2. 识别结果入库并修改认证状态
 	fmt.Println(result)
 	fmt.Println(result)
 
 
 	return nil
 	return nil

+ 2 - 0
service/s_user_info.go

@@ -24,6 +24,7 @@ func (*sUserInfo) FindBUserInfoByToken(ctx context.Context, token string) (*http
 				Role:       auth.Role,
 				Role:       auth.Role,
 			}
 			}
 			if auth.Role == "6" {
 			if auth.Role == "6" {
+				// 服务商主账号
 				fmt.Println("SupplierUser")
 				fmt.Println("SupplierUser")
 				userInfo.JobName = "主账号无岗位名称"
 				userInfo.JobName = "主账号无岗位名称"
 				userInfo.CommercialCenter = "1"
 				userInfo.CommercialCenter = "1"
@@ -31,6 +32,7 @@ func (*sUserInfo) FindBUserInfoByToken(ctx context.Context, token string) (*http
 				userInfo.CooperatePermission = "1"
 				userInfo.CooperatePermission = "1"
 				userInfo.FinancialPermission = "1"
 				userInfo.FinancialPermission = "1"
 			} else if auth.Role == "7" {
 			} else if auth.Role == "7" {
+				// 服务商子账号
 				subaccountInfo, subaccountErr := db.FindSubAccountByPhone(ctx, auth.Phone)
 				subaccountInfo, subaccountErr := db.FindSubAccountByPhone(ctx, auth.Phone)
 				if subaccountErr != nil {
 				if subaccountErr != nil {
 					return nil, subaccountErr
 					return nil, subaccountErr

+ 111 - 0
service/supplier.go

@@ -55,6 +55,117 @@ func (*supplier) CreateSupplier(ctx context.Context, phone string) (*http_model.
 	}
 	}
 }
 }
 
 
+// GetSupplierAccountInfo 查询服务商账号信息
+func (*supplier) GetSupplierAccountInfo(ctx context.Context, req *http_model.GetAccountInfoRequest) (*http_model.GetAccountInfoData, error) {
+
+	var supplierUserInfo *http_model.GetAccountInfoData
+	supplierUserInfo = &http_model.GetAccountInfoData{}
+
+	if req.SubAccountId == 0 {
+		// 1. 服务商主账号
+		supplierInfo, supplierInfoErr := db.GetSupplierById(ctx, req.SupplierId)
+		if supplierInfoErr != nil {
+			log.Infof("[GetSupplierAccountInfo] fail,err:%+v", supplierInfoErr)
+			return nil, supplierInfoErr
+		}
+		if supplierInfo != nil {
+			supplierUserInfo.SupplierName = supplierInfo.SupplierName
+			supplierUserInfo.Type = 1
+			supplierUserInfo.Avatar = supplierInfo.Avatar
+			supplierUserInfo.Phone = supplierInfo.PhoneNumber
+		}
+	} else {
+		// 2. 服务商子账号
+		subAccountInfo, subAccountInfoErr := db.FindSubAccountById(ctx, req.SubAccountId)
+		if subAccountInfoErr != nil {
+			log.Infof("[GetSupplierAccountInfo] fail,err:%+v", subAccountInfoErr)
+			return nil, subAccountInfoErr
+		}
+		if subAccountInfo != nil {
+			supplierUserInfo.SubAccountName = subAccountInfo.SubAccountName
+			supplierUserInfo.Type = 2
+			supplierUserInfo.Avatar = subAccountInfo.Avatar
+			supplierUserInfo.Phone = subAccountInfo.PhoneNumber
+			jobInfo, jobInfoErr := db.FindJobByJobId(ctx, subAccountInfo.JobId)
+			if jobInfoErr != nil {
+				log.Infof("[GetSupplierAccountInfo] fail,err:%+v", jobInfoErr)
+				return nil, subAccountInfoErr
+			}
+			if jobInfo != nil {
+				supplierUserInfo.JobName = jobInfo.JobName
+			}
+		}
+
+	}
+	return supplierUserInfo, nil
+}
+
+// GetSupplierReviewInfo 查询服务商认证信息
+func (*supplier) GetSupplierReviewInfo(ctx context.Context, req *http_model.GetReviewInfoRequest) (*http_model.GetReviewInfoData, error) {
+
+	var supplierUserInfo *http_model.GetReviewInfoData
+	supplierUserInfo = &http_model.GetReviewInfoData{}
+	// 1. 服务商信息
+	supplierInfo, supplierInfoErr := db.GetSupplierById(ctx, req.SupplierId)
+	if supplierInfoErr != nil {
+		log.Infof("[GetSupplierReviewInfo] fail,err:%+v", supplierInfoErr)
+		return nil, supplierInfoErr
+	}
+	if supplierInfo != nil {
+		if supplierInfo.ReviewStatus == 1 {
+			supplierUserInfo.ReviewStatus = 1
+		} else if supplierInfo.SupplierType == 1 {
+			supplierUserInfo.ReviewStatus = 2
+			supplierUserInfo.SupplierType = 1
+			supplierUserInfo.IdBack = supplierInfo.IdBack
+			supplierUserInfo.IdFront = supplierInfo.IdFront
+			supplierUserInfo.IdNumber = supplierInfo.IdNumber
+			supplierUserInfo.Name = supplierInfo.Name
+		} else if supplierInfo.SupplierType == 2 {
+			supplierUserInfo.ReviewStatus = 2
+			supplierUserInfo.SupplierType = 2
+			supplierUserInfo.CompanyName = supplierInfo.CompanyName
+			supplierUserInfo.USCI = supplierInfo.Usci
+			supplierUserInfo.BusinessLicense = supplierInfo.BusinessLicense
+		}
+	}
+	return supplierUserInfo, nil
+}
+
+// GetSupplierContactInfo 查询服务商联系方式
+func (*supplier) GetSupplierContactInfo(ctx context.Context, req *http_model.GetContactInfoRequest) (*http_model.GetContactInfoData, error) {
+
+	var contactInfo *http_model.GetContactInfoData
+	contactInfo = &http_model.GetContactInfoData{}
+	// 1. 服务商主账号
+	if req.SubAccountId == 0 {
+		supplierInfo, supplierInfoErr := db.GetSupplierById(ctx, req.SupplierId)
+		if supplierInfoErr != nil {
+			log.Infof("[GetSupplierContactInfo] fail,err:%+v", supplierInfoErr)
+			return nil, supplierInfoErr
+		}
+		if supplierInfo != nil {
+			contactInfo.ContactPhone = supplierInfo.ContactPhone
+			contactInfo.WechatQRCode = supplierInfo.WechatQrCode
+			contactInfo.WechatNumber = supplierInfo.WechatNumber
+		}
+	} else {
+		// 2. 服务商子账号
+		subAccountInfo, subAccountInfoErr := db.FindSubAccountById(ctx, req.SubAccountId)
+		if subAccountInfoErr != nil {
+			log.Infof("[GetSupplierContactInfo] fail,err:%+v", subAccountInfoErr)
+			return nil, subAccountInfoErr
+		}
+		if subAccountInfo != nil {
+			contactInfo.ContactPhone = subAccountInfo.ContactPhone
+			contactInfo.WechatQRCode = subAccountInfo.WechatQRCode
+			contactInfo.WechatNumber = subAccountInfo.WechatNumber
+		}
+	}
+
+	return contactInfo, nil
+}
+
 // GetSupplierIncomeList 查询服务商收入列表
 // GetSupplierIncomeList 查询服务商收入列表
 func (*supplier) GetSupplierIncomeList(ctx context.Context, req *http_model.FullSProjectIncomeListRequest) (*http_model.FullSProjectIncomeData, error) {
 func (*supplier) GetSupplierIncomeList(ctx context.Context, req *http_model.FullSProjectIncomeListRequest) (*http_model.FullSProjectIncomeData, error) {
 	var sProjectIncomeData *http_model.FullSProjectIncomeData
 	var sProjectIncomeData *http_model.FullSProjectIncomeData