Explorar o código

将 wf 拉到外部进行修改

paddy %!s(int64=4) %!d(string=hai) anos
pai
achega
1c3e9731d9

+ 0 - 223
controllers/gen/SysWfController_gen.go

@@ -1,223 +0,0 @@
-package gen
-
-import (
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
-	"github.com/gin-gonic/gin"
-
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/controllers/partial"
-
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/engine"
-)
-
-// SysWfController operations for SysWf
-type SysWfController struct {
-	apiengine *engine.ApiEngine
-}
-
-func NewSysWfController(e *engine.ApiEngine) *SysWfController {
-	controller := &SysWfController{e}
-	return controller
-}
-
-// WfInstanceList
-// @Title WfInstanceList
-// @Description 分页获取流程实例
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /wf_instance_list  [get]
-func (c *SysWfController) WfInstanceList(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_WfInstanceList(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// InstanceStepCurrent
-// @Title InstanceStepCurrent
-// @Description 实例当前状态
-// @Param	instance_id      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /instance_step_current  [get]
-func (c *SysWfController) InstanceStepCurrent(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_InstanceStepCurrent(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Prerun
-// @Title Prerun
-// @Description 运行实例前奏
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /prerun  [post]
-func (c *SysWfController) Prerun(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Prerun(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Run
-// @Title Run
-// @Description 运行实例
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /run  [post]
-func (c *SysWfController) Run(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Run(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Run
-// @Title Run
-// @Description 运行实例
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /run  [post]
-func (c *SysWfController) NewStep(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_NewStep(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// WfDefinesTag
-// @Title WfDefinesTag
-// @Description 根据tag获取工作流事项
-// @Param	tag      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /wf_defines_tag  [get]
-func (c *SysWfController) WfDefinesTag(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_WfDefinesTag(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// WfDefineForm
-// @Title WfDefineForm
-// @Description 根据表单名称获取表单
-// @Param	form      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /wf_define_form  [get]
-func (c *SysWfController) WfDefineForm(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_WfDefineForm(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Recall
-// @Title Recall
-// @Description 撤回
-// @Param	instance_id      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /recall  [post]
-func (c *SysWfController) Recall(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Recall(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-func (c *SysWfController) Interrupt(ctx *gin.Context) {
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Interrupt(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-func (c *SysWfController) RepairSync(ctx *gin.Context) {
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_RepairSync(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Designer
-// @Title Designer
-// @Description 修改流程定义
-// @Param	define_id      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /designer  [get]
-func (c *SysWfController) Designer(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Designer(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// DefineSave
-// @Title DefineSave
-// @Description 保存流程定义
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /define_save  [post]
-func (c *SysWfController) DefineSave(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_DefineSave(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// DefineCreate
-// @Title DefineCreate
-// @Description 创建流程定义
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /define_create  [post]
-func (c *SysWfController) DefineCreate(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_DefineCreate(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// CreateInstance
-// @Title CreateInstance
-// @Description 创建流程实例
-// @Param	      false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /create_instance  [post]
-func (c *SysWfController) CreateInstance(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_CreateInstance(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// Define
-// @Title Define
-// @Description 获取流程定义
-// @Param	define_id    string  false  ""
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /define  [get]
-func (c *SysWfController) Define(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_Define(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// AllDefine
-// @Title AllDefine
-// @Description 获取所有流程定义
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /all_define  [get]
-func (c *SysWfController) AllDefine(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_AllDefine(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}
-
-// UpdateIntanceForm
-// @Title UpdateIntanceForm
-// @Description 更新流程实例form表单
-// @Success 200 {object} sysReturn
-// @Failure 403 :id is empty
-// @router /update_intance_form  [post]
-func (c *SysWfController) UpdateIntanceForm(ctx *gin.Context) {
-	//
-	db := c.apiengine.BusinessOrmEngine[ctx.GetString("domain")]
-	partial.SysWf_UpdateIntanceForm(&entitys.CtrlContext{c.apiengine, ctx, db, c.apiengine.PlatformOrmEngine})
-}

+ 0 - 382
controllers/partial/SysWfController.go

@@ -1,382 +0,0 @@
-package partial
-
-import (
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
-	//sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
-	//sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
-	"fmt"
-	"strconv"
-
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
-	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/wfclient"
-	//__import_packages__
-)
-
-// _WfInstanceList
-// @Title _WfInstanceList
-// @Description 分页获取流程实例
-// @Param	      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_WfInstanceList(c *entitys.CtrlContext) {
-	page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1"))
-	rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10"))
-	//page :=c.Ctx.GetInt("page")
-	//rows :=c.Ctx.GetInt("rows")
-	sidx := c.Ctx.DefaultQuery("sidx", "")
-	sord := c.Ctx.DefaultQuery("sord", "")
-	filter := c.Ctx.Query("filters")
-
-	bytess, err := wfclient.NewWFClient(c).FetchWFINstances(page, rows, filter, sidx, sord)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-		//c.Ctx.String(200,"",string(bytess))
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _InstanceStepCurrent
-// @Title _InstanceStepCurrent
-// @Description 实例当前状态
-// @Param	instance_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_InstanceStepCurrent(c *entitys.CtrlContext) {
-	instanceId := c.Ctx.Query("instance_id")
-
-	bytess, err := wfclient.NewWFClient(c).FetchCurrentStepByLoginUser(instanceId)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Prerun
-// @Title _Prerun
-// @Description 运行实例前奏
-// @Param	choice      false  ""
-// @Param	instance_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_Prerun(c *entitys.CtrlContext) {
-	obj := models.WfRunData{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).PreRun(obj.InstanceId, obj.Choice)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Run
-// @Title _Run
-// @Description 运行实例
-// @Param	choice      false  ""
-// @Param	instance_id      false  ""
-// @Param	nextStep      false  ""
-// @Param	option      false  ""
-// @Param	users      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_Run(c *entitys.CtrlContext) {
-	obj := models.WfRunData{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).Run(obj.InstanceId, obj.Users, obj.Choice, obj.Opinion, obj.NextStep, c)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _NewStep
-// @Title _NewStep
-// @Description 创建步骤
-// @Param	choice      false  ""
-// @Param	instance_id      false  ""
-// @Param	nextStep      false  ""
-// @Param	option      false  ""
-// @Param	users      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_NewStep(c *entitys.CtrlContext) {
-	obj := models.WfRunData{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).NewStep(obj.InstanceId, obj.Users, obj.Choice, obj.Opinion, obj.NextStep, c)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _WfDefinesTag
-// @Title _WfDefinesTag
-// @Description 根据tag获取工作流事项
-// @Param	tag      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_WfDefinesTag(c *entitys.CtrlContext) {
-	tag := c.Ctx.Query("tag")
-
-	bytess, err := wfclient.NewWFClient(c).FetchDefinesByTag(tag)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _WfDefineForm
-// @Title _WfDefineForm
-// @Description 根据表单名称获取表单
-// @Param	form      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_WfDefineForm(c *entitys.CtrlContext) {
-	form := c.Ctx.Query("form")
-
-	ret := __none_func_sys_wf__(form)
-	if ret {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Recall
-// @Title _Recall
-// @Description 撤回
-// @Param	instance_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_Recall(c *entitys.CtrlContext) {
-	obj := models.WfRunData{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).Recall(obj.InstanceId)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Interrupt
-// @Title _Interrupt
-// @Description 终止
-// @Param	instance_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_Interrupt(c *entitys.CtrlContext) {
-	obj := map[string]interface{}{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-	instanceId := fmt.Sprintf("%v", obj["instance_id"])
-	bytess, err := wfclient.NewWFClient(c).Interrupt(instanceId, obj, c)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Interrupt
-// @Title _Interrupt
-// @Description 终止
-// @Param	instance_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_RepairSync(c *entitys.CtrlContext) {
-	obj := map[string]interface{}{}
-	err := c.Ctx.Bind(&obj)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-		return
-	}
-	instanceId := fmt.Sprintf("%v", obj["instance_id"])
-	bytess, err := wfclient.NewWFClient(c).RepairSync(instanceId, obj, c)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _Designer
-// @Title _Designer
-// @Description 修改流程定义
-// @Param	define_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_Designer(c *entitys.CtrlContext) {
-	define_id := c.Ctx.Query("define_id")
-
-	bytess, err := wfclient.NewWFClient(c).FetchDesignDiagram(define_id)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _DefineSave
-// @Title _DefineSave
-// @Description 保存流程定义
-// @Param	define_id      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_DefineSave(c *entitys.CtrlContext) {
-	PostData := models.WfDefine{}
-	err := c.Ctx.Bind(&PostData)
-
-	bytess, err := wfclient.NewWFClient(c).CreateOrUpdateDefine(PostData.DefineId, PostData.Name, PostData.Descript, PostData.Data, PostData.Form, PostData.Tag, PostData.Code)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _DefineCreate
-// @Title _DefineCreate
-// @Description 创建流程定义
-// @Param	      false  ""
-// @Success 200 {object} models.Account
-// @Failure 403 :id is empty
-func SysWf_DefineCreate(c *entitys.CtrlContext) {
-	PostData := models.WfDefine{}
-	err := c.Ctx.Bind(&PostData)
-
-	bytess, err := wfclient.NewWFClient(c).CreateOrUpdateDefine(PostData.DefineId, PostData.Name, PostData.Descript, PostData.Data, PostData.Form, PostData.Tag, PostData.Code)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil})
-	}
-}
-
-// _CreateInstance
-// @Title _CreateInstance
-// @Description 创建流程实例
-// @Param	      false  ""
-// @Success 200 {object} Account
-// @Failure 403 :id is empty
-func SysWf_CreateInstance(c *entitys.CtrlContext) {
-	var InstanceInfo struct {
-		DefineId string `json:"define_id"`
-		Name     string `json:"name"`
-		FormData string `json:"form_data"`
-	}
-
-	err := c.Ctx.BindJSON(&InstanceInfo)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).CreateInstance(InstanceInfo.DefineId, InstanceInfo.Name, InstanceInfo.FormData)
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-	}
-}
-
-// _Define
-// @Title _Define
-// @Description 获取流程定义
-// @Param	define_id    string  false  ""
-// @Success 200 {object} Account
-// @Failure 403 :id is empty
-func SysWf_Define(c *entitys.CtrlContext) {
-	define_id := c.Ctx.Query("define_id")
-
-	bytess, err := wfclient.NewWFClient(c).FetchDefine(define_id)
-	fmt.Println(string(bytess))
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-	}
-}
-
-// _AllDefine
-// @Title _AllDefine
-// @Description 获取所有流程定义
-// @Success 200 {object} Account
-// @Failure 403 :id is empty
-func SysWf_AllDefine(c *entitys.CtrlContext) {
-
-	bytess, err := wfclient.NewWFClient(c).FetchAllDefines()
-
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-	}
-}
-
-// _UpdateIntanceForm
-// @Title _UpdateIntanceForm
-// @Description 更新流程实例form表单
-// @Success 200 {object} Account
-// @Failure 403 :id is empty
-func SysWf_UpdateIntanceForm(c *entitys.CtrlContext) {
-
-	var data struct {
-		InstanceId string `json:"instance_id"`
-		FormData   string `json:"form_data"`
-	}
-	err := c.Ctx.BindJSON(&data)
-	if err != nil {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
-		return
-	}
-
-	bytess, err := wfclient.NewWFClient(c).UpdateInstanceForm(data.InstanceId, data.FormData)
-	if err == nil {
-		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", string(bytess)})
-	} else {
-		c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), ""})
-	}
-
-}
-
-func __none_func_sys_wf__(params ...interface{}) bool {
-	return true
-}

+ 0 - 105
light-apiengine.xml

@@ -791,111 +791,6 @@
                 </return>
             </api>
         </controller>
-        <controller name="sys_wf" desc="工作流">
-			<api name="wf_instance_list" desc="分页获取流程实例" method="get">
-				<param ref="$get_page_info"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="instance_step_current" desc="实例当前状态" method="get">
-				<param name="instance_id" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="prerun" desc="运行实例前奏" method="post">
-				<param ref="$wf_run_data"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="run" desc="运行实例" method="post">
-				<param ref="$wf_run_data"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="wf_defines_tag" desc="根据tag获取工作流事项" method="get">
-				<param name="tag" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="wf_define_form" desc="根据表单名称获取表单" method="get">
-				<param name="form" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="recall" desc="撤回" method="post">
-				<param name="instance_id" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-            </api>
-			<api name="interrupt" desc="终止" method="post">
-				<param name="instance_id" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="designer" desc="修改流程定义" method="get">
-				<param name="define_id" ></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="define_save" desc="保存流程定义" method="post">
-				<param ref="$wf_define"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="define_create" desc="创建流程定义" method="post">
-				<param ref="$wf_define"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="create_instance" desc="创建流程实例" method="post">
-				<param ref="$wf_define"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="define" desc="获取流程定义" method="get">
-				<param name="define_id" type="string"></param>
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-			<api name="all_define" desc="获取所有流程定义" method="get">
-				<return>
-					<success ref="$sys_return" desc=""></success>
-					<failure ref="$sys_return" desc=""></failure>
-				</return>
-			</api>
-            <api name="update_intance_form" desc="更新流程实例form表单" method="post">
-                <return>
-                    <success ref="$sys_return" desc=""></success>
-                    <failure ref="$sys_return" desc=""></failure>
-                </return>
-            </api>
-		</controller>
 		<controller name="sys_public" desc="开放接口" skip_login="true">
             <api name="wx_echo" desc="微信echo" method="get">
             </api>

+ 0 - 73
routers/sys_wf_gen.go

@@ -1,73 +0,0 @@
-package routers
-
-import (
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/controllers/gen"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/engine"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/middleware"
-)
-
-func init() {
-	addRegisterHandler(registerSysWfRouter)
-}
-
-func registerSysWfRouter(e *engine.ApiEngine) {
-	api := e.GinEngine.Group("/api")
-	v1 := api.Group("/v1/sys_wf")
-	v1.Use(middleware.LoginWare())
-	if len(_router["sys_wf"]) > 0 {
-		v1.Use(_router["sys_wf"]...)
-	}
-	ctrler := gen.NewSysWfController(e)
-
-	v1.GET("/wf_instance_list", ctrler.WfInstanceList)
-	//v1.POST("/wf_instance_list",ctrler.WfInstanceList)
-
-	v1.GET("/instance_step_current", ctrler.InstanceStepCurrent)
-	//v1.POST("/instance_step_current",ctrler.InstanceStepCurrent)
-
-	//v1.GET("/prerun",ctrler.Prerun)
-	v1.POST("/prerun", ctrler.Prerun)
-
-	//v1.GET("/run",ctrler.Run)
-	v1.POST("/run", ctrler.Run)
-
-	v1.GET("/wf_defines_tag", ctrler.WfDefinesTag)
-	//v1.POST("/wf_defines_tag",ctrler.WfDefinesTag)
-
-	v1.GET("/wf_define_form", ctrler.WfDefineForm)
-	//v1.POST("/wf_define_form",ctrler.WfDefineForm)
-
-	//v1.GET("/recall",ctrler.Recall)
-	v1.POST("/recall", ctrler.Recall)
-
-	//v1.GET("/recall",ctrler.Recall)
-	v1.POST("/interrupt", ctrler.Interrupt)
-
-	//v1.GET("/recall",ctrler.Recall)
-	v1.POST("/repair", ctrler.RepairSync)
-
-	//v1.GET("/newstep",ctrler.Recall)
-	v1.POST("/newstep", ctrler.NewStep)
-
-	v1.GET("/designer", ctrler.Designer)
-	//v1.POST("/designer",ctrler.Designer)
-
-	//v1.GET("/define_save",ctrler.DefineSave)
-	v1.POST("/define_save", ctrler.DefineSave)
-
-	//v1.GET("/define_create",ctrler.DefineCreate)
-	v1.POST("/define_create", ctrler.DefineCreate)
-
-	//v1.GET("/create_instance",ctrler.CreateInstance)
-	v1.POST("/create_instance", ctrler.CreateInstance)
-
-	v1.GET("/define", ctrler.Define)
-	//v1.POST("/define",ctrler.Define)
-
-	v1.GET("/all_define", ctrler.AllDefine)
-	//v1.POST("/all_define",ctrler.AllDefine)
-
-	//v1.GET("/update_intance_form",ctrler.UpdateIntanceForm)
-	v1.POST("/update_intance_form", ctrler.UpdateIntanceForm)
-
-}

+ 0 - 49
wfclient/callback.go

@@ -1,49 +0,0 @@
-package wfclient
-
-import (
-	"fmt"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
-)
-
-type CallbackArg struct {
-	DefineId     string
-	InstanceId   string
-	DefineName   string
-	InstanceName string
-	FormData     string
-	Choice       string
-	Executor     string
-	UserId       string
-	Context      *entitys.CtrlContext
-}
-
-var _callbackMap   map[string]func(*CallbackArg)
-
-func init(){
-	_callbackMap = make(map[string]func(*CallbackArg))
-}
-
-
-/**
- * @brief: add callback
- * @param1: key
- * @param2: callback
- */
-func AddWFCallback(key string, cb func(*CallbackArg)) {
-	if _, ok := _callbackMap[key]; !ok {
-		_callbackMap[key] = cb
-	} else {
-		fmt.Println("callback", key, "does already exist")
-	}
-}
-
-/**
- * @brief:调用calblack
- * @param1 key:key
- * @param2 arg:参数
- */
-func callWFCallback(key string, arg *CallbackArg){
-	if callback, ok := _callbackMap[key]; ok{
-		callback(arg)
-	}
-}

+ 0 - 575
wfclient/client.go

@@ -1,575 +0,0 @@
-package wfclient
-
-import (
-	"encoding/base64"
-	"encoding/json"
-	"encoding/xml"
-	"errors"
-	"fmt"
-	"net/http"
-	"strconv"
-	"strings"
-
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
-	"git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
-)
-
-type Filter struct {
-	GroupOp string         `json:"groupOp"`
-	Rules   []*FilterField `json:"rules"`
-}
-
-type FilterField struct {
-	Field string `json:"field"`
-	Op    string `json:"op"`
-	Data  string `json:"data"`
-}
-
-type WFClient struct {
-	endpoint      string
-	authorization string
-	userId        string
-	username      string
-	token         string
-	domain        string
-}
-
-var _wfendpoint = ""
-
-func init() {
-	_wfendpoint = config.AppConfig.GetKey("wfendpoint")
-}
-
-/**
- * @brief: single instance
- */
-func NewWFClient(c *entitys.CtrlContext) *WFClient {
-	tk, _ := c.Ctx.Get("token")
-	token := tk.(*entitys.Token)
-	instance := &WFClient{}
-	instance.endpoint = _wfendpoint
-	instance.authorization, _ = instance.createAuthorization(token.LoginID, token.AccessToken, token.Domain)
-	instance.userId = token.UserId
-	instance.token = token.AccessToken
-	HttpClientInstance().setRequestInterseptor(instance.wfReqInterseptor)
-	return instance
-}
-
-/**
- * @brief: init
- * @param1 endpoint: endpoint of wf service, do not end with /; such as http://wf.qianqiusoft.com
- * @param2 userId: user's id
- * @param3 username: username
- * @param4 token: token
- * @param5 domain: domain, its default value is qianqiusoft.com
- * @return1: information of error, nil if everything is all right
- */
-func (w *WFClient) Init(endpoint, userId, username, token, domain string) error {
-	if w.token == token && w.authorization != "" {
-		fmt.Println("wfclient token", w.token, "does already exist, token is", w.authorization)
-		return nil
-	}
-
-	var err error = nil
-	w.endpoint = endpoint
-	w.userId = userId
-	w.authorization, err = w.createAuthorization(username, token, domain)
-	w.token = token
-	if err != nil {
-		return err
-	} else {
-		return nil
-	}
-}
-
-/**
- * @brief: create or update the define,
- * @param1 defineId: id of define, if the define with id does already exist, update the define
- * @param2 defineName: name of define
- * @param3 defineDesc: description of define
- * @param4 diagram: diagram of define
- * @param5 formName: name of the form
- * @return1 information of error
- */
-func (w *WFClient) CreateOrUpdateDefine(defineId, defineName, defineDesc, diagram, formName, tag, code string) ([]byte, error) {
-	if defineId == "" {
-		defineId = utils.NewUUID()
-	}
-	url := w.getFullUrl(fmt.Sprintf("api/wf_define/%s", defineId))
-	fmt.Println("----url:", url)
-	params := make(map[string]string)
-	params["define_id"] = defineId
-	params["name"] = defineName
-	params["descript"] = defineDesc
-	params["data"] = diagram
-	params["form"] = formName
-	params["code"] = code
-	params["tag"] = tag
-
-	return HttpClientInstance().post(url, params, nil)
-}
-
-func (w *WFClient) FetchDefine(defineId string) ([]byte, error) {
-	url := w.getFullUrl("api/wf_define/" + defineId)
-
-	fmt.Println(url)
-
-	return HttpClientInstance().get(url, nil, nil)
-}
-
-func (w *WFClient) FetchAllDefines() ([]byte, error) {
-	url := w.getFullUrl("api/wf_define/all")
-
-	return HttpClientInstance().get(url, nil, nil)
-}
-
-/**
- * @brief: get the flow define by tag
- * @param1 tag: tag of the define, split by ,
- * @return1: content of response
- * @return2: information of error, nil if everything is all right
- */
-func (w *WFClient) FetchDefinesByTag(tag string) ([]byte, error) {
-	url := w.getFullUrl("api/wf_define/list/tag")
-	params := make(map[string]string)
-	params["tag"] = tag
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: get the flow design diagram
- * @param1 id: id of flow define
- * @return1: content of response
- * @return2: information of error, nil if everything is all right
- */
-func (w *WFClient) FetchDesignDiagram(defineId string) ([]byte, error) {
-	url := w.getFullUrl(fmt.Sprintf("api/wf_define/designer/%s", defineId))
-
-	return HttpClientInstance().get(url, nil, nil)
-}
-
-/**
- * @brief: create a wf instance
- * @param1 defineId: id of wf define
- * @param2 name: name of instance
- * @param3 formData: data to submit
- * @return1: content of response
- * @return2: error
- */
-func (w *WFClient) CreateInstance(defineId, name, formData string) ([]byte, error) {
-	url := w.getFullUrl("api/wf_instance")
-
-	params := make(map[string]string)
-	params["define_id"] = defineId
-	params["name"] = name
-	params["form_data"] = formData
-
-	return HttpClientInstance().post(url, params, nil)
-}
-
-// 更新流程实例表单
-func (w *WFClient) UpdateInstanceForm(instanceId, formData string) ([]byte, error) {
-	url := w.getFullUrl("api/wf_instance/updateFormData")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-	params["form_data"] = formData
-
-	return HttpClientInstance().post(url, params, nil)
-}
-
-type Choice struct {
-	XMLName xml.Name   `xml:"choice"json:"-"`
-	Name    string     `json:"name"xml:"name"`
-	Trans   Transition `json:"trans"xml:"transition"`
-}
-
-type Transition struct {
-	XMLName    xml.Name     `xml:"transition"json:"-"`
-	Name       string       `json:"name"xml:"name"`
-	To         string       `json:"to"xml:"to"`
-	Points     string       `json:"-"xml:"points"`
-	Conditions []*Condition `json:"conditions,omitempty"`
-	Callback   string       `json:"callback"xml:"callback"`
-}
-
-type Condition struct {
-	Operator string `json:"operator"xml:"operator"`
-	DataKey  string `json:"data_key"xml:"data_key"`
-	Value    string `json:"value"xml:"value"`
-	Logic    string `json:"logic"xml:"logic"`
-}
-
-/**
- * @brief: run the wf instance
- * @param1 instanceId: id of instance
- * @param2 userId: approver id
- * @param3 choice: choice
- * @param4 options: options
- * @return1 content of response
- * @return2 error
- */
-func (w *WFClient) Run(instanceId, userId, choice, options, nextStep string, c *entitys.CtrlContext) ([]byte, error) {
-	url := w.getFullUrl("api/wf_instance/run")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-	params["users"] = userId
-	if choice != "" {
-		params["choice"] = choice
-	}
-	if options != "" {
-		params["opinion"] = options
-	}
-	if nextStep != "" {
-		params["nextStep"] = nextStep
-	}
-
-	var RunRespInfo struct {
-		DefineId      string      `json:"define_id"`
-		InstanceId    string      `json:"instance_id"`
-		DefineName    string      `json:"define_name"`
-		InstanceName  string      `json:"instance_name"`
-		Choices       []*Choice   `json:"choices"`
-		Transition    *Transition `json:"transition"`
-		StepType      string      `json:"step_type"`
-		FormData      string      `json:"form_data"`
-		StepName      string      `json:"step_name"`
-		ActorType     string      `json:"actor_type"`
-		Executor      string      `json:"executor"`
-		StartCallback string      `json:"start_callback"`
-	}
-
-	bytess, err := HttpClientInstance().post(url, params, nil)
-	if err != nil {
-		return nil, err
-	}
-	//fmt.Println("------------->>>>>--------", string(bytess))
-	err = json.Unmarshal(bytess, &RunRespInfo)
-	if err != nil {
-		return nil, err
-	}
-
-	fmt.Println("------------------------------------->121", RunRespInfo.StartCallback)
-
-	// 节点回调
-	callbacks := strings.Split(RunRespInfo.StartCallback, ",")
-	for _, callbackKye := range callbacks {
-		callWFCallback(callbackKye, &CallbackArg{
-			DefineId:     RunRespInfo.DefineId,
-			InstanceId:   RunRespInfo.InstanceId,
-			DefineName:   RunRespInfo.DefineName,
-			InstanceName: RunRespInfo.InstanceName,
-			FormData:     RunRespInfo.FormData,
-			Choice:       choice,
-			Executor:     RunRespInfo.Executor,
-			UserId:       w.userId,
-			Context:      c,
-		})
-	}
-
-	// 连线回调
-	linkCallbacks := []string{}
-	if RunRespInfo.StepType == "begin" || RunRespInfo.StepType == "normal" {
-		linkCallbacks = strings.Split(RunRespInfo.Transition.Callback, ",")
-	} else {
-		for _, c := range RunRespInfo.Choices {
-			if c.Name == choice {
-				linkCallbacks = strings.Split(c.Trans.Callback, ",")
-			}
-		}
-	}
-
-	for _, callbackKye := range linkCallbacks {
-		callWFCallback(callbackKye, &CallbackArg{
-			DefineId:     RunRespInfo.DefineId,
-			InstanceId:   RunRespInfo.InstanceId,
-			DefineName:   RunRespInfo.DefineName,
-			InstanceName: RunRespInfo.InstanceName,
-			FormData:     RunRespInfo.FormData,
-			Choice:       choice,
-			Executor:     RunRespInfo.Executor,
-			UserId:       w.userId,
-			Context:      c,
-		})
-	}
-
-	return []byte{}, nil
-}
-
-/**
- * @brief: run the wf instance
- * @param1 instanceId: id of instance
- * @param2 userId: approver id
- * @param3 choice: choice
- * @param4 options: options
- * @return1 content of response
- * @return2 error
- */
-func (w *WFClient) NewStep(instanceId, userId, choice, options, nextStep string, c *entitys.CtrlContext) ([]byte, error) {
-	url := w.getFullUrl("api/wf_instance/newstep")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-	params["users"] = userId
-	if choice != "" {
-		params["choice"] = choice
-	}
-	if options != "" {
-		params["opinion"] = options
-	}
-	if nextStep != "" {
-		params["nextStep"] = nextStep
-	}
-
-	bytess, err := HttpClientInstance().post(url, params, nil)
-	if err != nil {
-		return nil, err
-	}
-
-	return bytess, err
-}
-
-/**
- * @brief: pre the wf instance
- * @param1 instanceId: id of instance
- * @param2 choice: choice of step
- * @return1 content of response
- * @return2 error
- */
-func (w *WFClient) PreRun(instanceId, choice string) ([]byte, error) {
-	url := w.getFullUrl("api/wf_instance/prerun")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-	params["choice"] = choice
-
-	return HttpClientInstance().post(url, params, nil)
-}
-
-/**
- * @brief: fetch my instances
- * @param1 page: page num, start from 1
- * @param2 rows: count per page, its default value is 10000
- * @return1: content of response
- * @return2: information of error
- */
-func (w *WFClient) FetchMyInstances(page, rows int) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/mime")
-
-	params := make(map[string]string)
-	params["page"] = strconv.FormatInt(int64(page), 10)
-	params["pageSize"] = strconv.FormatInt(int64(rows), 10)
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: fetch current step of login user
- * @param1 instanceId: id of instance
- * @return1 content of response
- * @return2 error
- */
-func (w *WFClient) FetchCurrentStepByLoginUser(instanceId string) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/user/current")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: fetch current step of instance
- * @param1 instanceId: id of instance
- * @return1 content of response
- * @return2 error
- */
-func (w *WFClient) FetchCurrentStep(instanceId string) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/current")
-
-	params := make(map[string]string)
-	params["instance_id"] = instanceId
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: fetch my to do list
- * @param1 page: page num, start from 1
- * @param2 rows: count per page, its default value is 10000
- * @return1: content of response
- * @return2: information of error
- */
-func (w *WFClient) FetchToDoList(page, rows int) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/todo")
-
-	params := make(map[string]string)
-	params["page"] = strconv.FormatInt(int64(page), 10)
-	params["pageSize"] = strconv.FormatInt(int64(rows), 10)
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: fetch my done list
- * @param1 page: page num, start from 1
- * @param2 rows: count per page, its default value is 10000
- * @return1: content of response
- * @return2: information of error
- */
-func (w *WFClient) FetchDoneList(page, rows int) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/done")
-
-	params := make(map[string]string)
-	params["page"] = strconv.FormatInt(int64(page), 10)
-	params["pageSize"] = strconv.FormatInt(int64(rows), 10)
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-func (w *WFClient) FetchWFINstances(page, rows int, filters, sidx, sord string) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/list")
-	fmt.Println("wf url: ", url)
-	params := make(map[string]string)
-	params["page"] = strconv.FormatInt(int64(page), 10)
-	params["rows"] = strconv.FormatInt(int64(rows), 10)
-	params["sidx"] = sidx
-	params["sord"] = sord
-	params["filters"] = filters
-
-	return HttpClientInstance().get(url, params, nil)
-}
-
-/**
- * @brief: wf req interseptor
- * @param1 r: http req
- */
-func (w *WFClient) wfReqInterseptor(r *http.Request) {
-	//r.Header.Add("Authorization", w.authorization)
-	fmt.Println("header add token", w.token)
-	r.Header.Add("token", w.token)
-}
-
-/**
- * @brief: create the authorization by username, token and domain
- * @param2 username: username
- * @param3 token: token
- * @param4 domain: domain, its default value is qianqiusoft.com
- * @return1 authorization, such as Bearer adfeadfsdfsdffds
- * @return2 information of error, nil if everything is all right
- */
-func (w *WFClient) createAuthorization(username, token, domain string) (string, error) {
-	if username == "" || token == "" {
-		return "", errors.New("username or token is empty")
-	}
-	if domain == "" {
-		domain = "qianqiusoft.com"
-	}
-	w.username = username
-	w.token = token
-	w.domain = domain
-
-	tstr := fmt.Sprintf("%s:%s:%s", username, token, domain)
-	tbase64str := base64.StdEncoding.EncodeToString([]byte(tstr))
-
-	finalStr := "sso-auth-token:" + tbase64str
-	return "Bearer " + base64.StdEncoding.EncodeToString([]byte(finalStr)), nil
-}
-
-/**
- * @brief: get full url
- * @param1 path: api path, such as /api/wf_instance/done
- * @return1 url with query params
- */
-func (w *WFClient) getFullUrl(path string) string {
-	path = strings.TrimLeft(path, "/")
-	return fmt.Sprintf("%s/%s", w.endpoint, path)
-}
-
-//撤回
-func (w *WFClient) Recall(definedId string) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/recall")
-
-	params := make(map[string]string)
-	params["instance_id"] = definedId
-
-	return HttpClientInstance().post(url, params, nil)
-}
-
-//终止
-func (w *WFClient) Interrupt(definedId string, formData map[string]interface{}, c *entitys.CtrlContext) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_instance/interrupt")
-	params := make(map[string]string)
-	params["instance_id"] = definedId
-	var RunRespInfo struct {
-		DefineId      string      `json:"define_id"`
-		InstanceId    string      `json:"instance_id"`
-		DefineName    string      `json:"define_name"`
-		InstanceName  string      `json:"instance_name"`
-		Choices       []*Choice   `json:"choices"`
-		Transition    *Transition `json:"transition"`
-		StepType      string      `json:"step_type"`
-		FormData      string      `json:"form_data"`
-		StepName      string      `json:"step_name"`
-		ActorType     string      `json:"actor_type"`
-		Executor      string      `json:"executor"`
-		StartCallback string      `json:"start_callback"`
-	}
-	bytess, err := HttpClientInstance().post(url, params, nil)
-	if err != nil {
-		return nil, err
-	}
-	callWFCallback("interrupt", &CallbackArg{
-		DefineId:     RunRespInfo.DefineId,
-		InstanceId:   definedId,
-		DefineName:   RunRespInfo.DefineName,
-		InstanceName: RunRespInfo.InstanceName,
-		FormData:     formData["form_data"].(string),
-		Executor:     RunRespInfo.Executor,
-		UserId:       w.userId,
-		Context:      c,
-	})
-	return bytess, err
-}
-
-//同步修复回调
-func (w *WFClient) RepairSync(definedId string, formData map[string]interface{}, c *entitys.CtrlContext) ([]byte, error) {
-	var RunRespInfo struct {
-		DefineId      string      `json:"define_id"`
-		InstanceId    string      `json:"instance_id"`
-		DefineName    string      `json:"define_name"`
-		InstanceName  string      `json:"instance_name"`
-		Choices       []*Choice   `json:"choices"`
-		Transition    *Transition `json:"transition"`
-		StepType      string      `json:"step_type"`
-		FormData      string      `json:"form_data"`
-		StepName      string      `json:"step_name"`
-		ActorType     string      `json:"actor_type"`
-		Executor      string      `json:"executor"`
-		StartCallback string      `json:"start_callback"`
-	}
-	callWFCallback("repairSync", &CallbackArg{
-		DefineId:     RunRespInfo.DefineId,
-		InstanceId:   definedId,
-		DefineName:   RunRespInfo.DefineName,
-		InstanceName: RunRespInfo.InstanceName,
-		FormData:     formData["form_data"].(string),
-		Executor:     RunRespInfo.Executor,
-		UserId:       w.userId,
-		Context:      c,
-	})
-	return []byte{}, nil
-}
-
-//撤回
-func (w *WFClient) Delete(definedId string) ([]byte, error) {
-	url := w.getFullUrl("/api/wf_define/delete")
-
-	params := make(map[string]string)
-	params["define_id"] = definedId
-
-	return HttpClientInstance().post(url, params, nil)
-}

+ 0 - 169
wfclient/http.go

@@ -1,169 +0,0 @@
-package wfclient
-
-import (
-	"bytes"
-	"crypto/tls"
-	"errors"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"mime/multipart"
-	"net/http"
-	"net/url"
-	"os"
-	"strings"
-	"time"
-)
-
-type HttpClient struct {
-	reqInterseptor func(r *http.Request)
-}
-
-var httpInstance *HttpClient = nil
-
-/**
- * @brief: single instance
- */
-func HttpClientInstance() *HttpClient {
-	if httpInstance == nil {
-		httpInstance = &HttpClient{}
-	}
-	return httpInstance
-}
-
-/**
- * @brief: set interseptor of request
- * @param1 interseptor: interseptor
- */
-func (h *HttpClient) setRequestInterseptor(interseptor func(r *http.Request)) {
-	h.reqInterseptor = interseptor
-}
-
-/**
- * @brief http get
- * @param1 url: url
- * @param2 params: param array, key-value
- * @param3 headers: header array
- * @return1: content of response
- * @return2: error
- */
-func (h *HttpClient) get(url string, params map[string]string, headers map[string]string) ([]byte, error) {
-	return h.doRequest("GET", url, params, headers)
-}
-
-// post
-func (h *HttpClient) post(url string, params map[string]string, headers map[string]string) ([]byte, error) {
-	return h.doRequest("POST", url, params, headers)
-}
-
-// 模拟form提交数据,包含,上传文件
-func (h *HttpClient) postFormWithFile(url string, params map[string]string, paramName, path string) ([]byte, error) {
-	file, err := os.Open(path)
-	if err != nil {
-		return nil, err
-	}
-	defer file.Close()
-	return h.postFormWithReader(url, params, paramName, path, file)
-}
-
-// 模拟form提交数据,包含,上传文件
-func (h *HttpClient) postFormWithReader(url string, params map[string]string, fileField, fileName string, r io.Reader) ([]byte, error) {
-	body := &bytes.Buffer{}
-	writer := multipart.NewWriter(body)
-	part, err := writer.CreateFormFile(fileField, fileName)
-	if err != nil {
-		return nil, err
-	}
-	_, err = io.Copy(part, r)
-	for key, val := range params {
-		_ = writer.WriteField(key, val)
-	}
-	err = writer.Close()
-	if err != nil {
-		return nil, err
-	}
-	request, err := http.NewRequest("POST", url, body)
-	request.Header.Set("Content-Type", writer.FormDataContentType())
-	return h.getResponse(request)
-}
-
-func (h *HttpClient) doRequest(method string, url string, params map[string]string, headers map[string]string) ([]byte, error) {
-	bodystr := ""
-	var r http.Request
-	if method == "GET" {
-		url = h.getUrlWithParams(url, params)
-	} else {
-		bodystr = h.getBobyStr(&r, params)
-	}
-	request, err := http.NewRequest(method, url, strings.NewReader(bodystr))
-	if err != nil {
-		return []byte(""), err
-	}
-	if headers == nil || len(headers) <= 0 {
-		request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
-		request.Header.Set("Connection", "Keep-Alive")
-	} else {
-		for k, v := range headers {
-			request.Header.Set(k, v)
-		}
-	}
-	if h.reqInterseptor != nil {
-		h.reqInterseptor(request)
-	}
-	return h.getResponse(request)
-}
-
-func (h *HttpClient) getResponse(request *http.Request) ([]byte, error) {
-	if request == nil {
-		return []byte(""), errors.New("request is nil")
-	}
-	tr := &http.Transport{
-		TLSClientConfig:       &tls.Config{InsecureSkipVerify: true},
-		ResponseHeaderTimeout: time.Second * 60,
-		DisableKeepAlives:     true,
-	}
-	client := http.Client{Transport: tr}
-	var resp *http.Response
-	var err error
-	resp, err = client.Do(request)
-	if err != nil {
-		//log.Println("http.Do failed,[err=%s][url=%s]", err, url)
-		return []byte(""), err
-	}
-	if resp.Status != "200 OK" {
-		b, _ := ioutil.ReadAll(resp.Body)
-		return []byte(""), errors.New(string(b))
-	}
-	defer resp.Body.Close()
-	b, err := ioutil.ReadAll(resp.Body)
-	if err != nil {
-		return []byte(""), err
-	}
-	return b, err
-}
-
-func (h *HttpClient) getBobyStr(r *http.Request, params map[string]string) string {
-	r.ParseForm()
-	if params != nil {
-		for k, v := range params {
-			r.Form.Add(k, v)
-		}
-	}
-	return strings.TrimSpace(r.Form.Encode())
-}
-
-func (h *HttpClient) getUrlWithParams(urlstr string, params map[string]string) string {
-	if params != nil && len(params) > 0 {
-		i := strings.Index(urlstr, "?")
-		if i < 0 {
-			urlstr += "?"
-		} else {
-			urlstr += "&"
-		}
-		for k, v := range params {
-			urlstr += fmt.Sprintf("%s=%s&", k, url.QueryEscape(v))
-		}
-		urlstr = urlstr[:len(urlstr)-1]
-	}
-	return urlstr
-}