• Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构


    Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构

     

     

    154.order_info  订单 数据结构1

    2Ecshop 的订单api1

    2.1. 生成订单 code by1

    2.2. 相关文件路径2

    2.3. 取得订单信息 function order_info($order_id, $order_sn = '')2

    2.4. 取得订单商品function order_goods($order_id)2

    2.5. 取得订单总金额  function order_amount($order_id, $include_gift = true)2

    2.6. 修改订单 function update_order($order_id, $order)3

    2.7. 订单退款order_refund(3

    2.8. 合并订单merge_order4

    2.9. 改变订单中商品库存change_order_goods_storage4

    3Ati order api4

    3.1. 生成订单insert /save4

    4高级功能4

     

    1. 54.order_info  订单 数据结构

    参考备注

     

     

    2. Ecshop 的订单api

     

    2.1. 生成订单 code by

    flow.php

    /*------------------------------------------------------ */

    //-- 完成所有订单操作,提交到数据库

    /*------------------------------------------------------ */

    elseif ($_REQUEST['step'] == 'done')

    {

     

        /* 插入订单表 */

        $error_no = 0;

        do

        {

            $order['order_sn'] = get_order_sn(); //获取新订单号

            $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');

    2.2. 相关文件路径

    D:wampwwwecsxincludeslib_order.php

    /**

     * 取得订单信息

     * @param   int     $order_id   订单id(如果order_id > 0 就按id查,否则按sn查)

     * @param   string  $order_sn   订单号

     * @return  array   订单信息(金额都有相应格式化的字段,前缀是formated_

     */

     

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://www.cnblogs.com/attilax/

     

    2.3. 取得订单信息 function order_info($order_id, $order_sn = '')

     

    /**

     * 取得订单商品

     * @param   int     $order_id   订单id

     * @return  array   订单商品数组

     */

    2.4. 取得订单商品function order_goods($order_id)

    /**

     * 取得订单总金额

     * @param   int     $order_id   订单id

     * @param   bool    $include_gift   是否包括赠品

     * @return  float   订单总金额

     */

    2.5. 取得订单总金额  function order_amount($order_id, $include_gift = true)

    {

        $sql = "SELECT SUM(goods_price * goods_number) " .

                "FROM " . $GLOBALS['ecs']->table('order_goods') .

                " WHERE order_id = '$order_id'";

        if (!$include_gift)

        {

            $sql .= " AND is_gift = 0";

        }

     

        return floatval($GLOBALS['db']->getOne($sql));

    }

     

     

    /**

     * 修改订单

     * @param   int     $order_id   订单id

     * @param   array   $order      key => value

     * @return  bool

     */

    2.6. 修改订单 function update_order($order_id, $order)

    {

        return $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'),

            $order, 'UPDATE', "order_id = '$order_id'");

    }

     

     

    /**

    2.7.  * 订单退款order_refund(

     * @param   array   $order          订单

     * @param   int     $refund_type    退款方式 到帐户余额 到退款申请(先到余额,再申请提款) 不处理

     * @param   string  $refund_note    退款说明

     * @param   float   $refund_amount  退款金额(如果为0,取订单已付款金额)

     * @return  bool

     */

    function order_refund($order, $refund_type, $refund_note, $refund_amount = 0)

    {

     

     

    /**

    2.8.  * 合并订单merge_order

     * @param   string  $from_order_sn  从订单号

     * @param   string  $to_order_sn    主订单号

     * @return  成功返回true,失败返回错误信息

     */

    function merge_order($from_order_sn, $to_order_sn)

     

     

    /**

    2.9.  * 改变订单中商品库存change_order_goods_storage

     * @param   int     $order_id   订单号

     * @param   bool    $is_dec     是否减少库存

     * @param   bool    $storage     减库存的时机,1,下订单时;0,发货时;

     */

    function change_order_goods_storage($order_id, $is_dec = true, $storage = 0)

     

     

    3. Ati order api

    3.1. 生成订单insert /save 

    来源于sqlormapi继承。。

     

     

    4. ---code

     

    public class OrderService extends absService {

     

    public static void main(String[] args) {

    final long time_intFmt = new Date().getTime() / 1000;

    System.out.println(time_intFmt);

    OrderService os = IocX4casher.getBean(OrderService.class);

    os.insert(new HashMap() {

    {

    this.put("good_amount", 12.50);

    this.put("add_time"time_intFmt);

    this.put("confirm_time"time_intFmt);

    this.put("order_sn",filex.getUUidName());

    }

    });

    System.out.println("--f");

    }

     

    @Inject

    DBX dx;

     

    public int insert(Map order) {

    String sql = "insert into ecs_order_info(order_sn,order_status,shipping_status,pay_status,goods_amount,add_time,confirm_time,agency_id,inv_type,tax,discount)values('@order_sn@',1,1,1,@good_amount@,@add_time@,@confirm_time@,0,0,0,0) ";

     

    sql = SqlFormatter.exe(sqlorder);

    System.out.println(sql);

    // DBX IocX4casher.getBean(DBX.class)

    dx.execSql(sql);

    return 0;

     

    }

     

     

    5. 高级功能

    错误的金额----  太小,太大的的数

    审核机制...(可以只使用在太小,太大金额或者别的异常的情形哈)

     

     

    参考

    ECSHOP 数据库结构说明 (适用版本v2.7.3).htm

     

     

     

  • 相关阅读:
    做统计图的好工具
    QueryBuildRange中的表达式
    四种方式话Equal
    QueryBuildRange的空值
    GetHashCode()初探
    X++中的字符串操作函数
    寻找缺陷的方法
    字程序级别的重构
    代码大全的方向
    多线程啊
  • 原文地址:https://www.cnblogs.com/attilax/p/5099599.html
Copyright © 2020-2023  润新知