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:\wamp\www\ecsx\includes\lib_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

 

 

 

posted @ 2016-01-04 17:11  attilaxAti  阅读(644)  评论(0编辑  收藏  举报