123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package service
-
- import (
- "XT_New/models"
- "github.com/jinzhu/gorm"
- "strconv"
- "time"
- )
-
- func FindServiceSubscibeByOrgId(orgId int64) (*models.ServeSubscibe, error) {
- subscibe := models.ServeSubscibe{}
- err = readUserDb.Model(&models.ServeOrder{}).Preload("Org", "status=1").Where("org_id=? and status=1", orgId).First(&subscibe).Error
-
- var count int64
- err = readDb.Model(&models.Patients{}).Where("user_org_id=? and status = 1", orgId).Count(&count).Error
- subscibe.Patients = count
-
- return &subscibe, err
- }
-
- func FindOrgAppByOrgId(orgId int64) (*models.OrgApp, error) {
- app := models.OrgApp{}
- err = readUserDb.Model(&models.OrgApp{}).Where("org_id=? and status=1", orgId).First(&app).Error
- return &app, err
- }
-
- func FindAllProduct() ([]*models.ServeProduct, error) {
- product := []*models.ServeProduct{}
- err := readUserDb.Model(&models.ServeProduct{}).Where("status=1").Find(&product).Error
- return product, err
- }
-
- func FindProductByID(id int64) (*models.ServeProduct, error) {
- var product models.ServeProduct
- err := readUserDb.Where("id = ? and status=1", id).First(&product).Error
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
- if err != nil {
- return nil, err
- }
- return &product, err
- }
-
- func CreateOrderRecord(order *models.ServeOrder) {
- writeUserDb.Create(order)
- }
- func CreateOrderInfomation(info *models.ServeOrderInfomation) {
- writeUserDb.Create(info)
- }
-
- func FindOrderInfomationByID(orderNumber string, orgId int64) (*models.ServeOrderInfomation, error) {
- var order models.ServeOrderInfomation
- err := readUserDb.Model(&models.ServeOrderInfomation{}).Where("order_number = ? and org_id=? and status=1", orderNumber, orgId).First(&order).Error
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
-
- if err != nil {
- return nil, err
- }
- return &order, err
-
- }
-
- func FindServeOrderByID(orgId, id int64) (*models.ServeOrder, error) {
- var order models.ServeOrder
- err := readUserDb.Model(&models.ServeOrder{}).Where("id = ? and org_id=? and status=1", id, orgId).First(&order).Error
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
-
- if err != nil {
- return nil, err
- }
- return &order, err
- }
-
- func UpdateOrderPayType(orgId int64, id int64) error {
- err := writeUserDb.Model(&models.ServeOrder{}).Where("id = ? and org_id=? and status=1", id, orgId).Updates(map[string]interface{}{"pay_type": 2}).Error
- return err
- }
-
- func UpdateOrderStatus(orgId int64, id int64) error {
- err := writeUserDb.Model(&models.ServeOrder{}).Where("id = ? and org_id=? and status=1", id, orgId).Updates(map[string]interface{}{"order_status": 3}).Error
- return err
- }
-
- func GetOrderList(orgId int64) ([]*models.ServeOrder, error) {
- var orders []*models.ServeOrder
- err := readUserDb.Model(&models.ServeOrder{}).Where("org_id=? and status=1", orgId).Order("created_time desc").Find(&orders).Error
- for _, order := range orders {
- tm := time.Unix(order.OrderExpireTime, 0)
- order.OrderExpireTimeFormat = tm.Format("2006-01-02 15:04:05")
- }
-
- return orders, err
- }
-
- func FindServeOrderByOrderNumber(orderNumber string) (*models.ServeOrder, error) {
- var order models.ServeOrder
- err := readUserDb.Model(&models.ServeOrder{}).Where(" status=1 AND order_number = ? ", orderNumber).First(&order).Error
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
-
- if err != nil {
- return nil, err
- }
- return &order, err
- }
-
- func GetHetong(orgID, orderId int64) (*models.ServeOrderContract, error) {
- var contract models.ServeOrderContract
- var err error
- err = readUserDb.Model(&models.ServeOrderContract{}).Where("order_id=? and org_id=? and status=1", orderId, orgID).First(&contract).Error
-
- if err == gorm.ErrRecordNotFound {
- return nil, nil
- }
- if err != nil {
- return nil, err
- }
- return &contract, nil
- }
-
- func CreateHetong(m *models.ServeOrderContract) (err error) {
- err = writeUserDb.Create(m).Error
- return
- }
-
- func UpdateOrder(orderNumber string, Quantity int64, orgId int64, payment_transaction_id string, startTimes int64, endTimes int64) {
- var startTime int64
- var endTime int64
-
- if startTimes == 0 && endTimes == 0 {
- startTime = time.Now().Unix()
- endTime = startTime + ((12 * 30 * 24 * 3600) * Quantity)
- } else {
-
- endTime = endTimes + ((12 * 30 * 24 * 3600) * Quantity)
-
- }
-
- tm := time.Unix(endTime, 0)
- serve_duration := strconv.FormatInt(12*Quantity, 10) + "月" + "到期服务时间" + tm.Format("2006-01-02 15:04:05")
- writeUserDb.Model(&models.ServeOrder{}).Where("order_number = ? and status=1", orderNumber).Updates(map[string]interface{}{"order_status": 2, "pay_type": 1, "period_start": startTime, "period_end": endTime, "serve_duration": serve_duration, "pay_time": time.Now().Unix(), "payment_transaction_id": payment_transaction_id})
- writeUserDb.Model(&models.ServeSubscibe{}).Where("org_id = ? and status=1", orgId).Updates(map[string]interface{}{"period_start": startTime, "period_end": endTime, "updated_time": time.Now().Unix(), "state": 1})
- }
|