|
@@ -1,6 +1,7 @@
|
1
|
1
|
package book
|
2
|
2
|
|
3
|
3
|
import (
|
|
4
|
+ "errors"
|
4
|
5
|
"spaceofcheng/services/models"
|
5
|
6
|
"spaceofcheng/services/models/model"
|
6
|
7
|
"spaceofcheng/services/utils"
|
|
@@ -25,7 +26,7 @@ func NewBookDAO(ctx *utils.Context) *BookDAO {
|
25
|
26
|
}
|
26
|
27
|
}
|
27
|
28
|
|
28
|
|
-func (m *BookDAO) GetBookList(bookType, name, barcode, caseid string, page, pageSize int) ([]model.TaBook, error) {
|
|
29
|
+func (m *BookDAO) GetBookList(bookType, name, barcode, showzero, caseid string, page, pageSize int) ([]model.TaBook, error) {
|
29
|
30
|
var book []model.TaBook
|
30
|
31
|
sql := `select * from ta_book where status = '` + strconv.Itoa(models.STATUS_NORMAL) + `'
|
31
|
32
|
and case_id in('` + strings.Replace(caseid, ",", "','", -1) + `')`
|
|
@@ -38,12 +39,15 @@ func (m *BookDAO) GetBookList(bookType, name, barcode, caseid string, page, page
|
38
|
39
|
if barcode != "" {
|
39
|
40
|
sql += ` and barcode = '` + barcode + `'`
|
40
|
41
|
}
|
|
42
|
+ if showzero == "0" {
|
|
43
|
+ sql += ` and left_num>0`
|
|
44
|
+ }
|
41
|
45
|
sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
|
42
|
46
|
err := m.db.Sql(sql).Find(&book)
|
43
|
47
|
return book, err
|
44
|
48
|
|
45
|
49
|
}
|
46
|
|
-func (m *BookDAO) GetBookListCount(bookType, name, barcode, caseid string) (int, error) {
|
|
50
|
+func (m *BookDAO) GetBookListCount(bookType, name, showzero, barcode, caseid string) (int, error) {
|
47
|
51
|
var book []model.TaBook
|
48
|
52
|
sql := `select * from ta_book where status = '` + strconv.Itoa(models.STATUS_NORMAL) + `'
|
49
|
53
|
and case_id in('` + strings.Replace(caseid, ",", "','", -1) + `')`
|
|
@@ -56,6 +60,9 @@ func (m *BookDAO) GetBookListCount(bookType, name, barcode, caseid string) (int,
|
56
|
60
|
if name != "" {
|
57
|
61
|
sql += ` and (book_name like '%` + name + `%' or author like '%` + name + `%')`
|
58
|
62
|
}
|
|
63
|
+ if showzero == "0" {
|
|
64
|
+ sql += ` and left_num>0`
|
|
65
|
+ }
|
59
|
66
|
sql += ` order by create_date desc`
|
60
|
67
|
err := m.db.Sql(sql).Find(&book)
|
61
|
68
|
return len(book), err
|
|
@@ -154,7 +161,7 @@ func (m *BookDAO) GetBookRecommendList(caseid string, page, pageSize int) ([]mod
|
154
|
161
|
var book []model.TaBook
|
155
|
162
|
sql := `select * from ta_book where status = '` + strconv.Itoa(models.STATUS_NORMAL) + `'
|
156
|
163
|
and case_id in('` + strings.Replace(caseid, ",", "','", -1) + `')
|
157
|
|
- and is_recommend = '` + strconv.Itoa(models.RECOMMEND_YES) + `'`
|
|
164
|
+ and is_recommend = '` + strconv.Itoa(models.RECOMMEND_YES) + `' and left_num>0`
|
158
|
165
|
sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
|
159
|
166
|
err := m.db.Sql(sql).Find(&book)
|
160
|
167
|
return book, err
|
|
@@ -247,13 +254,27 @@ func (m *BookDAO) ReserveBook(record model.TaBookBorrowRecord) (model.TaBookBorr
|
247
|
254
|
// CheckUserReserveBook 判断用户书籍预约状态
|
248
|
255
|
func (m *BookDAO) CheckUserReserveBook(customerid, bookid string) (bool, error) {
|
249
|
256
|
var records []model.TaBookBorrowRecord
|
250
|
|
- err := m.db.Where("customer_id=?", customerid).And("book_id=?", bookid).And("status in ('" + models.BORROW_TYPE_RESERVE + "','" + models.BORROW_TYPE_BORROWED + "','" + models.BORROW_TYPE_LATE + "')").Find(&records)
|
|
257
|
+ err := m.db.Where("customer_id=?", customerid).And("book_id=?", bookid).And("borrow_status in ('" + models.BORROW_TYPE_RESERVE + "','" + models.BORROW_TYPE_BORROWED + "','" + models.BORROW_TYPE_LATE + "')").Find(&records)
|
251
|
258
|
if err != nil {
|
252
|
259
|
return false, err
|
253
|
260
|
}
|
254
|
261
|
return len(records) == 0, nil
|
255
|
262
|
}
|
256
|
263
|
|
|
264
|
+// BookLeftNumDel 图书库存减少
|
|
265
|
+func (m *BookDAO) BookLeftNumDel(bookid string) error {
|
|
266
|
+ sql := `update ta_book set left_num = left_num - 1 where book_id=? and left_num > 0`
|
|
267
|
+ req, err := m.db.Exec(sql, bookid)
|
|
268
|
+ if err != nil {
|
|
269
|
+ return err
|
|
270
|
+ }
|
|
271
|
+ row, _ := req.RowsAffected()
|
|
272
|
+ if row == 0 {
|
|
273
|
+ return errors.New("预约失败,库存不足")
|
|
274
|
+ }
|
|
275
|
+ return nil
|
|
276
|
+}
|
|
277
|
+
|
257
|
278
|
//
|
258
|
279
|
func (m *BookDAO) CustomerReservedBook(bookId, customerId string) (*model.TaBookBorrowRecord, error) {
|
259
|
280
|
var book []model.TaBookBorrowRecord
|