本文整理匯總了Golang中com/papersns/global.SetGlobalAttr函數的典型用法代碼示例。如果您正苦於以下問題:Golang SetGlobalAttr函數的具體用法?Golang SetGlobalAttr怎麽用?Golang SetGlobalAttr使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了SetGlobalAttr函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Relation
func (c Console) Relation() revel.Result {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
selectorId := c.Params.Get("selectorId")
id := c.Params.Get("id")
templateManager := TemplateManager{}
relationLi := []map[string]interface{}{
map[string]interface{}{
"selectorId": selectorId,
"relationId": id,
},
}
relationBo := templateManager.GetRelationBo(sessionId, relationLi)
var result interface{} = nil
var url interface{} = nil
if relationBo[selectorId] != nil {
selRelationBo := relationBo[selectorId].(map[string]interface{})
if selRelationBo[id] != nil {
result = selRelationBo[id]
url = selRelationBo["url"]
}
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(map[string]interface{}{
"result": result,
"url": url,
})
}
示例2: RCopyDataCommon
func (c BaseDataAction) RCopyDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
dataSourceModelId := c.Params.Get("dataSourceModelId")
formTemplateId := c.Params.Get("formTemplateId")
strId := c.Params.Get("id")
id, err := strconv.Atoi(strId)
if err != nil {
panic(err)
}
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"_id": id,
}
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
srcBo, found := querySupport.FindByMap(collectionName, queryMap)
if !found {
panic("CopyData, dataSouceModelId=" + dataSourceModelId + ", id=" + strId + " not found")
}
modelTemplateFactory.ConvertDataType(dataSource, &srcBo)
c.RActionSupport.RBeforeCopyData(sessionId, dataSource, formTemplate, srcBo)
dataSource, bo := modelTemplateFactory.GetCopyInstance(dataSourceModelId, srcBo)
c.RActionSupport.RAfterCopyData(sessionId, dataSource, formTemplate, &bo)
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
DataSource: dataSource,
FormTemplate: formTemplate,
}
}
示例3: BbsPostAdminReplySchema
// 管理員查看頁麵,設置session.userId,以查看數據,
func (c Console) BbsPostAdminReplySchema() revel.Result {
// 取一下bbsPostId
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
schemaName := c.Params.Get("@name")
templateManager := TemplateManager{}
listTemplate := templateManager.GetListTemplate(schemaName)
isFromList := true
result := c.listSelectorCommon(&listTemplate, true, isFromList)
bbsPostIdStr := c.Params.Get("bbsPostId")
bbsPostId, err := strconv.Atoi(bbsPostIdStr)
if err != nil {
panic(err)
}
c.addOrUpdateBbsPostRead(sessionId, bbsPostId)
c.CommitTxn(sessionId)
format := c.Params.Get("format")
if strings.ToLower(format) == "json" {
callback := c.Params.Get("callback")
if callback == "" {
dataBo := result["dataBo"]
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
dataBoText := result["dataBoText"].(string)
c.Response.ContentType = "text/javascript; charset=utf-8"
return c.RenderText(callback + "(" + dataBoText + ");")
} else {
//c.Response.ContentType = "text/html; charset=utf-8"
c.RenderArgs["result"] = result
return c.RenderTemplate(listTemplate.ViewTemplate.View)
// return c.Render(result)
}
}
示例4: RNewDataCommon
func (c BaseDataAction) RNewDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
dataSourceModelId := c.Params.Get("dataSourceModelId")
formTemplateId := c.Params.Get("formTemplateId")
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
c.RActionSupport.RBeforeNewData(sessionId, dataSource, formTemplate)
bo := modelTemplateFactory.GetInstanceByDS(dataSource)
c.RActionSupport.RAfterNewData(sessionId, dataSource, formTemplate, &bo)
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
DataSource: dataSource,
FormTemplate: formTemplate,
}
}
示例5: RSaveCommon
func (c BaseDataAction) RSaveCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
dataSourceModelId := c.Params.Form.Get("dataSourceModelId")
formTemplateId := c.Params.Get("formTemplateId")
jsonBo := c.Params.Form.Get("jsonData")
bo := map[string]interface{}{}
err = json.Unmarshal([]byte(jsonBo), &bo)
if err != nil {
panic(err)
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
modelTemplateFactory.ConvertDataType(dataSource, &bo)
strId := modelTemplateFactory.GetStrId(bo)
if strId == "" || strId == "0" {
c.RSetCreateFixFieldValue(sessionId, dataSource, &bo)
} else {
c.RSetModifyFixFieldValue(sessionId, dataSource, &bo)
editMessage, isValid := c.RActionSupport.REditValidate(sessionId, dataSource, formTemplate, bo)
if !isValid {
panic(editMessage)
}
}
c.RActionSupport.RBeforeSaveData(sessionId, dataSource, formTemplate, &bo)
financeService := FinanceService{}
diffDataRowLi := financeService.SaveData(sessionId, dataSource, &bo)
c.RActionSupport.RAfterSaveData(sessionId, dataSource, formTemplate, &bo, diffDataRowLi)
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"_id": bo["id"],
}
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
bo, _ = querySupport.FindByMap(collectionName, queryMap)
usedCheck := UsedCheck{}
usedCheckBo := usedCheck.GetFormUsedCheck(sessionId, dataSource, bo)
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
UsedCheckBo: usedCheckBo,
DataSource: dataSource,
FormTemplate: formTemplate,
}
}
示例6: RSaveCommon
func (c CashAccountInit) RSaveCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
// 自己拆,再循環保存
// dataSourceModelId := c.Params.Form.Get("dataSourceModelId")
dataSourceModelId := "AccountInit"
formTemplateId := c.Params.Get("formTemplateId")
jsonBo := c.Params.Form.Get("jsonData")
bo := map[string]interface{}{}
err = json.Unmarshal([]byte(jsonBo), &bo)
if err != nil {
panic(err)
}
continueAnyAll := "false"
if bo["continueAnyAll"] != nil && fmt.Sprint(bo["continueAnyAll"]) != "" {
continueAnyAll = bo["continueAnyAll"].(string)
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
// modelTemplateFactory.ConvertDataType(dataSource, &bo)
cashAccountInitLi := []map[string]interface{}{}
bDataSetLi := bo["B"].([]interface{})
nowIdLi := []int{}
for _, item := range bDataSetLi {
mapItem := item.(map[string]interface{})
line := map[string]interface{}{
"A": mapItem,
}
if mapItem["id"] != nil {
line["id"] = mapItem["id"]
line["_id"] = mapItem["id"]
} else {
line["id"] = ""
line["_id"] = ""
}
modelTemplateFactory.ConvertDataType(dataSource, &line)
strId := fmt.Sprint(line["id"])
if strId != "" {
intId, _ := strconv.Atoi(strId)
nowIdLi = append(nowIdLi, intId)
}
cashAccountInitLi = append(cashAccountInitLi, line)
}
queryData := bo["A"].(map[string]interface{})
strAccountId := fmt.Sprint(queryData["accountId"])
// 先處理刪除的數據,並弄到差異數據中
diffDataRowAllLi := []DiffDataRow{}
toDeleteLi := c.dealDelete(sessionId, dataSource, formTemplate, queryData, nowIdLi)
modelIterator := ModelIterator{}
for _, item := range toDeleteLi {
var result interface{} = ""
modelIterator.IterateDataBo(dataSource, &item, &result, func(fieldGroupLi []FieldGroup, data *map[string]interface{}, rowIndex int, result *interface{}) {
diffDataRow := DiffDataRow{
FieldGroupLi: fieldGroupLi,
SrcData: *data,
SrcBo: item,
}
diffDataRowAllLi = append(diffDataRowAllLi, diffDataRow)
})
}
bo = map[string]interface{}{
"_id": 0,
"id": 0,
"A": map[string]interface{}{
"id": 0,
"accountId": strAccountId,
},
}
bDataSetLi = []interface{}{}
for i, _ := range cashAccountInitLi {
cashAccountInit := &cashAccountInitLi[i]
strId := modelTemplateFactory.GetStrId(*cashAccountInit)
if strId == "" || strId == "0" {
c.RSetCreateFixFieldValue(sessionId, dataSource, cashAccountInit)
} else {
c.RSetModifyFixFieldValue(sessionId, dataSource, cashAccountInit)
editMessage, isValid := c.RActionSupport.REditValidate(sessionId, dataSource, formTemplate, *cashAccountInit)
if !isValid {
panic(editMessage)
}
}
// 這樣隻會是新增和修改的數據
c.RActionSupport.RBeforeSaveData(sessionId, dataSource, formTemplate, cashAccountInit)
financeService := FinanceService{}
diffDataRowLi := financeService.SaveData(sessionId, dataSource, cashAccountInit)
//.........這裏部分代碼省略.........
示例7: RRefreshDataCommon
func (c CashAccountInit) RRefreshDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
// dataSourceModelId := c.Params.Get("dataSourceModelId")
dataSourceModelId := "AccountInit"
formTemplateId := c.Params.Get("formTemplateId")
queryDataStr := c.Params.Get("queryData")
queryData := map[string]interface{}{}
err = json.Unmarshal([]byte(queryDataStr), &queryData)
if err != nil {
panic(err)
}
strAccountId := fmt.Sprint(queryData["accountId"])
// strId := c.Params.Get("id")
// id, err := strconv.Atoi(strId)
// if err != nil {
// panic(err)
// }
session, _ := global.GetConnection(sessionId)
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"A.accountType": 1,
}
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
if strAccountId != "" && strAccountId != "0" {
accountIdLi := []int{}
for _, item := range strings.Split(strAccountId, ",") {
accountId, err := strconv.Atoi(item)
if err != nil {
panic(err)
}
accountIdLi = append(accountIdLi, accountId)
}
queryMap["A.accountId"] = map[string]interface{}{
"$in": accountIdLi,
}
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
// 需要進行循環處理,再轉回來,
pageNo := 1
pageSize := 1000
orderBy := ""
result := querySupport.IndexWithSession(session, collectionName, queryMap, pageNo, pageSize, orderBy)
items := result["items"].([]interface{})
dataSetLi := []interface{}{}
for _, item := range items {
line := item.(map[string]interface{})
bo := map[string]interface{}{
"_id": line["id"],
"id": line["id"],
"A": line["A"],
}
modelTemplateFactory.ConvertDataType(dataSource, &bo)
c.RActionSupport.RBeforeRefreshData(sessionId, dataSource, formTemplate, &bo)
c.RActionSupport.RAfterRefreshData(sessionId, dataSource, formTemplate, &bo)
dataSetLi = append(dataSetLi, bo["A"])
}
bo := map[string]interface{}{
"_id": 0,
"id": 0,
"A": map[string]interface{}{
"id": 0,
"accountId": strAccountId,
},
"B": dataSetLi,
}
// usedCheck := UsedCheck{}
// usedCheckBo := usedCheck.GetFormUsedCheck(sessionId, dataSource, bo)
usedCheckBo := map[string]interface{}{}
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
//.........這裏部分代碼省略.........
示例8: RGetDataCommon
func (c CashAccountInit) RGetDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
// dataSourceModelId := c.Params.Get("dataSourceModelId")
dataSourceModelId := "AccountInit"
formTemplateId := c.Params.Get("formTemplateId")
session, _ := global.GetConnection(sessionId)
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"A.accountType": 1,
}
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
c.RActionSupport.RBeforeGetData(sessionId, dataSource, formTemplate)
// 需要進行循環處理,再轉回來,
pageNo := 1
pageSize := 1000
orderBy := ""
queryMapByte, err := json.MarshalIndent(&queryMap, "", "\t")
if err != nil {
panic(err)
}
log.Println("dealDelete,collectionName:" + collectionName + ", query:" + string(queryMapByte))
result := querySupport.IndexWithSession(session, collectionName, queryMap, pageNo, pageSize, orderBy)
items := result["items"].([]interface{})
dataSetLi := []interface{}{}
for _, item := range items {
line := item.(map[string]interface{})
bo := map[string]interface{}{
"_id": line["id"],
"id": line["id"],
"A": line["A"],
}
modelTemplateFactory.ConvertDataType(dataSource, &bo)
c.RActionSupport.RAfterGetData(sessionId, dataSource, formTemplate, &bo)
dataSetLi = append(dataSetLi, bo["A"])
}
bo := map[string]interface{}{
"_id": 0,
"id": 0,
"A": map[string]interface{}{
"id": 0,
"accountId": 0,
},
"B": dataSetLi,
}
// usedCheck := UsedCheck{}
// usedCheckBo := usedCheck.GetFormUsedCheck(sessionId, dataSource, bo)
usedCheckBo := map[string]interface{}{}
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
// modelTemplateFactory.ConvertDataType(dataSource, &bo)
modelTemplateFactory.ClearReverseRelation(&dataSource)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
UsedCheckBo: usedCheckBo,
DataSource: dataSource,
}
}
示例9: Refretor
func (c Console) Refretor() revel.Result {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
refretorType := c.Params.Get("type")
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate("Console")
if refretorType == "Component" {
listTemplateInfoLi := templateManager.RefretorListTemplateInfo()
items := getSummaryListTemplateInfoLi(listTemplateInfoLi)
for _, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "column-model" && item.ColumnModel.Name == "Component" {
itemsDict := templateManager.GetColumnModelDataForColumnModel(sessionId, item.ColumnModel, items)
items = itemsDict["items"].([]interface{})
break
}
}
dataBo := map[string]interface{}{
"items": items,
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
if refretorType == "Selector" {
selectorTemplateInfoLi := templateManager.RefretorSelectorTemplateInfo()
items := getSummarySelectorTemplateInfoLi(selectorTemplateInfoLi)
for _, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "column-model" && item.ColumnModel.Name == "Selector" {
itemsDict := templateManager.GetColumnModelDataForColumnModel(sessionId, item.ColumnModel, items)
items = itemsDict["items"].([]interface{})
break
}
}
dataBo := map[string]interface{}{
"items": items,
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
if refretorType == "Form" {
formTemplateInfoLi := templateManager.RefretorFormTemplateInfo()
items := getSummaryFormTemplateInfoLi(formTemplateInfoLi)
for _, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "column-model" && item.ColumnModel.Name == "Form" {
itemsDict := templateManager.GetColumnModelDataForColumnModel(sessionId, item.ColumnModel, items)
items = itemsDict["items"].([]interface{})
break
}
}
dataBo := map[string]interface{}{
"items": items,
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
if refretorType == "DataSource" {
modelTemplateFactory := ModelTemplateFactory{}
dataSourceTemplateInfoLi := modelTemplateFactory.RefretorDataSourceInfo()
items := getSummaryDataSourceInfoLi(dataSourceTemplateInfoLi)
for _, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "column-model" && item.ColumnModel.Name == "DataSource" {
itemsDict := templateManager.GetColumnModelDataForColumnModel(sessionId, item.ColumnModel, items)
items = itemsDict["items"].([]interface{})
break
}
}
dataBo := map[string]interface{}{
"items": items,
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(map[string]interface{}{
"message": "可能傳入了錯誤的refretorType:" + refretorType,
})
}
示例10: RUnCancelDataCommon
func (c BillAction) RUnCancelDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
dataSourceModelId := c.Params.Get("dataSourceModelId")
formTemplateId := c.Params.Get("formTemplateId")
strId := c.Params.Get("id")
id, err := strconv.Atoi(strId)
if err != nil {
panic(err)
}
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"_id": id,
}
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(formTemplateId)
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
bo, found := querySupport.FindByMap(collectionName, queryMap)
if !found {
panic("UnCancelData, dataSouceModelId=" + dataSourceModelId + ", id=" + strId + " not found")
}
c.setRequestParameterToBo(&bo)
modelTemplateFactory.ConvertDataType(dataSource, &bo)
c.RSetModifyFixFieldValue(sessionId, dataSource, &bo)
c.RActionSupport.RBeforeUnCancelData(sessionId, dataSource, formTemplate, &bo)
mainData := bo["A"].(map[string]interface{})
if fmt.Sprint(mainData["billStatus"]) == "1" {
panic(BusinessError{Message: "單據已經反作廢,不可再次反作廢"})
}
mainData["billStatus"] = 1
_, db := global.GetConnection(sessionId)
txnManager := TxnManager{db}
txnId := global.GetTxnId(sessionId)
_, updateResult := txnManager.Update(txnId, dataSourceModelId, bo)
if !updateResult {
panic("反作廢失敗")
}
c.RActionSupport.RAfterUnCancelData(sessionId, dataSource, formTemplate, &bo)
bo, _ = querySupport.FindByMap(collectionName, queryMap)
usedCheck := UsedCheck{}
usedCheckBo := usedCheck.GetFormUsedCheck(sessionId, dataSource, bo)
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo := columnModelData["relationBo"].(map[string]interface{})
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
UsedCheckBo: usedCheckBo,
DataSource: dataSource,
FormTemplate: formTemplate,
}
}
示例11: FormSchema
// TODO,by test
func (c Console) FormSchema() revel.Result {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
schemaName := c.Params.Get("@name")
strId := c.Params.Get("id")
formStatus := c.Params.Get("formStatus")
copyFlag := c.Params.Get("copyFlag")
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate(schemaName)
result := map[string]interface{}{
"formTemplate": formTemplate,
"id": strId,
"formStatus": formStatus,
"copyFlag": copyFlag,
}
if formTemplate.DataSourceModelId != "" {
// 光有formTemplate不行,還要有model的內容,才可以渲染數據
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(formTemplate.DataSourceModelId)
modelTemplateFactory.ClearReverseRelation(&dataSource)
dataSourceByte, err := json.Marshal(&dataSource)
if err != nil {
panic(err)
}
result["dataSource"] = dataSource
commonUtil := CommonUtil{}
dataSourceJson := string(dataSourceByte)
dataSourceJson = commonUtil.FilterJsonEmptyAttr(dataSourceJson)
result["dataSourceJson"] = template.JS(dataSourceJson)
}
//toolbarBo
toolbarBo := map[string]interface{}{}
for i, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "toolbar" {
toolbarBo[item.Toolbar.Name] = templateManager.GetToolbarBo(item.Toolbar)
}
// 加入主數據集tag,頁麵渲染用
if item.XMLName.Local == "column-model" && item.ColumnModel.DataSetId == "A" {
formTemplate.FormElemLi[i].RenderTag = item.ColumnModel.DataSetId + "_" + fmt.Sprint(i)
}
}
result["toolbarBo"] = toolbarBo
dataBo := map[string]interface{}{}
relationBo := map[string]interface{}{}
result["dataBo"] = dataBo
result["relationBo"] = relationBo
relationBoByte, err := json.Marshal(&relationBo)
if err != nil {
panic(err)
}
// 主數據集的後台渲染
result["masterRenderLi"] = c.getMasterRenderLi(formTemplate)
formTemplateJsonDataArray, err := json.Marshal(&formTemplate)
if err != nil {
panic(err)
}
dataBoByte, err := json.Marshal(&dataBo)
if err != nil {
panic(err)
}
layerBo := templateManager.GetLayerForFormTemplate(sessionId, formTemplate)
iLayerBo := layerBo["layerBo"]
layerBoByte, err := json.Marshal(&iLayerBo)
if err != nil {
panic(err)
}
iLayerBoLi := layerBo["layerBoLi"]
layerBoLiByte, err := json.Marshal(&iLayerBoLi)
if err != nil {
panic(err)
}
commonUtil := CommonUtil{}
userId := commonUtil.GetIntFromString(c.Session["userId"])
sysParam := c.getSysParam(sessionId, userId)
sysParamJson, err := json.Marshal(&sysParam)
if err != nil {
panic(err)
}
result["sysParamJson"] = template.JS(string(sysParamJson))
formTemplateJsonData := string(formTemplateJsonDataArray)
formTemplateJsonData = commonUtil.FilterJsonEmptyAttr(formTemplateJsonData)
result["formTemplateJsonData"] = template.JS(formTemplateJsonData)
dataBoJson := string(dataBoByte)
dataBoJson = commonUtil.FilterJsonEmptyAttr(dataBoJson)
result["dataBoJson"] = template.JS(dataBoJson)
layerBoJson := string(layerBoByte)
layerBoJson = commonUtil.FilterJsonEmptyAttr(layerBoJson)
//.........這裏部分代碼省略.........
示例12: listSelectorCommon
func (c Console) listSelectorCommon(listTemplate *ListTemplate, isGetBo bool, isFromList bool) map[string]interface{} {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
// 1.toolbar bo
templateManager := TemplateManager{}
//templateManager.ApplyDictionaryForQueryParameter(listTemplate)
//templateManager.ApplyTreeForQueryParameter(listTemplate)
toolbarBo := templateManager.GetToolbarForListTemplate(*listTemplate)
paramMap := map[string]string{}
defaultBo := templateManager.GetQueryDefaultValue(*listTemplate)
defaultBoByte, err := json.Marshal(&defaultBo)
if err != nil {
panic(err)
}
for key, value := range defaultBo {
paramMap[key] = value
}
paramMap, _ = c.getCookieDataAndParamMap(sessionId, *listTemplate, isFromList, paramMap)
formDataByte, err := json.Marshal(¶mMap)
if err != nil {
panic(err)
}
// }
pageNo := 1
pageSize := 10
if listTemplate.DataProvider.Size != "" {
pageSizeInt, err := strconv.Atoi(listTemplate.DataProvider.Size)
if err != nil {
panic(err)
}
pageSize = pageSizeInt
}
if c.Params.Get("pageNo") != "" {
pageNoInt, _ := strconv.ParseInt(c.Params.Get("pageNo"), 10, 0)
if pageNoInt > 1 {
pageNo = int(pageNoInt)
}
}
if c.Params.Get("pageSize") != "" {
pageSizeInt, _ := strconv.ParseInt(c.Params.Get("pageSize"), 10, 0)
if pageSizeInt >= 10 {
pageSize = int(pageSizeInt)
}
}
dataBo := map[string]interface{}{
"totalResults": 0,
"items": []interface{}{},
}
relationBo := map[string]interface{}{}
usedCheckBo := map[string]interface{}{}
//if c.Params.Get("@entrance") != "true" {
if isGetBo {
dataBo = templateManager.GetBoForListTemplate(sessionId, listTemplate, paramMap, pageNo, pageSize)
relationBo = dataBo["relationBo"].(map[string]interface{})
//delete(dataBo, "relationBo")
// usedCheck的修改,
if listTemplate.DataSourceModelId != "" {
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(listTemplate.DataSourceModelId)
items := dataBo["items"].([]interface{})
usedCheck := UsedCheck{}
usedCheckBo = usedCheck.GetListUsedCheck(sessionId, dataSource, items, listTemplate.ColumnModel.DataSetId)
}
}
dataBo["usedCheckBo"] = usedCheckBo
dataBoByte, err := json.Marshal(&dataBo)
if err != nil {
panic(err)
}
relationBoByte, err := json.Marshal(&relationBo)
if err != nil {
panic(err)
}
listTemplateByte, err := json.Marshal(listTemplate)
if err != nil {
panic(err)
}
usedCheckByte, err := json.Marshal(&usedCheckBo)
if err != nil {
panic(err)
}
// 係統參數的獲取
commonUtil := CommonUtil{}
userId := commonUtil.GetIntFromString(c.Session["userId"])
sysParam := c.getSysParam(sessionId, userId)
sysParamJson, err := json.Marshal(&sysParam)
if err != nil {
//.........這裏部分代碼省略.........
示例13: SelectorSchema
func (c Console) SelectorSchema() revel.Result {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
schemaName := c.Params.Get("@name")
templateManager := TemplateManager{}
listTemplate := templateManager.GetSelectorTemplate(schemaName)
c.setSelectionMode(&listTemplate)
c.setDisplayField(&listTemplate)
isGetBo := false
if c.Params.Get("format") != "" {
isGetBo = true
}
isFromList := false
result := c.listSelectorCommon(&listTemplate, isGetBo, isFromList)
selectionBo := map[string]interface{}{
"url": templateManager.GetViewUrl(listTemplate),
"Description": listTemplate.Description,
}
ids := c.Params.Get("@id")
if ids != "" {
relationLi := []map[string]interface{}{}
strIdLi := strings.Split(ids, ",")
selectorId := listTemplate.SelectorId
if selectorId == "" {
selectorId = listTemplate.Id
}
for _, item := range strIdLi {
if item != "" {
id, err := strconv.Atoi(item)
if err != nil {
panic(err)
}
relationLi = append(relationLi, map[string]interface{}{
"relationId": id,
"selectorId": selectorId,
})
}
}
templateManager := TemplateManager{}
relationBo := templateManager.GetRelationBo(sessionId, relationLi)
if relationBo[selectorId] != nil {
selectionBo = relationBo[selectorId].(map[string]interface{})
}
}
selectionBoByte, err := json.Marshal(&selectionBo)
if err != nil {
panic(err)
}
commonUtil := CommonUtil{}
selectionBoJson := string(selectionBoByte)
selectionBoJson = commonUtil.FilterJsonEmptyAttr(selectionBoJson)
result["selectionBoJson"] = template.JS(selectionBoJson)
format := c.Params.Get("format")
if strings.ToLower(format) == "json" {
callback := c.Params.Get("callback")
if callback == "" {
dataBo := result["dataBo"]
c.Response.ContentType = "application/json; charset=utf-8"
return c.RenderJson(&dataBo)
}
dataBoText := result["dataBoText"].(string)
c.Response.ContentType = "text/javascript; charset=utf-8"
return c.RenderText(callback + "(" + dataBoText + ");")
} else {
// return c.Render(result)
//c.Response.ContentType = "text/html; charset=utf-8"
c.RenderArgs["result"] = result
return c.RenderTemplate(listTemplate.ViewTemplate.SelectorView)
}
}
示例14: Summary
func (c Console) Summary() revel.Result {
println("session is:", c.Session["userId"])
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
templateManager := TemplateManager{}
formTemplate := templateManager.GetFormTemplate("Console")
// if true {
// xmlDataArray, err := xml.Marshal(&formTemplate)
// if err != nil {
// panic(err)
// }
// return c.RenderXml(&formTemplate)
// }
formTemplateJsonDataArray, err := json.Marshal(&formTemplate)
if err != nil {
panic(err)
}
toolbarBo := map[string]interface{}{}
dataBo := map[string]interface{}{}
{
listTemplateInfoLi := templateManager.GetListTemplateInfoLi()
dataBo["Component"] = getSummaryListTemplateInfoLi(listTemplateInfoLi)
}
{
selectorTemplateInfoLi := templateManager.GetSelectorTemplateInfoLi()
dataBo["Selector"] = getSummarySelectorTemplateInfoLi(selectorTemplateInfoLi)
}
{
formTemplateInfoLi := templateManager.GetFormTemplateInfoLi()
dataBo["Form"] = getSummaryFormTemplateInfoLi(formTemplateInfoLi)
}
{
modelTemplateFactory := ModelTemplateFactory{}
dataSourceInfoLi := modelTemplateFactory.GetDataSourceInfoLi()
dataBo["DataSource"] = getSummaryDataSourceInfoLi(dataSourceInfoLi)
}
for _, item := range formTemplate.FormElemLi {
if item.XMLName.Local == "column-model" {
if dataBo[item.ColumnModel.Name] == nil {
dataBo[item.ColumnModel.Name] = []interface{}{}
}
items := dataBo[item.ColumnModel.Name].([]interface{})
itemsDict := templateManager.GetColumnModelDataForColumnModel(sessionId, item.ColumnModel, items)
items = itemsDict["items"].([]interface{})
dataBo[item.ColumnModel.Name] = items
} else if item.XMLName.Local == "toolbar" {
toolbarBo[item.Toolbar.Name] = templateManager.GetToolbarBo(item.Toolbar)
}
}
dataBoByte, err := json.Marshal(dataBo)
if err != nil {
panic(err)
}
// c.Response.Status = http.StatusOK
// c.Response.ContentType = "text/plain; charset=utf-8"
result := map[string]interface{}{
"formTemplate": formTemplate,
"toolbarBo": toolbarBo,
"dataBo": dataBo,
"formTemplateJsonData": template.JS(string(formTemplateJsonDataArray)),
"dataBoJson": template.JS(string(dataBoByte)),
}
// formTemplate.ViewTemplate.View
// RenderText(text string, objs ...interface{}) Result
viewPath := revel.Config.StringDefault("REVEL_VIEW_PATH", "")
file, err := os.Open(viewPath + "/" + formTemplate.ViewTemplate.View)
defer file.Close()
if err != nil {
panic(err)
}
fileContent, err := ioutil.ReadAll(file)
if err != nil {
panic(err)
}
// c.Response.Out
// return c.RenderTemplate(string(fileContent))
funcMap := map[string]interface{}{
"eq": func(a, b interface{}) bool {
return a == b
},
}
//c.Response.ContentType = "text/html; charset=utf-8"
tmpl, err := template.New("summary").Funcs(funcMap).Parse(string(fileContent))
if err != nil {
panic(err)
}
tmplResult := map[string]interface{}{
"result": result,
}
//.........這裏部分代碼省略.........
示例15: RDeleteDataCommon
func (c BaseDataAction) RDeleteDataCommon() ModelRenderVO {
sessionId := global.GetSessionId()
global.SetGlobalAttr(sessionId, "userId", c.Session["userId"])
global.SetGlobalAttr(sessionId, "adminUserId", c.Session["adminUserId"])
defer global.CloseSession(sessionId)
defer c.RRollbackTxn(sessionId)
userId, err := strconv.Atoi(c.Session["userId"])
if err != nil {
panic(err)
}
dataSourceModelId := c.Params.Get("dataSourceModelId")
formTemplateId := c.Params.Get("formTemplateId")
strId := c.Params.Get("id")
id, err := strconv.Atoi(strId)
if err != nil {
panic(err)
}
_, db := global.GetConnection(sessionId)
querySupport := QuerySupport{}
queryMap := map[string]interface{}{
"_id": id,
}
formTemplate := FormTemplate{}
if formTemplateId != "" {
templateManager := TemplateManager{}
formTemplate = templateManager.GetFormTemplate(formTemplateId)
}
permissionSupport := PermissionSupport{}
permissionQueryDict := permissionSupport.GetPermissionQueryDict(sessionId, formTemplate.Security)
for k, v := range permissionQueryDict {
queryMap[k] = v
}
modelTemplateFactory := ModelTemplateFactory{}
dataSource := modelTemplateFactory.GetDataSource(dataSourceModelId)
// 列表頁也調用這個刪除方法,但是列表頁又沒有傳遞formTemplateId,隻有 gatheringBill等要做赤字判斷,走與form相同的邏輯,才會傳 formTemplateId,
collectionName := modelTemplateFactory.GetCollectionName(dataSource)
bo, found := querySupport.FindByMap(collectionName, queryMap)
if !found {
panic("DeleteData, dataSouceModelId=" + dataSourceModelId + ", id=" + strId + " not found")
}
// 將客戶端傳入的各種參數寫入,程序在業務方法before,after中有可能會用到
c.setRequestParameterToBo(&bo)
modelTemplateFactory.ConvertDataType(dataSource, &bo)
c.RActionSupport.RBeforeDeleteData(sessionId, dataSource, formTemplate, &bo)
usedCheck := UsedCheck{}
if usedCheck.CheckUsed(sessionId, dataSource, bo) {
panic(BusinessError{Message: "已被用,不能刪除"})
}
modelIterator := ModelIterator{}
var result interface{} = ""
modelIterator.IterateDataBo(dataSource, &bo, &result, func(fieldGroupLi []FieldGroup, data *map[string]interface{}, rowIndex int, result *interface{}) {
// if fieldGroupLi[0].IsMasterField() {
usedCheck.DeleteAll(sessionId, fieldGroupLi, *data)
// }
})
txnManager := TxnManager{db}
txnId := global.GetTxnId(sessionId)
_, removeResult := txnManager.Remove(txnId, dataSourceModelId, bo)
if !removeResult {
panic("刪除失敗")
}
c.RActionSupport.RAfterDeleteData(sessionId, dataSource, formTemplate, &bo)
// 列表頁也調用這個刪除方法,但是列表頁又沒有傳遞formTemplateId
relationBo := map[string]interface{}{}
if formTemplateId != "" {
templateManager := TemplateManager{}
columnModelData := templateManager.GetColumnModelDataForFormTemplate(sessionId, formTemplate, bo)
bo = columnModelData["bo"].(map[string]interface{})
relationBo = columnModelData["relationBo"].(map[string]interface{})
}
modelTemplateFactory.ClearReverseRelation(&dataSource)
c.CommitTxn(sessionId)
return ModelRenderVO{
UserId: userId,
Bo: bo,
RelationBo: relationBo,
DataSource: dataSource,
FormTemplate: formTemplate,
}
}