|
|
@@ -2,6 +2,7 @@ package proj
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ platDao "dashoo.cn/micro/app/dao/plat"
|
|
|
"os"
|
|
|
|
|
|
contractDao "dashoo.cn/micro/app/dao/contract"
|
|
|
@@ -32,7 +33,9 @@ import (
|
|
|
|
|
|
type businessService struct {
|
|
|
*service.ContextService
|
|
|
- Dao *projDao.ProjBusinessDao
|
|
|
+ Dao *projDao.ProjBusinessDao
|
|
|
+ FollowDao *platDao.PlatFollowupDao
|
|
|
+ fileDao *projDao.ProjBusinessFileDao
|
|
|
}
|
|
|
|
|
|
func NewBusinessService(ctx context.Context) (svc *businessService, err error) {
|
|
|
@@ -41,6 +44,8 @@ func NewBusinessService(ctx context.Context) (svc *businessService, err error) {
|
|
|
return nil, err
|
|
|
}
|
|
|
svc.Dao = projDao.NewProjBusinessDao(svc.Tenant)
|
|
|
+ svc.FollowDao = platDao.NewPlatFollowupDao(svc.Tenant)
|
|
|
+ svc.fileDao = projDao.NewProjBusinessFileDao(svc.Tenant)
|
|
|
return svc, nil
|
|
|
}
|
|
|
|
|
|
@@ -91,8 +96,30 @@ func (p *businessService) GetList(req *model.ProjBusinessSearchReq) (total int,
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func (p *businessService) GetEntityById(id int64) (business *model.ProjBusiness, err error) {
|
|
|
+func (p *businessService) GetEntityById(id int64) (business *model.ProjBusinessRes, err error) {
|
|
|
err = p.Dao.Where(projDao.ProjBusiness.C.Id, id).Scan(&business)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ if business == nil {
|
|
|
+ return nil, myerrors.TipsError("项目不存在")
|
|
|
+ }
|
|
|
+ business.FollowCount, err = p.FollowDao.Where(p.FollowDao.C.TargetType, "20").Where(p.FollowDao.C.TargetId, business.Id).Count()
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ productList, err := p.GetBusinessProduct(id)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ if err := gconv.Structs(productList, &business.Products); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ files, err := p.fileDao.Where(p.fileDao.C.BusId, id).WhereLike(p.fileDao.C.FileSource, "%报价单%").OrderDesc(p.fileDao.C.Id).Limit(1).All()
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ business.QuotationFileList = files
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -181,18 +208,6 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
return myerrors.TipsError("客户不存在")
|
|
|
}
|
|
|
|
|
|
- // 设置默认联系人
|
|
|
- contact := g.Map{
|
|
|
- projDao.ProjBusinessContact.C.ContactId: req.ContactId,
|
|
|
- }
|
|
|
- service.SetCreatedInfo(contact, p.GetCxtUserId(), p.GetCxtUserName())
|
|
|
-
|
|
|
- // 设置产品信息
|
|
|
- totalPrice, products, err := p.setProductInfo(0, req.Products)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
// 获取项目编号
|
|
|
nboCode, err := p.getNboCode(customer.CustCode)
|
|
|
if err != nil {
|
|
|
@@ -204,12 +219,10 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
return
|
|
|
}
|
|
|
business.NboCode = nboCode
|
|
|
- //business.NboStatus = StatusOK
|
|
|
if business.NboType == "" {
|
|
|
business.NboType = StatusC
|
|
|
}
|
|
|
business.ApproStatus = ApprovalWaiting
|
|
|
- business.EstTransPrice = totalPrice
|
|
|
business.CustProvinceId = customer.CustProvinceId
|
|
|
business.CustProvince = customer.CustProvince
|
|
|
business.CustCityId = customer.CustCityId
|
|
|
@@ -231,22 +244,6 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- // 创建了联系人
|
|
|
- contact[projDao.ProjBusinessContact.C.BusId] = lastId
|
|
|
- _, err = projDao.NewProjBusinessContactDao(p.Tenant).TX(tx).Insert(contact)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- // 处理项目产品信息
|
|
|
- for _, v := range products {
|
|
|
- v.BusId = int(lastId)
|
|
|
- }
|
|
|
- // 添加项目产品
|
|
|
- _, err = projDao.NewProjBusinessProductDao(p.Tenant).TX(tx).Insert(products)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
// 添加项目动态
|
|
|
dynamics := model.ProjBusinessDynamics{
|
|
|
BusId: int(lastId),
|
|
|
@@ -281,16 +278,16 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
|
|
|
Name: utils.String("客户名称"),
|
|
|
Value: utils.String(business.CustName),
|
|
|
},
|
|
|
- {
|
|
|
- Id: utils.String("TextField_VZ64Y44LXFK0"),
|
|
|
- Name: utils.String("主要联系人"),
|
|
|
- Value: utils.String(business.ContactName),
|
|
|
- },
|
|
|
{
|
|
|
Id: utils.String("DDSelectField_6CQD451D3800"),
|
|
|
Name: utils.String("项目来源"),
|
|
|
Value: utils.String(nboSource),
|
|
|
},
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_1UQFU5BUEWDC"),
|
|
|
+ Name: utils.String("历史招标信息"),
|
|
|
+ Value: utils.String(req.BidInfo),
|
|
|
+ },
|
|
|
{
|
|
|
Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
Name: utils.String("销售工程师"),
|
|
|
@@ -413,7 +410,7 @@ func (p *businessService) UpdateById(req *model.UpdateProjBusinessReq) error {
|
|
|
|
|
|
err = p.Dao.Transaction(context.TODO(), func(ctx context.Context, tx *gdb.TX) error {
|
|
|
// 更新项目
|
|
|
- updateFieldEx := append(service.UpdateFieldEx, p.Dao.C.SaleId, p.Dao.C.SaleName)
|
|
|
+ updateFieldEx := append(service.UpdateFieldEx, p.Dao.C.SaleId, p.Dao.C.SaleName, p.Dao.C.NboType, p.Dao.C.NboCode)
|
|
|
_, err = p.Dao.TX(tx).FieldsEx(updateFieldEx...).WherePri(projDao.ProjBusiness.C.Id, req.Id).Update(businessData)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
@@ -653,7 +650,7 @@ func (p *businessService) BusinessUpgrade(req *model.BusinessUpgradeReq, fileMap
|
|
|
if fileMap == nil {
|
|
|
fileMap = make(map[string]*multipart.FileHeader)
|
|
|
}
|
|
|
- if req.NboType == StatusA || req.NboType == StatusB {
|
|
|
+ if (req.NboType == StatusA || req.NboType == StatusB) && !strings.HasPrefix(req.QuotationFile, "dingtalk") {
|
|
|
fileMap["quotationFile"], err = service.DownloadTempFile(req.QuotationFile)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
@@ -687,7 +684,10 @@ func (p *businessService) BusinessUpgrade(req *model.BusinessUpgradeReq, fileMap
|
|
|
err = p.BusUpgradeDingEvent(business, req, fileMap)
|
|
|
return err
|
|
|
})
|
|
|
- return err
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
// 获取项目的钉钉审批的升级类型
|
|
|
@@ -713,16 +713,51 @@ func (p *businessService) getBusDingUpgradeType(dbNboType, reqNboType string) st
|
|
|
|
|
|
// BusUpgradeDingEvent 项目升级钉钉审批流调用
|
|
|
func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req *model.BusinessUpgradeReq, fileMap map[string]*multipart.FileHeader) error {
|
|
|
+ var err error
|
|
|
upgradeType := p.getBusDingUpgradeType(business.NboType, req.NboType)
|
|
|
if upgradeType == "" {
|
|
|
return myerrors.TipsError("错误的升级类型")
|
|
|
}
|
|
|
- productLine, _ := service.GetDictLabelByTypeAndValue(p.Ctx, "sys_product_line", business.ProductLine)
|
|
|
+ productLineMap, err := service.GetDictDataTreeByType(p.Ctx, "sys_product_line")
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ productLine := gconv.String(productLineMap.Get(business.ProductLine))
|
|
|
+
|
|
|
+ dingProductList := make([][]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+ for _, item := range req.Products {
|
|
|
+ pInfo := make([]*workflow.StartProcessInstanceRequestFormComponentValues, 0)
|
|
|
+ pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String("TextField_8P2W917Q5I40"),
|
|
|
+ Name: utils.String("产品编码"),
|
|
|
+ Value: utils.String(item.ProdCode),
|
|
|
+ })
|
|
|
+ pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String("TextField_1W2HGNQFLLA80"),
|
|
|
+ Name: utils.String("产品名称"),
|
|
|
+ Value: utils.String(item.ProdName),
|
|
|
+ })
|
|
|
+ pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String("TextField_1OPT3MZL76GW0"),
|
|
|
+ Name: utils.String("产品类别"),
|
|
|
+ Value: utils.String(gconv.String(productLineMap.Get(item.ProdClass))),
|
|
|
+ })
|
|
|
+ pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String("TextField_O405QBZMPW00"),
|
|
|
+ Name: utils.String("产品单价"),
|
|
|
+ Value: utils.String(gconv.String(item.ProdPrice)),
|
|
|
+ })
|
|
|
+ pInfo = append(pInfo, &workflow.StartProcessInstanceRequestFormComponentValues{
|
|
|
+ Id: utils.String("TextField_23P54AZUW4SG0"),
|
|
|
+ Name: utils.String("数量"),
|
|
|
+ Value: utils.String(gconv.String(item.ProdNum)),
|
|
|
+ })
|
|
|
+ dingProductList = append(dingProductList, pInfo)
|
|
|
+ }
|
|
|
|
|
|
// 审批流
|
|
|
workflowSrv, _ := workflowService.NewFlowService(p.Ctx)
|
|
|
// OMS项目升级 审批
|
|
|
- var err error
|
|
|
var dingReq *workflow.StartProcessInstanceRequest
|
|
|
bizCode := business.NboCode + ":" + strconv.Itoa(business.Id)
|
|
|
switch req.NboType {
|
|
|
@@ -819,33 +854,28 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
},
|
|
|
{
|
|
|
Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
- Name: utils.String("经销商/代理商"),
|
|
|
- Value: utils.String(req.DistributorName),
|
|
|
+ Name: utils.String("渠道销售人员"),
|
|
|
+ Value: utils.String(req.DealerSalesName),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_X4D3QGARU7K0"),
|
|
|
- Name: utils.String("支持内容"),
|
|
|
- Value: utils.String(req.TechnicalSupportContent),
|
|
|
+ Id: utils.String("TextField_M06MZK20POG0"),
|
|
|
+ Name: utils.String("渠道销售电话/微信"),
|
|
|
+ Value: utils.String(req.DealerSalesContact),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
- Name: utils.String("销售工程师"),
|
|
|
- Value: utils.String(business.SaleName),
|
|
|
- },
|
|
|
- {
|
|
|
- Id: utils.String("DDDateField_1FW1QZQYBZVK0"),
|
|
|
- Name: utils.String("采购时间"),
|
|
|
- Value: utils.String(gconv.String(req.PurchasingTime.Format("Y-m-d"))),
|
|
|
+ Id: utils.String("TextField_GL59OGH2Z1S0"),
|
|
|
+ Name: utils.String("预计出货金额"),
|
|
|
+ Value: utils.String(gconv.String(business.EstTransPrice)),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("DDSelectField_21ASEWDIB3MO0"),
|
|
|
- Name: utils.String("采购方式"),
|
|
|
- Value: utils.String(gconv.String(purchasingWayType[req.PurchasingWay])),
|
|
|
+ Id: utils.String("TableField_1CGSRAWT8YG0"),
|
|
|
+ Name: utils.String("产品列表"),
|
|
|
+ Value: utils.String(gconv.String(dingProductList)),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("DDSelectField_5R11VVM6GI00"),
|
|
|
- Name: utils.String("是否我司参数"),
|
|
|
- Value: utils.String(gconv.String(yesOrNoType[req.IsAdoptDashoo])),
|
|
|
+ Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
+ Name: utils.String("销售工程师"),
|
|
|
+ Value: utils.String(business.SaleName),
|
|
|
},
|
|
|
{
|
|
|
Id: utils.String("DDAttachment_KZPWZJS9GHO0"),
|
|
|
@@ -879,6 +909,16 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if strings.HasPrefix(req.QuotationFile, "dingtalk") {
|
|
|
+ arr := strings.Split(req.QuotationFile, ":")
|
|
|
+ quotationFile = append(quotationFile, contractModel.DingFileInfo{
|
|
|
+ SpaceId: arr[1],
|
|
|
+ FileId: arr[2],
|
|
|
+ FileName: fmt.Sprintf("%v报价单", business.NboName),
|
|
|
+ FileSize: 10,
|
|
|
+ FileType: "",
|
|
|
+ })
|
|
|
+ }
|
|
|
if len(quotationFile) == 0 {
|
|
|
return myerrors.TipsError("请上传报价单文件")
|
|
|
}
|
|
|
@@ -912,34 +952,39 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
Value: utils.String(business.CustName),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("NumberField_1F88MCD0W8KG0"),
|
|
|
- Name: utils.String("项目预算"),
|
|
|
- Value: utils.String(gconv.String(req.NboBudget)),
|
|
|
+ Id: utils.String("DDSelectField_21ASEWDIB3MO0"),
|
|
|
+ Name: utils.String("采购方式"),
|
|
|
+ Value: utils.String(gconv.String(purchasingWayType[req.PurchasingWay])),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
- Name: utils.String("经销商/代理商"),
|
|
|
- Value: utils.String(req.DistributorName),
|
|
|
+ Id: utils.String("TextField_3AIYCSEQLQC0"),
|
|
|
+ Name: utils.String("资金来源"),
|
|
|
+ Value: utils.String(req.CapitalSource),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_X4D3QGARU7K0"),
|
|
|
- Name: utils.String("支持内容"),
|
|
|
- Value: utils.String(req.TechnicalSupportContent),
|
|
|
+ Id: utils.String("DDDateField_1FW1QZQYBZVK0"),
|
|
|
+ Name: utils.String("计划采购时间"),
|
|
|
+ Value: utils.String(gconv.String(req.PlanPurchaseTime.Format("Y-m-d"))),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
- Name: utils.String("销售工程师"),
|
|
|
- Value: utils.String(business.SaleName),
|
|
|
+ Id: utils.String("TextField_1PWK6WHMGITC0"),
|
|
|
+ Name: utils.String("客户决策人"),
|
|
|
+ Value: utils.String(req.MakerName),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("DDDateField_1FW1QZQYBZVK0"),
|
|
|
- Name: utils.String("采购时间"),
|
|
|
- Value: utils.String(gconv.String(req.PurchasingTime.Format("Y-m-d"))),
|
|
|
+ Id: utils.String("TextField_16RIJRRF8B340"),
|
|
|
+ Name: utils.String("客户决策部门"),
|
|
|
+ Value: utils.String(req.MakerDept),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("DDSelectField_21ASEWDIB3MO0"),
|
|
|
- Name: utils.String("采购方式"),
|
|
|
- Value: utils.String(gconv.String(purchasingWayType[req.PurchasingWay])),
|
|
|
+ Id: utils.String("TextField_7EE0LTUVUSK0"),
|
|
|
+ Name: utils.String("客户联系人"),
|
|
|
+ Value: utils.String(req.ContactName),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_E8TFCZUBV940"),
|
|
|
+ Name: utils.String("客户联系人电话/微信"),
|
|
|
+ Value: utils.String(req.ContactTelephone),
|
|
|
},
|
|
|
{
|
|
|
Id: utils.String("DDSelectField_5R11VVM6GI00"),
|
|
|
@@ -951,6 +996,21 @@ func (p *businessService) BusUpgradeDingEvent(business *model.ProjBusiness, req
|
|
|
Name: utils.String("附件"),
|
|
|
Value: utils.String(gconv.String(dashooParamFile)),
|
|
|
},
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_FJI7GL9E8W80"),
|
|
|
+ Name: utils.String("竞争公司"),
|
|
|
+ Value: utils.String(req.Competitor),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_1NC9MEUBDBR40"),
|
|
|
+ Name: utils.String("客户倾向厂家"),
|
|
|
+ Value: utils.String(req.CustomerIntentionFactory),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Id: utils.String("TextField_AEUWH63LJ0O0"),
|
|
|
+ Name: utils.String("销售工程师"),
|
|
|
+ Value: utils.String(business.SaleName),
|
|
|
+ },
|
|
|
{
|
|
|
Id: utils.String("DDAttachment_19Y01ZRBFWXS0"),
|
|
|
Name: utils.String("上传报价单"),
|
|
|
@@ -1032,6 +1092,7 @@ func (p *businessService) BusinessUpgradeNotify(flow *workflowModel.PlatWorkflow
|
|
|
}
|
|
|
|
|
|
var data = g.Map{}
|
|
|
+ var updateData *model.BusinessUpgradeReq
|
|
|
var remark string
|
|
|
if msg.ProcessType == "terminate" {
|
|
|
data[p.Dao.C.ApproStatus] = ApprovalReturn
|
|
|
@@ -1047,26 +1108,51 @@ func (p *businessService) BusinessUpgradeNotify(flow *workflowModel.PlatWorkflow
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- updateData := new(model.BusinessUpgradeReq)
|
|
|
+ updateData = new(model.BusinessUpgradeReq)
|
|
|
gconv.Struct(dynamics.OpnContent, updateData)
|
|
|
data = gconv.Map(updateData)
|
|
|
data[p.Dao.C.ApproStatus] = ApprovalOK
|
|
|
remarkMap := gconv.Map(dynamics.OpnContent)
|
|
|
remark = gconv.String(g.Map{"nboType": remarkMap["nboType"], "origNboType": remarkMap["origNboType"]})
|
|
|
}
|
|
|
+ err = p.Dao.Transaction(p.Ctx, func(ctx context.Context, tx *gdb.TX) error {
|
|
|
+ // 添加产品
|
|
|
+ if updateData != nil && (updateData.NboType == "20" || updateData.NboType == "10") {
|
|
|
+ // 设置产品信息
|
|
|
+ totalPrice, products, err := p.setProductInfo(updateData.Id, updateData.Products)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 删除项目产品
|
|
|
+ _, err = projDao.NewProjBusinessProductDao(p.Tenant).TX(tx).Where(projDao.ProjBusinessProduct.C.BusId, updateData.Id).Delete()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 添加项目产品
|
|
|
+ _, err = projDao.NewProjBusinessProductDao(p.Tenant).TX(tx).Insert(products)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ data[p.Dao.C.EstTransPrice] = totalPrice
|
|
|
+ }
|
|
|
+ // 项目修改
|
|
|
+ _, err = p.Dao.TX(tx).WherePri(business.Id).FieldsEx(service.UpdateFieldEx...).Data(data).Update()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- // 项目修改
|
|
|
- _, err = p.Dao.WherePri(business.Id).FieldsEx(service.UpdateFieldEx...).Data(data).Update()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- // 添加项目动态
|
|
|
- dynamics := model.ProjBusinessDynamics{
|
|
|
- BusId: business.Id,
|
|
|
- OpnType: OpnUpgradeApproval,
|
|
|
- Remark: remark,
|
|
|
- }
|
|
|
- _, err = p.CreateProjBusinessDynamics(nil, dynamics, data)
|
|
|
+ // 添加项目动态
|
|
|
+ dynamics := model.ProjBusinessDynamics{
|
|
|
+ BusId: business.Id,
|
|
|
+ OpnType: OpnUpgradeApproval,
|
|
|
+ Remark: remark,
|
|
|
+ }
|
|
|
+ _, err = p.CreateProjBusinessDynamics(tx, dynamics, data)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ })
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -1175,9 +1261,9 @@ func (p *businessService) BusinessDowngrade(req *model.BusinessDowngradeReq) err
|
|
|
Value: utils.String(productLine),
|
|
|
},
|
|
|
{
|
|
|
- Id: utils.String("TextField_X4D3QGARU7K0"),
|
|
|
- Name: utils.String("支持内容"),
|
|
|
- Value: utils.String(req.TechnicalSupportContent),
|
|
|
+ Id: utils.String("TextField_X4D3QGARU7K0"),
|
|
|
+ Name: utils.String("支持内容"),
|
|
|
+ //Value: utils.String(req.TechnicalSupportContent),
|
|
|
},
|
|
|
{
|
|
|
Id: utils.String("TextField_AEUWH63LJ0O0"),
|