CNLiveShopBaseModel.swift 14.4 KB
//
//  CNLiveShopBaseModel.swift
//  metaCode
//
//  Created by open on 2023/10/31.
//

import Foundation
import HandyJSON
//!!!: /api/v1/orders或者/api/v1/refundList数据返回
class ShopOrderListModel: BaseModel {

    var isRefund: String? = "" // 是不是在退款界面 1是退款界面  2不是退款界面
    var title: String? = "" //  退款名称
    var status: String? = "" // state = 2 && status = 1 等待邮寄   state= 2 && status = 2  同意退款
    var id: String? = "" //  订单id && 退款单号
    var uid: String? = "" //  用户id
    var price: String? = "" //  金额 && 申请退款的金额
    var addtime: String? = "" //  下单时间 &&  申请时间戳
    var state: String? = "" //  状态 1待付款 2待发货 3待收货 4已完成 5已取消 6已退款  &&  通过两个字段判断状态 state=1 申请中  state=3  已拒绝 state=5 已撤销  state = 2 时候要在判断status
    var orderid: String? = "" //  付款订单号
    var buytime: String? = "" //  支付时间
    var finishtime: String? = "" //  完成时间
    var sendtime: String? = "" //  发货时间
    var is_tui: String? = "" //   2为退款中
    var delivery: String? = "" //   配送方式 1配送 2门店自提,
    var address_name: String? = "" //  地址名称 或者 店铺名称
    var address_address: String? = "" //  地址
    var address_phone: String? = "" //  电话
    var ems: String? = "" //   配送费用
    var payment: String? = "" //   支付方式 1支付宝 2微信 3银联
    var content: String? = "" //   订单备注  取消状态为 取消理由
    var user_phone: String? = "" //   用户手机号
    var express_id: String? = "" //   快递公司编号
    var express_num: String? = "" //   快递号
    var express_state: String? = "" //   2在途 3签收
    var order_detail = [ShopOrderListGoodsModel]() //   商品
    var is_send: String? = "" //   state为3时 is_send为 0时为部分发货 1已发货
    var send_num: Int = 0 //   发货数量
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.addtime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            })
    }
}

//!!!: /api/v1/order数据返回
class ShopOrderDetailModel: BaseModel {

    var id: String? = "" //  订单id && 退款单号
    var uid: String? = "" //   用户id
    var price: String? = "" //   金额
    var addtime: String? = "" //   下单时间
    var state: String? = "" //   状态 1待付款 2待发货 3待收货 4已完成 5已取消 6已退款
    var orderid: String? = "" //  付款订单号
    var buytime: String? = "" //   支付时间
    var finishtime: String? = "" //   完成时间
    var sendtime: String? = "" //   发货时间
    var is_tui: String? = "" //   2为退款中
    var delivery: String? = "" //  配送方式 1配送 2门店自提,
    var address_name: String? = "" //   地址名称 或者 店铺名称
    var address_address: String? = "" //   地址
    var address_phone: String? = "" //   电话
    var ems: String? = "" //   配送费用
    var pay_price: String? = "" //   实际支付金额
    var yunfei_fee: String? = "" //   配送费用
    var coupon_price: String? = "" //  优惠金额
    var coupon_type: String? = "" //   优惠类型(coupon_price > 0) 判断 1为平台优惠券 0为店铺类型
    var payment: String? = "" //   支付方式 1支付宝 2微信 3银联 4网家家支付 5货到付款
    var content: String? = "" //   订单备注  取消状态为 取消理由
    var user_phone: String? = "" //   用户手机号
    var express_id: String? = "" //   快递公司编号
    var express_num: String? = "" //   快递号
    var express_state: String? = "" //   2在途 3签收
    var order_detail = [ShopOrderListGoodsModel]() //   商品
    var username: String? = "" //  用户名
    var is_send: String? = "" //   是否拆单,state = 3时判断
    var send_num: Int = 0 //   物流数量
    var refund_num: String? = "" //   已经退款数量
    var is_send_all: Bool = true //  是否是全部发货,这是自己设置的属性
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.addtime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm:SS"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            })
    }
}

