|
@@ -0,0 +1,191 @@
|
|
|
+package service
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "strconv"
|
|
|
+ "time"
|
|
|
+ "youngee_b_api/app/dao"
|
|
|
+ "youngee_b_api/app/entity"
|
|
|
+ "youngee_b_api/app/vo"
|
|
|
+)
|
|
|
+
|
|
|
+type CooperationService struct{}
|
|
|
+
|
|
|
+// 服务商搜索
|
|
|
+func (s CooperationService) SearchSupplier(param *vo.SupplierSearchParam) ([]*vo.ReSupplierPreview, error) {
|
|
|
+ var reSupplierPreviews []*vo.ReSupplierPreview
|
|
|
+ suppliers, err := dao.SupplierDao{}.GetSuppliersByMsg(param.FieldName)
|
|
|
+ if err != nil {
|
|
|
+ return reSupplierPreviews, err
|
|
|
+ }
|
|
|
+ for _, supplier := range suppliers {
|
|
|
+ // 判断该服务商是否已在商家库
|
|
|
+ exist, _ := dao.EnterpriseSupplierCooperateDao{}.EnterpriseDatabaseCheck(param.EnterpriseId, supplier.SupplierID)
|
|
|
+ reSupplierPreview := &vo.ReSupplierPreview{
|
|
|
+ SupplierId: supplier.SupplierID,
|
|
|
+ HeadUrl: "",
|
|
|
+ SupplierName: supplier.SupplierName,
|
|
|
+ SupplierType: supplier.SupplierType,
|
|
|
+ CompanyName: supplier.CompanyName,
|
|
|
+ Name: supplier.Name,
|
|
|
+ Existence: exist,
|
|
|
+ }
|
|
|
+ reSupplierPreviews = append(reSupplierPreviews, reSupplierPreview)
|
|
|
+ }
|
|
|
+ return reSupplierPreviews, nil
|
|
|
+}
|
|
|
+
|
|
|
+// 服务商入库批量邀请
|
|
|
+func (s CooperationService) InviteSupplier(param *vo.SupplierInviteParam) error {
|
|
|
+ // 要求传入的服务商都是未在该商家库的
|
|
|
+ var records []*entity.EnterpriseSupplierCooperate
|
|
|
+ for _, supplierId := range param.SupplierIds {
|
|
|
+ record := &entity.EnterpriseSupplierCooperate{
|
|
|
+ EnterpriseId: param.EnterpriseId,
|
|
|
+ SupplierId: supplierId,
|
|
|
+ CooperateNum: 1,
|
|
|
+ CooperateStatus: 1,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ if param.SubAccountId == 0 {
|
|
|
+ record.BOperator = param.EnterpriseId
|
|
|
+ record.BOperatorType = 1
|
|
|
+ } else {
|
|
|
+ record.BOperator = strconv.Itoa(int(param.SubAccountId))
|
|
|
+ record.BOperatorType = 2
|
|
|
+ }
|
|
|
+ records = append(records, record)
|
|
|
+ }
|
|
|
+ err := dao.EnterpriseSupplierCooperateDao{}.InsertBatch(records)
|
|
|
+
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+// 在库服务商列表
|
|
|
+func (s CooperationService) GetEnterprisePoolList(param *vo.SupplierSearchInPoolParam) (vo.ResultVO, error) {
|
|
|
+ if param.Page <= 0 {
|
|
|
+ param.Page = 1
|
|
|
+ }
|
|
|
+ if param.PageSize <= 0 {
|
|
|
+ param.PageSize = 10
|
|
|
+ }
|
|
|
+ var result vo.ResultVO
|
|
|
+ var reSupplierPoolInfos []*vo.ReSupplierPoolInfo
|
|
|
+ var enterpriseOperator string
|
|
|
+ enterpriseSupplierCooperates, total, _ := dao.EnterpriseSupplierCooperateDao{}.GetSuppliersByEnterprise(param.EnterpriseId, param.Page, param.PageSize)
|
|
|
+ for _, enterpriseSupplierCooperate := range enterpriseSupplierCooperates {
|
|
|
+ // 获取商家操作人姓名
|
|
|
+ bOperator := enterpriseSupplierCooperate.BOperator
|
|
|
+ if enterpriseSupplierCooperate.BOperatorType == 1 {
|
|
|
+ enterprise, err := dao.EnterpriseDao{}.GetEnterprise(bOperator)
|
|
|
+ if err == nil && enterprise != nil {
|
|
|
+ enterpriseOperator = enterprise.BusinessName
|
|
|
+ }
|
|
|
+ } else if enterpriseSupplierCooperate.BOperatorType == 2 {
|
|
|
+ subAccountId, err := strconv.ParseInt(bOperator, 10, 64)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetEnterprisePoolList==subAccountId 转换出错:", err)
|
|
|
+ } else {
|
|
|
+ subAccount, err := dao.SubAccountDao{}.GetSubAccount(subAccountId)
|
|
|
+ if err == nil && subAccount != nil {
|
|
|
+ enterpriseOperator = subAccount.SubAccountName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ supplier, err := dao.SupplierDao{}.GetSupplierInfoById(enterpriseSupplierCooperate.SupplierId)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ supplierPreview := &vo.ReSupplierPreview{
|
|
|
+ SupplierId: supplier.SupplierID,
|
|
|
+ HeadUrl: "",
|
|
|
+ SupplierName: supplier.SupplierName,
|
|
|
+ SupplierType: supplier.SupplierType,
|
|
|
+ CompanyName: supplier.CompanyName,
|
|
|
+ Name: supplier.Name,
|
|
|
+ Existence: true,
|
|
|
+ }
|
|
|
+ reSupplierPoolInfo := &vo.ReSupplierPoolInfo{
|
|
|
+ SupplierPreview: supplierPreview,
|
|
|
+ PhoneNumber: supplier.PhoneNumber,
|
|
|
+ WechatId: "",
|
|
|
+ WechatUrl: "",
|
|
|
+ CooperateNum: enterpriseSupplierCooperate.CooperateNum,
|
|
|
+ UploadTalentNum: enterpriseSupplierCooperate.UploadTalentNum,
|
|
|
+ CooperateTalentNum: enterpriseSupplierCooperate.CooperateTalentNum,
|
|
|
+ AgreeTime: enterpriseSupplierCooperate.AgreeTime.Format("2006-01-02 15:04:05"),
|
|
|
+ EnterpriseOperator: enterpriseOperator,
|
|
|
+ }
|
|
|
+ reSupplierPoolInfos = append(reSupplierPoolInfos, reSupplierPoolInfo)
|
|
|
+ }
|
|
|
+ result = vo.ResultVO{
|
|
|
+ Page: param.Page,
|
|
|
+ PageSize: param.PageSize,
|
|
|
+ Total: total,
|
|
|
+ Data: reSupplierPoolInfos,
|
|
|
+ }
|
|
|
+ return result, nil
|
|
|
+}
|
|
|
+
|
|
|
+// 服务商邀请待确认列表
|
|
|
+func (s CooperationService) GetSupplierConfirmingList(param *vo.SupplierConfirmingParam) (vo.ResultVO, error) {
|
|
|
+ if param.Page <= 0 {
|
|
|
+ param.Page = 1
|
|
|
+ }
|
|
|
+ if param.PageSize <= 0 {
|
|
|
+ param.PageSize = 10
|
|
|
+ }
|
|
|
+ var result vo.ResultVO
|
|
|
+ var reSupplierConfirmingInfos []*vo.ReSupplierConfirmingInfo
|
|
|
+ var enterpriseOperator string
|
|
|
+ enterpriseSupplierCooperates, total, _ := dao.EnterpriseSupplierCooperateDao{}.GetSupplierConfirmingList(param.EnterpriseId, param.Page, param.PageSize)
|
|
|
+ for _, enterpriseSupplierCooperate := range enterpriseSupplierCooperates {
|
|
|
+ // 获取商家操作人姓名
|
|
|
+ bOperator := enterpriseSupplierCooperate.BOperator
|
|
|
+ if enterpriseSupplierCooperate.BOperatorType == 1 {
|
|
|
+ enterprise, err := dao.EnterpriseDao{}.GetEnterprise(bOperator)
|
|
|
+ if err == nil && enterprise != nil {
|
|
|
+ enterpriseOperator = enterprise.BusinessName
|
|
|
+ }
|
|
|
+ } else if enterpriseSupplierCooperate.BOperatorType == 2 {
|
|
|
+ subAccountId, err := strconv.ParseInt(bOperator, 10, 64)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetSupplierConfirmingList==subAccountId 转换出错:", err)
|
|
|
+ } else {
|
|
|
+ subAccount, err := dao.SubAccountDao{}.GetSubAccount(subAccountId)
|
|
|
+ if err == nil && subAccount != nil {
|
|
|
+ enterpriseOperator = subAccount.SubAccountName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ supplier, err := dao.SupplierDao{}.GetSupplierInfoById(enterpriseSupplierCooperate.SupplierId)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ supplierPreview := &vo.ReSupplierPreview{
|
|
|
+ SupplierId: supplier.SupplierID,
|
|
|
+ HeadUrl: "",
|
|
|
+ SupplierName: supplier.SupplierName,
|
|
|
+ SupplierType: supplier.SupplierType,
|
|
|
+ CompanyName: supplier.CompanyName,
|
|
|
+ Name: supplier.Name,
|
|
|
+ }
|
|
|
+ reSupplierConfirmingInfo := &vo.ReSupplierConfirmingInfo{
|
|
|
+ SupplierPreview: supplierPreview,
|
|
|
+ PhoneNumber: supplier.PhoneNumber,
|
|
|
+ WechatId: "",
|
|
|
+ WechatUrl: "",
|
|
|
+ CreateTime: enterpriseSupplierCooperate.CreateTime.Format("2006-01-02 15:04:05"),
|
|
|
+ Status: enterpriseSupplierCooperate.CooperateStatus,
|
|
|
+ EnterpriseOperator: enterpriseOperator,
|
|
|
+ }
|
|
|
+ reSupplierConfirmingInfos = append(reSupplierConfirmingInfos, reSupplierConfirmingInfo)
|
|
|
+ }
|
|
|
+ result = vo.ResultVO{
|
|
|
+ Page: param.Page,
|
|
|
+ PageSize: param.PageSize,
|
|
|
+ Total: total,
|
|
|
+ Data: reSupplierConfirmingInfos,
|
|
|
+ }
|
|
|
+ return result, nil
|
|
|
+}
|