沈阳玫苑物业管理后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

598 lines
18 KiB

package controllers
import (
"encoding/json"
"fmt"
"github.com/kataras/iris"
"lapp_-wy/utils"
"lapp_-wy/web/middleware/glog"
"lapp_-wy/web/middleware/jwts"
"lapp_-wy/web/models"
"lapp_-wy/web/supports"
"regexp"
"strings"
"time"
)
func GetWfApprovalrequestList(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "GetWfApprovalrequestList"
log.Message = "申报查看"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
var data models.WfApprovalrequest
var err error
var pageSize = 10
var pageIndex = 1
if size := ctx.URLParam("pageSize"); size != "" {
pageSize = utils.ValueToInt(size, 0)
}
if index := ctx.URLParam("pageIndex"); index != "" {
pageIndex = utils.ValueToInt(index, 0)
}
data.Requestinfo = ctx.URLParam("requestinfo")
data.Approvaltype = ctx.URLParam("approvaltype")
reqtype, err := ctx.URLParamInt("reqtype")
if err != nil {
fmt.Println("error reqtype:", err)
reqtype = 0
}
data.Reqtype = reqtype
data.Cid = user.Pid
result, count, err := data.GetPage(pageSize, pageIndex)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
res := make(map[string]interface{})
res["data"] = result
res["count"] = count
res["pageIndex"] = pageIndex
res["pageSize"] = pageSize
supports.Ok(ctx, supports.OptionSuccess, res)
}
func GetWfApprovalrequest(ctx iris.Context) {
var me models.WfApprovalrequest
approvalmodelid, _ := ctx.URLParamInt("approvalmodelid")
approvalrequestid, _ := ctx.URLParamInt("approvalrequestid")
me.Approvalmodelid = approvalmodelid
me.Approvalrequestid = approvalrequestid
result, err := me.SelectOne()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, result)
}
func InsertWfApprovalrequest(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "InsertWfApprovalrequest"
log.Message = "添加申报"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
err := ctx.Request().ParseMultipartForm(maxSize)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
form := ctx.Request().MultipartForm
files := form.File["upload[]"]
filePaths := ""
for _, file := range files {
guid := utils.MakeOrderSn(user.Userid)
filePath := "public/uploadfile/" + guid + ".jpg"
savePath := "web/public/uploadfile/" + guid + ".jpg"
savePath, _ = utils.GetCurrentPath(savePath)
// 上传文件至指定目录
err := utils.SaveUploadedFile(file, savePath)
if err != nil {
glog.InfoExtln("图片上传", "err1 is :", err)
return
}
filePaths += filePath + ","
}
filePaths = strings.Trim(filePaths, ",")
data := new(models.WfApprovalrequest)
tem := ctx.FormValue("data")
reg := regexp.MustCompile(`("qty":)\s?"(\d+)"`)
tem = reg.ReplaceAllString(tem, `${1}${2}`)
err = json.Unmarshal([]byte(tem), data)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
return
}
data.Lastuser = user.Userid
data.Credatuz = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
data.Lastmodif = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
data.Status = "1"
if !utils.ValueIsEmpty(filePaths) {
data.Picpath = filePaths
}
data.Cid = user.Pid
err = data.Add()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "添加失败!", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, data)
}
func UpdateWfApprovalrequest(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "UpdateWfApprovalrequest"
log.Message = "申报定义"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
err := ctx.Request().ParseMultipartForm(maxSize)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
form := ctx.Request().MultipartForm
files := form.File["upload[]"]
filPaths := ""
for _, file := range files {
guid := utils.MakeOrderSn(user.Userid)
filPath := "public/uploadfile/" + guid + ".jpg"
savePath := "web/public/uploadfile/" + guid + ".jpg"
savePath, _ = utils.GetCurrentPath(savePath)
// 上传文件至指定目录
err := utils.SaveUploadedFile(file, savePath)
if err != nil {
glog.InfoExtln("图片上传", err)
return
}
filPaths += filPath + ","
}
filPaths = strings.Trim(filPaths, ",")
data := new(models.WfApprovalrequest)
tem := ctx.FormValue("data")
reg := regexp.MustCompile(`("qty":)\s?"(\d+)"`)
tem = reg.ReplaceAllString(tem, `${1}${2}`)
err = json.Unmarshal([]byte(tem), data)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
return
}
if !utils.ValueIsEmpty(filPaths) {
data.Picpath = filPaths
}
data.Lastuser = user.Userid
res := data.Update()
if !res {
supports.Error(ctx, iris.StatusBadRequest, "更新失败", nil)
return
}
supports.Ok(ctx, "修改成功", "")
}
func DeleteWfApprovalrequest(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "DeleteWfApprovalrequest"
log.Message = "删除申报"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
me := new(models.WfApprovalrequest)
approvalmodelid, _ := ctx.URLParamInt("approvalmodelid")
approvalrequestid, _ := ctx.URLParamInt("approvalrequestid")
me.Approvalmodelid = approvalmodelid
me.Approvalrequestid = approvalrequestid
err := me.Del()
if !utils.ValueIsEmpty(err) {
supports.Error(ctx, iris.StatusBadRequest, "删除失败", nil)
return
}
supports.Ok(ctx, "删除成功", "")
}
//审批记录
func GetWfApprovalrequestStepList(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "GetWfApprovalrequestStepList"
log.Message = "审批列表查看"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
var data models.WfApprovalrequestSteplst
var err error
var pageSize = 10
var pageIndex = 1
if size := ctx.URLParam("pageSize"); size != "" {
pageSize = utils.ValueToInt(size, 0)
}
if index := ctx.URLParam("pageIndex"); index != "" {
pageIndex = utils.ValueToInt(index, 0)
}
data.Lastuser = user.Userid
data.Approvestatus, _ = ctx.URLParamInt("approvestatus")
approvaltype := ctx.URLParam("approvaltype")
data.Status = ctx.URLParam("status")
approvetime := ctx.URLParam("approvaltime")
data.Cid = user.Pid
role := user.Role
result, count, err := data.GetPage(pageSize, pageIndex, approvetime, role,approvaltype)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
res := make(map[string]interface{})
res["data"] = result
res["count"] = count
res["pageIndex"] = pageIndex
res["pageSize"] = pageSize
supports.Ok(ctx, supports.OptionSuccess, res)
}
//审批任务
func GetWfApprovalrequestStepData(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "GetWfApprovalrequestStepData"
log.Message = "审批任务列表查看"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
var data models.WfApprovalrequestSteplst
var err error
var pageSize = 10
var pageIndex = 1
if size := ctx.URLParam("pageSize"); size != "" {
pageSize = utils.ValueToInt(size, 0)
}
if index := ctx.URLParam("pageIndex"); index != "" {
pageIndex = utils.ValueToInt(index, 0)
}
requesttime := ctx.URLParam("requesttime")
data.Lastuser = user.Userid
role := user.Role
data.Cid = user.Pid
reqType, err := ctx.URLParamInt("reqtype")
if err != nil {
reqType = 0
}
result, count, err := data.ListPage(pageSize, pageIndex, requesttime, role, reqType)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
res := make(map[string]interface{})
res["data"] = result
res["count"] = count
res["pageIndex"] = pageIndex
res["pageSize"] = pageSize
supports.Ok(ctx, supports.OptionSuccess, res)
}
func GetWfApprovalrequestStepAuditInfo(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "UpdateWfApprovalrequest"
log.Message = "申报定义"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
me := new(models.WfApprovalrequestSteplst)
approvalmodelid, _ := ctx.URLParamInt("approvalmodelid")
approvalrequestid, _ := ctx.URLParamInt("approvalrequestid")
approvallevel, _ := ctx.URLParamInt("approvallevel")
approvestatus, _ := ctx.URLParamInt("approvalstatus")
remark := ctx.URLParam("remark")
me.Remark = remark
me.Approvalmodelid = approvalmodelid
me.Approvalrequestid = approvalrequestid
me.Approvallevel = approvallevel
me.Approvestatus = approvestatus
me.Approver = user.Userid
me.Lastuser = user.Userid
me.Lastmodif = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
me.Credatuz = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
//查询是否有审核权限
role := new(models.WfApprover)
role.Approvalmodelid = approvalmodelid
role.Approvallevel = approvallevel
role.Approver = user.Userid
res := role.AuditInfoRole()
if !res {
supports.Error(ctx, iris.StatusBadRequest, "没有审核权限", nil)
return
}
err := me.AuditInfo()
if err != nil {
glog.InfoExt("审核", "info err3 is:", err)
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, "")
}
func GetWfApprovalrequestStepTreeInfo(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "GetWfApprovalrequestStepAuditInfo"
log.Message = "申报树状图"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
me := new(models.WfApprovalrequestSteplst)
approvalmodelid, _ := ctx.URLParamInt("approvalmodelid")
approvalrequestid, _ := ctx.URLParamInt("approvalrequestid")
me.Approvalmodelid = approvalmodelid
me.Approvalrequestid = approvalrequestid
me.Lastuser = user.Userid
data, err := me.TreeInfo()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, data)
}
//添加子项
func InsertWfApprovalrequestDetail(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "InsertWfApprovalrequest"
log.Message = "添加子项申报"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
err := ctx.Request().ParseMultipartForm(maxSize)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
form := ctx.Request().MultipartForm
files := form.File["upload[]"]
filePaths := ""
for _, file := range files {
guid := utils.MakeOrderSn(user.Userid)
filePath := "public/uploadfile/" + guid + ".jpg"
savePath := "web/public/uploadfile/" + guid + ".jpg"
savePath, _ = utils.GetCurrentPath(savePath)
// 上传文件至指定目录
err := utils.SaveUploadedFile(file, savePath)
if err != nil {
glog.InfoExtln("图片上传", "err1 is :", err)
return
}
filePaths += filePath + ","
}
filePaths = strings.Trim(filePaths, ",")
data := new(models.WfApprovalrequestDetail)
tem := ctx.FormValue("data")
reg := regexp.MustCompile(`("qty":)\s?"(\d+)"`)
tem = reg.ReplaceAllString(tem, `${1}${2}`)
err = json.Unmarshal([]byte(tem), data)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
return
}
data.Lastuser = user.Userid
data.Credatuz = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
data.Lastmodif = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
if !utils.ValueIsEmpty(filePaths) {
data.Picpath = filePaths
}
data.Cid = user.Pid
err = data.Add()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "添加失败!", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, data)
}
func UpdateWfApprovalrequestDetail(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "UpdateWfApprovalrequestDetail"
log.Message = "申报定义"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
err := ctx.Request().ParseMultipartForm(maxSize)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
form := ctx.Request().MultipartForm
files := form.File["upload[]"]
filPaths := ""
for _, file := range files {
guid := utils.MakeOrderSn(user.Userid)
filPath := "public/uploadfile/" + guid + ".jpg"
savePath := "web/public/uploadfile/" + guid + ".jpg"
savePath, _ = utils.GetCurrentPath(savePath)
// 上传文件至指定目录
err := utils.SaveUploadedFile(file, savePath)
if err != nil {
glog.InfoExtln("图片上传", err)
return
}
filPaths += filPath + ","
}
filPaths = strings.Trim(filPaths, ",")
data := new(models.WfApprovalrequestDetail)
tem := ctx.FormValue("data")
reg := regexp.MustCompile(`("qty":)\s?"(\d+)"`)
tem = reg.ReplaceAllString(tem, `${1}${2}`)
err = json.Unmarshal([]byte(tem), data)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
return
}
if !utils.ValueIsEmpty(filPaths) {
data.Picpath = filPaths
}
data.Lastuser = user.Userid
err = data.Update()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "更新失败", nil)
return
}
supports.Ok(ctx, "修改成功", "")
}
func DeleteWfApprovalrequestDetail(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
//日志
log := new(models.LeitServerLog)
log.File = "/controllers/WfApprovalrequest_controller.go"
log.Level = "info"
log.Function = "DeleteWfApprovalrequestDetail"
log.Message = "删除申报"
log.Operator = user.Userid
log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
log.InsertRecord()
me := new(models.WfApprovalrequestDetail)
detailid, _ := ctx.URLParamInt("detailid")
me.Detailid = detailid
err := me.Del()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "删除失败", nil)
return
}
supports.Ok(ctx, "删除成功", "")
}
func GetWfApprovalrequestDetail(ctx iris.Context) {
var me models.WfApprovalrequestDetail
detailid, _ := ctx.URLParamInt("detailid")
me.Detailid = detailid
result, err := me.SelectOne()
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, result)
}