123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- package book
-
- import (
- "errors"
- "fmt"
- "io/ioutil"
- "spaceofcheng/services/controllers"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/service/book"
- "strings"
-
- "github.com/tealeg/xlsx"
- )
-
- // CaseController 信息
- type BookController struct {
- serv *book.BookServ
- controllers.BaseController
- }
-
- // Constructor 初始化 Controller
- // @Title Constructor
- // @Description 初始化 Controller, 系统自动调用
- func (c *BookController) Constructor() {
- c.serv = book.NewBookServ(c.Context)
- }
-
- // GetRecommendList 获取精选
- func (c *BookController) GetRecommendList() {
- caseid := c.GetString("caseid")
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- if page < 0 {
- page = 1
- }
-
- if pagesize <= 0 {
- pagesize = 10
- }
-
- list, err := c.serv.GetBookRecommendList(caseid, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // GetBookList 获取图书列表
- func (c *BookController) GetBookList() {
- caseIDs := c.GetString("caseid")
- if caseIDs == "" {
- c.ResponseError(errors.New("请选择案场"))
- }
- bookType := c.GetString("booktype")
- barcode := c.GetString("barcode")
- page, _ := c.GetInt("page")
- if page < 1 {
- page = 1
- }
-
- pagesize, _ := c.GetInt("pagesize")
- name := c.GetString("name")
- showzero := c.GetString("showzero")
- list, err := c.serv.GetBookList(bookType, name, barcode, showzero, caseIDs, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // GetMineRecord 获取个人借阅记录
- func (c *BookController) GetMineRecord() {
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- status := c.GetString("status")
- list, err := c.serv.GetMineRecord(status, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // GetInStockChangeByBookId 获取图书盘点列表
- func (c *BookController) GetInStockChangeByBookId() {
- page, _ := c.GetInt("page")
- if page < 1 {
- page = 1
- }
-
- pagesize, _ := c.GetInt("pagesize")
- bookId := c.GetString(":bookId")
- list, err := c.serv.GetInStockChangeByBookId(bookId, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
-
- }
-
- func (c *BookController) SaveBook() {
- org := c.Context.Get("org").(model.SysOrg)
- book := model.TaBook{}
- if err := c.ParseForm(&book); err != nil {
- c.ResponseError(err)
- }
-
- if book.BookId == "" {
- book.OrgId = org.OrgId
- book.LeftNum = book.InStock
- err := c.serv.AuthBook(book)
- if err != nil {
- c.ResponseError(err)
- }
- list, err := c.serv.AddBook(book)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
- err := c.serv.AuthBookEdit(book)
- if err != nil {
- c.ResponseError(err)
- }
- list, err := c.serv.EditBook(book)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON(list)
- }
-
- // AddChangeRecord 新增库存盘点
- func (c *BookController) AddChangeRecord() {
- change := model.TaInStockChange{}
- if err := c.ParseForm(&change); err != nil {
- c.ResponseError(err)
- }
- user := c.Context.Get("user").(model.SysUser)
- change.ChangeUser = user.UserId
- change.ChangeUserName = user.RealName
- err := c.serv.AddChangeRecord(change)
- if err != nil {
- c.ResponseError(err)
- }
-
- c.ResponseJSON("添加成功")
- }
-
- // BorrowBook 借书
- func (c *BookController) BorrowBook() {
- bookIds := c.GetString(":bookIds")
- customerId := c.GetString(":customerId")
- org := c.Context.Get("org").(model.SysOrg)
- bookId := strings.Split(bookIds, ",")
- for i := 0; i < len(bookId); i++ {
- _, err := c.serv.BorrowBook(bookId[i], customerId, org.OrgId)
- if err != nil {
- c.ResponseError(err)
- }
- }
- c.ResponseJSON("借阅成功")
- }
-
- // ReturnBook 还书
- func (c *BookController) ReturnBook() {
- bookIds := c.GetString(":borrowIds")
- bookId := strings.Split(bookIds, ",")
- for i := 0; i < len(bookId); i++ {
- err := c.serv.ReturnBook(bookId[i])
- if err != nil {
- c.ResponseError(err)
- }
- }
- c.ResponseJSON("归还成功")
- }
-
- // ReserveBook 图书预约
- func (c *BookController) ReserveBook() {
- bookid := c.GetString(":bookid")
- record, err := c.serv.ReserveBook(bookid)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(record)
- }
-
- // GetCustomerReturnList 获取用户还书记录
- func (c *BookController) GetCustomerReturnList() {
- customerInfo := c.GetString(":customerInfo")
- caseIDs := c.GetString("caseid")
- if caseIDs == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseIDs = c.GetCaseIDs(cases)
- }
- page, _ := c.GetInt("page")
- pagesize, _ := c.GetInt("pagesize")
- list, err := c.serv.GetCustomerReturnList(customerInfo, caseIDs, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(list)
- }
-
- // ExcelInpuData EXCEL导入数据
- func (c *BookController) ExcelInpuData() {
- caseId := c.GetString("caseId")
- org := c.Context.Get("org").(model.SysOrg)
- file, _, err := c.GetFile("excel")
- if err != nil {
- c.ResponseError(err)
- }
- defer file.Close()
-
- fileBytes, err := ioutil.ReadAll(file)
- if err != nil {
- c.ResponseError(err)
- }
- xlFile, err := xlsx.OpenBinary(fileBytes)
- if err != nil {
- c.ResponseError(err)
- }
- data, err := c.serv.GetBookTypeByCaseId(caseId)
- if err != nil {
- c.ResponseError(err)
- }
- for _, sheet := range xlFile.Sheets {
- for key, row := range sheet.Rows {
- if key == 0 {
- continue
- }
- if row.Cells[0].String() == "" {
- continue
- }
- total, err := row.Cells[2].Int()
- if err != nil {
- c.ResponseError(err)
- }
- Days, err := row.Cells[3].Int()
- if err != nil {
- c.ResponseError(err)
- }
- bookTypeId, has := data[row.Cells[4].String()]
- if !has {
- c.ResponseError(fmt.Errorf("图书分类【%s】不存在", row.Cells[4].String()))
- }
- var book = model.TaBook{
- CaseId: caseId,
- BookBarcode: row.Cells[0].String(),
- BookName: row.Cells[1].String(),
- InStock: total,
- LeftNum: total,
- BorrowNum: 0,
- BorrowDays: Days,
- OrgId: org.OrgId,
- IsRecommend: 0,
- Price: "0",
- BookTypeId: bookTypeId,
- }
- err = c.serv.AuthBook(book)
- if err != nil {
- c.ResponseError(err)
- }
- _, err = c.serv.AddBook(book)
- if err != nil {
- c.ResponseError(err)
- }
-
- }
- }
- c.ResponseJSON("添加成功")
- }
-
- // GetCustomerByCustomerInfo 根据用户手机或条形码获取用户信息
- func (c *BookController) GetCustomerByCustomerInfo() {
- customerInfo := c.GetString(":customerInfo")
- customer, err := c.serv.GetCustomerByCustomerInfo(customerInfo)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(customer)
- }
-
- // GetRecordList 获取借书,预约记录列表
- func (c *BookController) GetRecordList() {
- borrowStatus := c.GetString("borrowstatus")
- caseIDs := c.GetString("caseid")
- if caseIDs == "" {
- cases := c.Context.Get("cases").([]model.SysUserCase)
- caseIDs = c.GetCaseIDs(cases)
- }
- customerName := c.GetString("customername")
- customerPhone := c.GetString("customerphone")
- bookName := c.GetString("bookname")
- barcode := c.GetString("barcode")
- page, _ := c.GetInt("page")
- if page < 1 {
- page = 1
- }
- pagesize, _ := c.GetInt("pagesize")
- list, err := c.serv.GetRecordList(borrowStatus, caseIDs, customerName, customerPhone, bookName, barcode, page, pagesize)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(list)
- }
-
- func (c *BookController) CancelReserve() {
- recordId := c.GetString(":recordId")
- err := c.serv.CancelReserve(recordId)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("取消成功")
- }
-
- func (c *BookController) DeleteBook() {
- bookId := c.GetString(":bookId")
- err := c.serv.DeleteBook(bookId)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON("删除成功")
-
- }
- func (c *BookController) GetBookById() {
- bookId := c.GetString(":bookId")
- list, err := c.serv.GetBookById(bookId)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(list)
- }
-
- func (c *BookController) GetCustomerBorrowInfo() {
- customerInfo := c.GetString(":customerInfo")
- list, err := c.serv.GetCustomerBorrowInfo(customerInfo)
- if err != nil {
- c.ResponseError(err)
- }
- c.ResponseJSON(list)
- }
|