123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package cases
-
- import (
- "spaceofcheng/services/models"
- "spaceofcheng/services/models/goods"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/utils"
- "strconv"
- "strings"
- "time"
- )
-
- // CaseRecord 月订单记录
- type CaseRecord struct {
- model.SysCaseRecord `xorm:"extends"`
- ActrualNum int
- OverNum int
- LeftNum int
- }
-
- const (
- ISOVER = 1
- ISNOOVER = 0
- )
-
- // GetCaseRecord 获取案场月记录
- func (m *CaseDAO) GetCaseRecord(caseids string, page, pageSize int) ([]CaseRecord, error) {
- var records []CaseRecord
- sql := `select * from sys_case_record where case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and status=` + strconv.Itoa(models.STATUS_NORMAL) + ` order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
-
- err := m.db.Sql(sql).Find(&records)
- if err != nil {
- return nil, err
- }
- for inx, record := range records {
- orders := new(model.TaGoodsOrders)
- total, err := m.db.Where("case_id=?", record.CaseId).
- And("status=?", models.STATUS_NORMAL).
- And("user_type in ('"+goods.USERTPE_SALES+"','"+goods.USERTYPE_MANAGER+"')").
- And("date_format(create_date,'%Y-%m')=?", record.Month).
- And("make_status !=?", "cancel").
- And("pay_type = ?", models.CONSUME_INNER).
- Sums(orders, "orders_num")
- if err != nil {
- return nil, err
- }
- records[inx].ActrualNum = int(total[0])
- var overnum int
- var leftnum int
- if records[inx].ActrualNum > record.Num {
- overnum = records[inx].ActrualNum - record.Num
- } else {
- leftnum = record.Num - records[inx].ActrualNum
- }
- records[inx].OverNum = overnum
- records[inx].LeftNum = leftnum
- }
-
- return records, err
- }
-
- // GetCaseRecordCount 获取月记录
- func (m *CaseDAO) GetCaseRecordCount(caseids string) (int, error) {
- var records []CaseRecord
- sql := `select * from sys_case_record where case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and status>` + strconv.Itoa(models.STATUS_DEL)
-
- err := m.db.Sql(sql).Find(&records)
- if err != nil {
- return 0, err
- }
- return len(records), nil
- }
-
- // AddRecord 新增案场月记录信息
- func (m *CaseDAO) AddRecord(record model.SysCaseRecord) (*model.SysCaseRecord, error) {
- record.CreateDate = time.Now()
- record.RecordId = utils.GetGUID()
- record.Status = models.STATUS_NORMAL
- record.IsOver = ISOVER
- _, err := m.db.Insert(record)
- return &record, err
- }
-
- // GetRecordByMonth 根据月份获取月记录信息
- func (m *CaseDAO) GetRecordByMonth(caseid, month string) (*model.SysCaseRecord, error) {
- var record []model.SysCaseRecord
- sql := `select * from sys_case_record where case_id=? and status=? and month=?`
- err := m.db.Sql(sql, caseid, models.STATUS_NORMAL, month).Find(&record)
-
- if err != nil {
- return nil, err
- }
- if len(record) > 0 {
- return &record[0], nil
- }
- return nil, nil
- }
-
- // GetRecordByID 根据id获取月记录
- func (m *CaseDAO) GetRecordByID(recordid string) (*CaseRecord, error) {
- var records []CaseRecord
- sql := `select * from sys_case_record where record_id='` + recordid + `'`
-
- err := m.db.Sql(sql).Find(&records)
- if err != nil {
- return nil, err
- }
- if len(records) > 0 {
- var record = records[0]
- info, err := m.GetRecordWithNum(record)
- return info, err
- }
-
- return nil, nil
- }
-
- // GetRecordWithNum 获取月记录对应信息
- func (m *CaseDAO) GetRecordWithNum(record CaseRecord) (*CaseRecord, error) {
- orders := new(model.TaGoodsOrders)
- total, err := m.db.Where("case_id=?", record.CaseId).And("status=?", models.STATUS_NORMAL).And("user_type=?", goods.USERTPE_SALES).And("date_format(create_date,'%Y-%m')=?", record.Month).Sums(orders, "orders_num")
- if err != nil {
- return nil, err
- }
- record.ActrualNum = int(total[0])
- var overnum int
- var leftnum int
- if record.ActrualNum > record.Num {
- overnum = record.ActrualNum - record.Num
- } else {
- leftnum = record.Num - record.ActrualNum
- }
- record.OverNum = overnum
- record.LeftNum = leftnum
- return &record, err
- }
-
- // GetRecordByCase 获取案场当月记录信息
- func (m *CaseDAO) GetRecordByCase(caseid string) (*CaseRecord, error) {
- var records []CaseRecord
- sql := `select * from sys_case_record where month = date_format(NOW(),'%Y-%m') and case_id='` + caseid + `'`
-
- err := m.db.Sql(sql).Find(&records)
- if err != nil {
- return nil, err
- }
- if len(records) > 0 {
- var record = records[0]
- info, err := m.GetRecordWithNum(record)
- return info, err
- }
-
- return nil, nil
- }
|