//!!!: /api/v1/refundById & /api/v1/refund 接口返回
class ShopOrderRefundModel: BaseModel {
    var id: String? = "" //清单id
    var type: String? = "" // 退款单id
    var title: String? = "" // 1 普通 2 售后
    var orderid: String? = "" // 退款原因
    var uid: String? = "" // 订单id
    var addtime: String? = "" // 申请时间
    var statetime: String? = "" //同意申请时间
    var state: String? = "" //1申请中 2同意申请 3拒绝 5用户撤销申请'
    var status: String? = "" //1 申请中 2完成退款  (判断 state == 2 && status == 1 为 已同意申请  state == 2 && status == 2 为完成退款)
    var content: String? = "" //详细说明
    var price: String? = "" //金额
    var tui_mode: String? = "" // 类型 1退款退货 2仅退款
    var refundtime: String? = "" // 确认退款或者拒绝退款时间
    var return_time: String? = "" // 放款时间
    var img = [String]() //退款图片地址
    var desc: String? = "" // 商家同意或拒绝原因
    var express: String? = "" // 快递名称
    var express_num: String? = "" // 快递单号
    var num: Int = 0 // 总数
    var with_order_detail = [ShopOrderListGoodsModel]() // 订单商品列表
    var username: String? = "" //用户名
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.addtime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm:SS"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            });
        mapper <<<
            self.statetime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm:SS"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            });
        mapper <<<
            self.refundtime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm:SS"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            });
    }
}

class ShopOrderListGoodsModel: BaseModel {

    var id: String? = "" //清单id
    var price: Float? = 0.00 //    价格 &&  申请退款的金额
    var prices: Float? = 0.00 //   原价
    var simg: String? = "" //   图片
    var title: String? = "" //    名称 &&  主标题
    var ads: String? = "" //    副标题
    var num: Int? = 0 //   数量
    var goods_id: String? = "" //  商品id
    var coupon_price: String? = "" //  优惠金额
    var selectNum: Int? = 0 //  选中发货数量
    var send_num: Int? = 0//  剩余未发货数量
    var refund_num: Int? = 0 //  退款成功数量
    var username: String? = "" //  用户名
    
    var select: Bool = false // 商品是否被选中
}

//!!!: 快递公司model
class ShopOrderExpressModel: BaseModel {
    var id: String? = ""// 快递公司id
    var com: String? = ""// 名称
    var no: String? = ""// 编号
    var tel: String? = ""// 电话
    var simg: String? = ""// logo
    var address: String? = ""// 收货地址
    var state: String? = ""// 3为已完成 其他为运输中
}

//!!!: 店铺model
class ShopOrderStoreModel: BaseModel {
    var id: String? = ""//  店铺id
    var title: String? = ""// 名称
    var address: String? = ""// 地址
    var phone: String? = ""// 电话
    var longitude: String? = ""// 经度
    var latitude: String? = ""// 维度
    var state: String? = ""// 状态
}

//!!!: 多物流数据源
class ShopOrderExpressListModel: BaseModel {
    var id: String? = ""//  发货单id
    var order_id: String? = ""//  订单id
    var express: String? = ""// 快递名称
    var express_num: String? = ""//  快递单号
    var simg: String? = ""//  快递logo
    var detail_goods = [ShopOrderListGoodsModel]()//  发货单内商品
    var expressNew = ShopOrderExpressDetailDateModel()// 快递信息
}
//!!!: 物流详情数据
class ShopOrderExpressDetailModel: BaseModel {
    var express = ShopOrderExpressModel()// 快递公司信息
    var data = [ShopOrderExpressDetailDateModel]()// 数据
}

