Files
jx-callback/controllers/financial.go
2019-01-18 10:39:00 +08:00

94 lines
3.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package controllers
import (
"fmt"
"io"
"github.com/astaxie/beego"
"git.rosy.net.cn/jx-callback/business/jxstore/financial"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
)
type FinancialController struct {
beego.Controller
}
// @Title 发送文件给门店
// @Description 发送文件给门店调用GET方法得到浏览器端参考的上传HTML实现userfiles
// @Param token header string true "认证token"
// @Param title query string true "消息标题"
// @Param isAsync query bool false "是否异步,缺省是同步"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /SendFilesToStores [post,get]
func (c *FinancialController) SendFilesToStores() {
if c.Ctx.Input.IsGet() {
w := c.Ctx.ResponseWriter
// 上传页面
w.Header().Add("Content-Type", "text/html")
w.WriteHeader(200)
html := `
<form enctype="multipart/form-data" action="/v2/financial/SendFilesToStores" method="POST">
Send this file: <input name="userfiles" multiple accept="*" type="file" />
<input type="submit" value="Send File" />
</form>
`
io.WriteString(w, html)
} else if c.Ctx.Input.IsPost() {
c.callSendFilesToStores(func(params *tFinancialSendFilesToStoresParams) (retVal interface{}, errCode string, err error) {
r := c.Ctx.Request
files := r.MultipartForm.File["userfiles"]
retVal, err = financial.SendFilesToStores(params.Ctx, files, params.Title, params.IsAsync, params.Ctx.GetUserName())
return retVal, "", err
})
}
}
// @Title 查询门店账单
// @Description 查询门店账单
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetStoreBills [get]
func (c *FinancialController) GetStoreBills() {
c.callGetStoreBills(func(params *tFinancialGetStoreBillsParams) (retVal interface{}, errCode string, err error) {
retVal, err = financial.GetStoreBills(params.Ctx, params.StoreID)
return retVal, "", err
})
}
// @Param token header string true "认证token"
// @Title 显示门店最新账单
// @Description 显示门店最新账单
// @Param storeID query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /ShowStoreLatestBill [get]
func (c *FinancialController) ShowStoreLatestBill() {
var bills []*legacymodel.StoreBill
w := c.Ctx.ResponseWriter
w.Header().Add("Content-Type", "text/html")
w.WriteHeader(200)
htmlResult := ""
html := `
%s
`
c.callShowStoreLatestBill(func(params *tFinancialShowStoreLatestBillParams) (retVal interface{}, errCode string, err error) {
bills, err = financial.GetStoreBills(params.Ctx, params.StoreID)
retVal = bills
if len(bills) == 0 {
err = fmt.Errorf("门店%d没有账单", params.StoreID)
} else {
htmlResult = fmt.Sprintf(html, bills[0].Url)
}
return retVal, model.ErrorCodeIgnore, err
})
if htmlResult != "" {
io.WriteString(w, htmlResult)
}
}