//!!!: 物流详情数据
class ShopOrderExpressDetailDateModel: BaseModel {
    var AcceptTime: String? = ""//  时间
    var AcceptStation: String? = ""// 内容
    var accept_time: String? = ""//   时间戳
    var cellH: CGFloat = 0.0 // 高度
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.AcceptStation <-- TransformOf(fromJSON: { (raw) -> String in
                let cellH = raw?.calculateHeightWith(width: KSreenWidth - adapt_length(length: 70), font: medium_adapt_font(pointSize: 12))
                self.cellH = cellH ?? 0.00
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            })
    }
}
//!!!: 电商流水数据
class ShopOrderTransBaseDataModel: BaseModel {
    var payment: String? = ""// 支出
    var income: String? = ""// 收入
    var list = [ShopOrderTransListDataModel]()// 电商流水
}

class ShopOrderTransListDataModel: BaseModel {
    var id: String? = ""//  id
    var uid: String? = ""//  用户id
    var price: String? = ""//  金钱
    var addtime: String? = ""//  时间戳
    var type: String? = ""// 1 收入 2 支出
    var title: String? = ""//   order电商 foods_order美食
    var order_id: String? = ""// 订单id
    var payment: String? = ""//  1支付宝 2微信 3银联 4钱包
    var img: String? = ""//  头像
    var username: String? = ""//  昵称
    
    override func mapping(mapper: HelpingMapper) {
        mapper <<<
            self.addtime <-- TransformOf(fromJSON: { (raw) -> String in
                if raw!.count > 0 {
                    let date = NSDate(timeIntervalSince1970: TimeInterval(raw!)!)
                    let dateFormatter = DateFormatter()
                    dateFormatter.locale = Locale.init(identifier: "zh_CN")
                    dateFormatter.dateFormat = "YYYY-MM-dd hh:mm:SS"
                    return dateFormatter.string(from: date as Date)
                }
                return raw!
            }, toJSON: { (tuple) -> String? in
                return tuple
            });
    }
}

///优惠券相关数据
//!!!:
class ShopOrderCouponDataModel: BaseModel {
    var id: String? = ""
    var type: String? = ""
    var title: String? = ""
    var subTitle: String? = ""
    var section: String? = ""
    var message: String? = ""
    var filled: String? = ""
    var disCount: String? = ""
}

class ShopOrderCouponListModel: BaseModel {
    var id: String? = ""//优惠券id
    var type: String? = ""//
    var sort: String? = ""//优惠券使用范围  1 店铺全场  3 单品券
    var num: String? = ""//剩余数量
    var goods_id: String? = ""//商品Id
    var goods_title: String? = ""//
    var filled: String? = ""//满
    var discount: String? = ""//减
    var starttime: String? = ""//开始时间
    var endtime: String? = ""//结束时间
    var addtime: String? = ""//发布时间
    var store_id: String? = ""//店铺iD
    var genre: String? = ""//
    var day: String? = ""//
    var total: String? = ""//已领取数量
    var state: String? = ""//优惠券状态  1 正常  2 冻结
    var title: String? = ""//标题
    var receive_number: String? = ""//领取次数  1 不限制  2 限制一次
    var types: String? = ""//
    var is_show: String? = ""//是否显示 1 对外显示 2 不对外
}

class ShopOrderCouponDataListModel: BaseModel {
    var list = [ShopOrderCouponListModel]()// 数据
}

//!!!: 优惠券商品数据
class ShopOrderAssociatedGoodsModel: BaseModel {
    var id: String? = ""// 商品id
    var title: String? = ""// 商品名称
    var simg: String? = ""// 商品图片
    var img: String? = ""//
    var price: String? = ""//商品价格
    var ads: String? = ""// 商品介绍
    var groupid: String? = ""// 商品分类
    var shopid: String? = ""// 店铺id
    var shop_id: String? = ""//
    var category_id: String? = ""// 店铺分类id
    var state: String? = ""// 1下架 2上架
    var count: String? = ""// 库存
    var shop_type: String? = ""// 1普通商品 2文创商品
    var ord: String? = ""// 排序
    var select: Bool = false// 商品是否被选中(本地标记)
}