Переглянути джерело

Merge branch 'dev_wf' of wufeng/fuse into version1.5

wufeng 2 роки тому
батько
коміт
933b4aa786

+ 1 - 1
app/admin/command/HandleBatchAccount.php

@@ -87,7 +87,7 @@ class HandleBatchAccount extends Command
             $salt = randomkeys(6);
 
             //拼接SQL语句
-            $insert .= "('" . self::$account_username_prefix . $rs['username_prefix'] . $rs['username_year'] . str_pad((string)$i, 4, '0', STR_PAD_LEFT) . "','" . $pwd . "','" . $salt . "','" . getPassword($pwd, $salt) . "'," . $rs['company_id'] . "," . $rs['card_id'] . "," . AccountModel::$status_not_active . "," . CommonModel::$del_normal . ",'" . $rs['starttime'] . "','" . $rs['expiretime'] . "'," . $rs['createrid'] . ",'" . $rs['creater'] . "','" . $date . "'," . $rs['createrid'] . ",'" . $rs['creater'] . "','" . $date . "'),";
+            $insert .= "('" . self::$account_username_prefix . $rs['username_prefix'] . $rs['username_year'] . str_pad((string)$i, 4, '0', STR_PAD_LEFT) . "','" . $pwd . "','" . $salt . "','" . get_password($pwd, $salt) . "'," . $rs['company_id'] . "," . $rs['card_id'] . "," . AccountModel::$status_not_active . "," . CommonModel::$del_normal . ",'" . $rs['starttime'] . "','" . $rs['expiretime'] . "'," . $rs['createrid'] . ",'" . $rs['creater'] . "','" . $date . "'," . $rs['createrid'] . ",'" . $rs['creater'] . "','" . $date . "'),";
         }
 
         return substr($insert, 0, -1) . ';';

+ 2 - 2
app/admin/logic/AccountLogic.php

@@ -58,7 +58,7 @@ class AccountLogic extends BaseLogic
             'username' => $username_prefix . $data['username'],
             'pwd' => $pwd,
             'salt' => $salt,
-            'password' => getPassword($pwd, $salt),
+            'password' => get_password($pwd, $salt),
             'company_id' => $data['company_id'],
             'card_id' => $data['card_id'],
             'video_ids' => implode(',', $data['video_ids']),
@@ -179,7 +179,7 @@ class AccountLogic extends BaseLogic
         if ($rs) throw new ValidateException('该账户不存在');
 
         $salt = randomkeys(6);
-        $password = getPassword($data['new_password'], $salt);
+        $password = get_password($data['new_password'], $salt);
 
         $da = [
             'pwd' => $data['new_password'],

+ 2 - 2
app/admin/logic/AdminLogic.php

@@ -48,7 +48,7 @@ class AdminLogic extends BaseLogic
         $salt = randomkeys(6);
         $data = array_merge($data, [
             'salt' => $salt,
-            'password' => getPassword(Config::get('common.default_password'), $salt),
+            'password' => get_password(Config::get('common.default_password'), $salt),
             'is_del' => CommonModel::$del_normal,
             'status' => CommonModel::$status_normal,
             'addtime' => date('Y-m-d H:i:s'),
@@ -127,7 +127,7 @@ class AdminLogic extends BaseLogic
         if ($rs->isEmpty()) throw new ValidateException('该运营账号不存在');
 
         $salt = randomkeys(6);
-        $password = getPassword($data['new_password'], $salt);
+        $password = get_password($data['new_password'], $salt);
 
         $da = [
             'salt' => $salt,

+ 3 - 3
app/admin/logic/CommonLogic.php

@@ -21,9 +21,9 @@ class CommonLogic extends BaseLogic
         if ($res->isEmpty()) return json_show(CommonModel::$error_token, '该账户不存在');
         if ($res->status == CommonModel::$status_disable) return json_show(CommonModel::$error_token, '该账户已禁用');
 
-        if (getPassword($data['password'], $res->salt) != $res->password) return json_show(CommonModel::$error_token, '账户密码错误');
+        if (get_password($data['password'], $res->salt) != $res->password) return json_show(CommonModel::$error_token, '账户密码错误');
 
-        $token = makeToken($res->id, $data['username'], $res->salt);
+        $token = make_token($res->id, $data['username'], $res->salt);
         $userinfo = [
             "username" => $res->username,
             "nickname" => $res->nickname,
@@ -47,7 +47,7 @@ class CommonLogic extends BaseLogic
     //上传图片
     public static function upload($files): Json
     {
-        $list = UploadImg($files);
+        $list = upload_img($files);
 
         return (is_array($list) && !empty($list)) ? json_show(CommonModel::$success, '上传成功', $list) : json_show(CommonModel::$error_default, '上传失败');
     }

+ 1 - 1
app/admin/logic/CompanyGoodLogic.php

@@ -67,7 +67,7 @@ class CompanyGoodLogic extends BaseLogic
         if (empty($rs)) return json_show(CommonModel::$error_layer, "【{$rs['good_code']}】【{$rs['good_name']}】该商品重复添加");
 
         $res = CompanyGoodModel::create((array_merge($data, [
-            'code' => makeNo('CG'),
+            'code' => make_no('CG'),
             'is_del' => CommonModel::$del_normal,
             'status' => CommonModel::$status_normal,
             'is_top' => CommonModel::$top_no,

+ 1 - 1
app/admin/logic/GoodLogic.php

@@ -43,7 +43,7 @@ class GoodLogic extends BaseLogic
 
         if (!$rs) throw new ValidateException('该商品名称已存在');
 
-        $good_code = makeNo("SP");
+        $good_code = make_no("SP");
 
         $res = GoodModel::create([
             'good_cover_img' => $data['good_cover_img'],

+ 5 - 16
app/admin/logic/OrderExchangeLogic.php

@@ -32,17 +32,13 @@ class OrderExchangeLogic extends BaseLogic
         $count = $db->count('a.id');
 
         $list = $db
-            ->field('a.id,a.orderCode,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,a.status,a.post_name,a.post_code,a.addtime,e.addr_code,"" addr_name,e.addr,f.good_code,f.good_name,f.good_cover_img')
+            ->field('a.id,a.orderCode,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,a.status,a.post_name,a.post_code,a.addtime,e.addr_code,"" addr_name,e.addr,f.good_code,f.good_name,f.good_cover_img')
             ->page($data['page'], $data['size'])
             ->withAttr('addr_code', function ($val) {
                 return explode(',', $val);
             })
             ->withAttr('addr_name', function ($val, $da) {
-                $name = Db::name('area')
-                    ->whereIn('code', $da['addr_code'])
-                    ->column('name');
-                return implode($name);
-
+                return $da['addr_code']?get_addr_name($da['addr_code']):'';
             })
             ->order('a.addtime desc')
             ->select()
@@ -55,7 +51,7 @@ class OrderExchangeLogic extends BaseLogic
     public static function read(int $id = 0): Json
     {
         $rs = $db = OrderExchangeModel::alias('a')
-            ->field('a.id,a.orderCode,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,a.status,a.post_name,a.post_code,a.addtime,e.addr_code,"" addr_name,f.good_code,f.good_name,f.good_cover_img')
+            ->field('a.id,a.orderCode,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,a.status,a.post_name,a.post_code,a.addtime,"" addr_name,f.good_code,f.good_name,f.good_cover_img')
             ->leftJoin('company b', 'b.id=a.company_id AND b.is_del=' . CommonModel::$del_normal)
             ->leftJoin('card c', 'c.id=a.card_id AND c.is_del=' . CommonModel::$del_normal)
             ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
@@ -66,11 +62,7 @@ class OrderExchangeLogic extends BaseLogic
                 return explode(',', $val);
             })
             ->withAttr('addr_name', function ($val, $da) {
-                $name = Db::name('area')
-                    ->whereIn('code', $da['addr_code'])
-                    ->column('name');
-                return implode($name);
-
+                return $da['addr_code']?get_addr_name($da['addr_code']):'';
             })
             ->findOrEmpty()
             ->toArray();
@@ -104,10 +96,7 @@ class OrderExchangeLogic extends BaseLogic
         $da = [];
         foreach ($list as $v) {
             $v = $v->toArray();
-            $area_name = Db::name('area')
-                ->whereIn('code', $v['addr_code'])
-                ->column('name');
-            $v['收货地址'] = implode('', $area_name) . $v['addr'];
+            $v['收货地址'] = $v['addr_code']?get_addr_name($v['addr_code']).$v['addr']:$v['addr'];
             $v['状态'] = $status[$v['状态']] ?? '';
 
             unset($v['addr_code']);

+ 4 - 21
app/admin/logic/OrderServiceLogic.php

@@ -40,11 +40,7 @@ class OrderServiceLogic extends BaseLogic
                 return explode(',', $val);
             })
             ->withAttr('addr_name', function ($val, $da) {
-                $name = Db::name('area')
-                    ->whereIn('code', $da['addr_code'])
-                    ->column('name');
-                return implode($name);
-
+                return $da['addr_code']?get_addr_name($da['addr_code']):'';
             })
             ->order('a.addtime desc')
             ->select()
@@ -70,11 +66,7 @@ class OrderServiceLogic extends BaseLogic
                 return explode(',', $val);
             })
             ->withAttr('addr_name', function ($val, $da) {
-                $name = Db::name('area')
-                    ->whereIn('code', $da['addr_code'])
-                    ->column('name');
-                return implode($name);
-
+                return $da['addr_code']?get_addr_name($da['addr_code']):'';
             })
             ->findOrEmpty()
             ->toArray();
@@ -103,13 +95,6 @@ class OrderServiceLogic extends BaseLogic
 
         $list = $db
             ->field('a.id 订单ID,a.orderCode 订单编号,bb.title 购买账号业务公司,c.title 购买账号卡类型,d.name 购买用户名,d.username 购买账号,a.num 购买数量,e.contactor 收货联系人,e.mobile 收货联系电话,e.addr_code,s.title 服务名称,a.amount 支付金额,a.status 状态,a.addtime 创建时间,a.post_name 物流公司,a.post_code 物流单号,e.addr')
-            ->withAttr('addr_name', function ($val, $da) {
-                $name = Db::name('area')
-                    ->whereIn('code', $da['addr_code'])
-                    ->column('name');
-                return implode($name);
-
-            })
             ->order('a.addtime desc')
             ->cursor();
 
@@ -118,10 +103,8 @@ class OrderServiceLogic extends BaseLogic
         $da = [];
         foreach ($list as $v) {
             $v = $v->toArray();
-            $area_name = Db::name('area')
-                ->whereIn('code', $v['addr_code'])
-                ->column('name');
-            $v['收货地址'] = implode('', $area_name) . $v['addr'];
+
+            $v['收货地址'] = $v['addr_code']?get_addr_name($v['addr_code']).$v['addr']:$v['addr'];
             $v['状态'] = $status[$v['状态']] ?? '';
 
             unset($v['addr_code']);

+ 1 - 1
app/admin/logic/VideoGroupLogic.php

@@ -70,7 +70,7 @@ class VideoGroupLogic extends BaseLogic
 
             $data = [
                 'group_id' => $data['group_id'],
-                'code' => makeNo('VG'),
+                'code' => make_no('VG'),
                 'video_ids' => implode(',', $video_ids),
                 'is_del' => CommonModel::$del_normal,
                 'addtime' => $date,

+ 1 - 1
app/admin/logic/VideoLogic.php

@@ -41,7 +41,7 @@ class VideoLogic extends BaseLogic
 
         if (!$rs) throw new ValidateException('该视频名称已存在');
 
-        $video_sn = makeNo("FC");
+        $video_sn = make_no("FC");
         $data = array_merge($data, [
             "video_sn" => $video_sn,
             "is_del" => CommonModel::$del_normal,

+ 1 - 1
app/admin/middleware/adminMiddleware.php

@@ -42,7 +42,7 @@ class adminMiddleware
                 if (!$val->check($param)) throw new ValidateException($val->getError());
 
                 //获取用户信息
-                $user = verifyToken($param['token']);
+                $user = verify_token($param['token']);
                 BaseLogic::setUserInfo($user);
                 $request->uid = $user['uid'];
                 $request->uname = $user['uname'];

+ 25 - 14
app/common.php

@@ -18,8 +18,8 @@ if (!function_exists('json_show')) {
 //获取加密后的密码
 //@param $password string 密码
 //@param $salt string 盐值
-if (!function_exists('getPassword')) {
-    function getPassword(string $password = '', string $salt = ''): string
+if (!function_exists('get_password')) {
+    function get_password(string $password = '', string $salt = ''): string
     {
         return sha1($password . $salt);
     }
@@ -29,8 +29,8 @@ if (!function_exists('getPassword')) {
 //@param $admin_id int 运营账号表id
 //@param $username string 账户
 //@param $salt string 盐值
-if (!function_exists('makeToken')) {
-    function makeToken(int $admin_id = 0, string $username = '', string $salt = ''): string
+if (!function_exists('make_token')) {
+    function make_token(int $admin_id = 0, string $username = '', string $salt = ''): string
     {
         $now = time();
         $str = $username . $salt . (string)$now;
@@ -42,8 +42,8 @@ if (!function_exists('makeToken')) {
 
 //校验token
 //@param $salt string 盐值
-if (!function_exists('verifyToken')) {
-    function verifyToken(string $token = '')
+if (!function_exists('verify_token')) {
+    function verify_token(string $token = '')
     {
         $has = AdminTokenModel::where(['token' => $token])->findOrEmpty();
         if ($has->isEmpty()) throw new ValidateException('token不存在');
@@ -107,8 +107,8 @@ if (!function_exists('curl_request')) {
 
 //生成编码
 //@param $str string 前缀
-if (!function_exists('makeNo')) {
-    function makeNo(string $str = ''): string
+if (!function_exists('make_no')) {
+    function make_no(string $str = ''): string
     {
         $date = date("ymdHis");
 //        $year = date("Y")-2000;
@@ -140,9 +140,9 @@ if (!function_exists('randomkeys')) {
  * @param $files
  * @return array
  */
-if (!function_exists('UploadImg')) {
+if (!function_exists('upload_img')) {
 
-    function UploadImg($files): array
+    function upload_img($files): array
     {
         $savename = [];
         $files = !is_array($files) ? [$files] : $files;
@@ -229,7 +229,7 @@ if (!function_exists('excel_save')) {
         @$zip->addFile($url, $fileName . DIRECTORY_SEPARATOR . basename($url));
         # 5.4 关闭压缩包写入
         $zip->close();
-        @deldir($dir);
+        @del_dir($dir);
         # 6. 检查文件是否存在,并输出文件
         if (!file_exists($file_dir)) throw new \think\Exception('导出文件不存在');
 
@@ -264,8 +264,8 @@ if (!function_exists('read_big_file')) {
 }
 
 //递归删除目录内的所有文件和本目录
-if (!function_exists('deldir')) {
-    function deldir($path)
+if (!function_exists('del_dir')) {
+    function del_dir($path)
     {
         //如果是目录则继续
         if (is_dir($path)) {
@@ -279,7 +279,7 @@ if (!function_exists('deldir')) {
                         //如果是目录则递归子目录,继续操作
                         if (is_dir($path . $val)) {
                             //子目录中操作删除文件夹和文件
-                            deldir($path . $val . '/');
+                            del_dir($path . $val . '/');
                         } else {
                             //如果是文件直接删除
                             unlink($path . $val);
@@ -294,3 +294,14 @@ if (!function_exists('deldir')) {
 }
 
 
+//根据省市区编码获取省市区名称
+if (!function_exists('get_addr_name')) {
+    function get_addr_name(string $addr_code = ''): string
+    {
+        $rs = \think\facade\Db::name('area')
+            ->whereIn('code', $addr_code)
+            ->column('name');
+        return implode('', $rs);
+    }
+}
+

+ 2 - 2
app/mobile/config/validate_rules.php

@@ -50,10 +50,10 @@ return [
     ],
 
     //【订单】
-    'orderAdd'=>[
+    'ExchangeOrderAdd'=>[
         'good_id|商品'=>'require|number|gt:0',
         'addr_id|收货地址'=>'require|number|gt:0',
-        'num|购买数量'=>'require|number|gt:0',
+        'num|购买数量'=>'require|number|gt:0|lt:999999999',
         'remark|'=>'max:255',
     ],
 

+ 12 - 1
app/mobile/controller/Exchange.php

@@ -34,7 +34,7 @@ class Exchange extends BaseController
 
         $param = $this->request->only(['good_id','addr_id','num','remark'],'post');
 
-        $val = Validate::rule(Config::get('validate_rules.orderAdd'));
+        $val = Validate::rule(Config::get('validate_rules.ExchangeOrderAdd'));
 
         if(!$val->check($param)) throw new ValidateException($val->getError());
 
@@ -42,5 +42,16 @@ class Exchange extends BaseController
 
     }
 
+    //兑换订单列表
+    public function orderList(){
+        $param = $this->request->only(['page' => 1, 'size' => 10,'status'=>''], 'post');
+        return ExchangeLogic::orderList($param);
+    }
+
+    //兑换订单详情
+    public function orderInfo(){
+        $id = $this->request->post('id/d', 0);
+        return ExchangeLogic::orderInfo($id);
+    }
 
 }

+ 3 - 3
app/mobile/logic/AccountLogic.php

@@ -26,7 +26,7 @@ class AccountLogic extends BaseLogic
                 ->findOrEmpty();
 
             if ($rs->isEmpty()) throw new Exception('该卡号不存在,请仔细核对');
-            if (getPassword($data['password'], $rs->salt) != $rs->password) throw new Exception('密码错误');
+            if (get_password($data['password'], $rs->salt) != $rs->password) throw new Exception('密码错误');
 
             $date = date('Y-m-d H:i:s');
 
@@ -100,10 +100,10 @@ class AccountLogic extends BaseLogic
 
         if (empty($rs)) return json_show(CommonModel::$error_token, '该账户不存在');
 
-        if (getPassword($data['old_password'], $rs['salt']) != $rs['password']) return json_show(CommonModel::$error_param, '密码错误');
+        if (get_password($data['old_password'], $rs['salt']) != $rs['password']) return json_show(CommonModel::$error_param, '密码错误');
 
         $salt = randomkeys(6);
-        $password = getPassword($data['new_password'], $salt);
+        $password = get_password($data['new_password'], $salt);
 
         $da = [
             'pwd' => $data['new_password'],

+ 5 - 3
app/mobile/logic/BaseLogic.php

@@ -6,15 +6,17 @@ class BaseLogic
 {
     protected static $aid = 0;//当前操作的账户id
     protected static $aname = '';//当前操作的账户名
-    protected static $company_id = '';//企业id
-    protected static $card_id = '';//卡类型id
+    protected static $company_id = 0;//企业id
+    protected static $card_id = 0;//卡类型id
+    protected static $group_id = 0;//所属组合id
 
     //设置用户信息
-    public static function setUserInfo(int $aid = 0, string $aname = '', int $company_id = 0, int $card_id = 0)
+    public static function setUserInfo(int $aid = 0, string $aname = '', int $company_id = 0, int $card_id = 0,int $group_id=0)
     {
         self::$aid = $aid;
         self::$aname = $aname;
         self::$company_id = $company_id;
         self::$card_id = $card_id;
+        self::$group_id = $group_id;
     }
 }

+ 1 - 5
app/mobile/logic/CommonLogic.php

@@ -41,12 +41,8 @@ class CommonLogic extends BaseLogic
     //手机主题
     public static function theme(): Json
     {
-        $group_id = GroupModel::where(['is_del' => CommonModel::$del_normal, 'company_id' => self::$company_id, 'card_id' => self::$card_id])
-            ->value('id', 0);
-        if (!$group_id) return json_show(CommonModel::$error_param, '该账户所对应的分组不存在');
-
         $rs = ThemeModel::field('id,code')
-            ->where(['is_del' => CommonModel::$del_normal, 'group_id' => $group_id, 'status' => CommonModel::$status_normal])
+            ->where(['is_del' => CommonModel::$del_normal, 'group_id' => self::$group_id, 'status' => CommonModel::$status_normal])
             ->append(['modular'])
             ->withAttr('modular', function ($val, $data) {
                 return Db::name('theme_modular')

+ 107 - 18
app/mobile/logic/ExchangeLogic.php

@@ -2,10 +2,13 @@
 
 namespace app\mobile\logic;
 
+use app\model\AddrModel;
 use app\model\CommonModel;
 use app\model\CompanyGoodModel;
 use app\model\GoodModel;
 use app\model\GroupModel;
+use app\model\InventoryExchangeModel;
+use app\model\OrderExchangeModel;
 use think\Exception;
 use think\facade\Db;
 use think\response\Json;
@@ -16,16 +19,10 @@ class ExchangeLogic extends BaseLogic
     //商品列表
     public static function goodList(array $data = []): Json
     {
-
-        $group_id = GroupModel::where(['is_del' => CommonModel::$del_normal, 'company_id' => self::$company_id, 'card_id' => self::$card_id])
-            ->value('id', 0);
-        if (!$group_id) return json_show(CommonModel::$error_param, '该账户所对应的分组不存在');
-
-
         $db = CompanyGoodModel::alias('a')
             ->leftJoin('good b', 'b.id=a.good_id AND b.type=' . GoodModel::$type_exchange . ' AND b.is_del=' . CommonModel::$del_normal)
             ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
-            ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => $group_id]);
+            ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => self::$group_id]);
 
         $count = $db->count('a.id');
 
@@ -62,35 +59,127 @@ class ExchangeLogic extends BaseLogic
 
     }
 
-    //下单
+    //兑换商品下单
     public static function orderAdd(array $data = []): Json
     {
-
         Db::startTrans();
 
         try {
 
+            //判断收货地址
+
+            $rs = AddrModel::field('id')
+                ->where(['is_del' => CommonModel::$del_normal, 'id' => $data['addr_id'], 'uid' => self::$aid])
+                ->findOrEmpty()
+                ->isEmpty();
+            if ($rs) throw new Exception('该地址不存在');
+
+
+            //判断商品
+            $rs = CompanyGoodModel::alias('a')
+                ->field('a.id,a.good_id,b.good_code,b.good_name,b.status,b.moq,c.id inventory_id,c.inventory')
+                ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
+                ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
+                ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => self::$group_id, 'a.good_id' => $data['good_id']])
+                ->findOrEmpty();
+
+            if ($rs->isEmpty()) throw new Exception('该商品不存在或不允许兑换');
+            if ($rs->status != CommonModel::$status_normal) throw new Exception('该商品已被禁用');
+            if ($rs->moq > $data['num']) throw new Exception('不满足该商品的起订量,' . $rs->moq);
+            if ($rs->inventory < $data['num']) throw new Exception('库存数不足');
+
+            $date = date('Y-m-d H:i:s');
+
+            $after_inventory = bcsub($rs->inventory, $data['num']);
+
+            //添加库存变动记录
+            Db::name('inventory_exchange_log')
+                ->insert([
+                    'inventory_exchange_id' => $rs->inventory_id,
+                    'before_inventory' => $rs->inventory,
+                    'after_inventory' => $after_inventory,
+                    'good_id' => $rs->good_id,
+                    'good_code' => $rs->good_code,
+                    'good_name' => $rs->good_name,
+                    'source' => CommonModel::$source_account,
+                    'createrid' => self::$aid,
+                    'creater' => self::$aname,
+                    'addtime' => $date
+                ]);
+
+            //扣减库存
+            InventoryExchangeModel::where('id', $rs->inventory_id)
+                ->save(['inventory' => $after_inventory, 'updaterid' => self::$aid, 'updater' => self::$aname, 'updatetime' => $date]);
+
+            //生成兑换订单
+            OrderExchangeModel::create([
+                'orderCode' => make_no('DH'),
+                'company_id' => self::$company_id,
+                'card_id' => self::$card_id,
+                'uid' => self::$aid,
+                'good_id' => $rs->good_id,
+                'num' => $data['num'],
+                'addr_id' => $data['addr_id'],
+                'remark' => $data['remark'],
+                'status' => CommonModel::$status_not_deliver,
+                'is_del' => CommonModel::$del_normal,
+                'creater' => self::$aname,
+                'createrid' => self::$aid,
+                'addtime' => $date,
+                'updater' => self::$aname,
+                'updaterid' => self::$aid,
+                'updatetime' => $date,
+            ])->save();
 
+            Db::commit();
 
+            return json_show(CommonModel::$success, '兑换商品成功');
+        } catch (Exception $exception) {
+            Db::rollback();
+            return json_show(CommonModel::$error_param, '兑换失败,' . $exception->getMessage());
+        }
 
+    }
 
+    //兑换订单列表
+    public static function orderList(array $data = []): Json
+    {
+        $db = OrderExchangeModel::alias('a')
+            ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
+            ->where('a.is_del', CommonModel::$del_normal);
 
+        if ($data['status'] != '') $db->where('a.status', $data['status']);
 
+        $count = $db->count('a.id');
 
+        $list = $db
+            ->field('a.id,a.orderCode,b.good_name,a.num,a.status,a.addtime')
+            ->page($data['page'], $data['size'])
+            ->order('a.id', 'desc')
+            ->select()
+            ->toArray();
 
+        return json_show(CommonModel::$success, '获取兑换订单列表成功', ['count' => $count, 'list' => $list]);
 
+    }
 
+    //兑换订单详情
+    public static function orderInfo(int $id = 0): Json
+    {
+        $rs = OrderExchangeModel::alias('a')
+            ->field('a.id,a.orderCode,a.status,a.addtime,b.good_name,a.num,c.contactor,c.mobile,c.addr,c.addr_code')
+            ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
+            ->leftJoin('addr c', 'c.id=a.addr_id AND c.is_del=' . CommonModel::$del_normal)
+            ->where(['a.is_del' => CommonModel::$del_normal, 'a.id' => $id])
+            ->withAttr('addr', function ($val, $da) {
+                return $da['addr_code'] ? get_addr_name($da['addr_code']) . $val : $val;
+            })
+            ->findOrEmpty()
+            ->toArray();
 
-
-
-            Db::commit();
-
-            return json_show(CommonModel::$success, '兑换商品成功');
-        } catch (Exception $exception) {
-            Db::rollback();
-            return json_show(CommonModel::$error_param, '兑换失败,' . $exception->getMessage());
-        }
+        return $rs ? json_show(CommonModel::$success, '获取兑换订单详情成功', $rs) : json_show(CommonModel::$error_param, '该订单不存在');
 
     }
 
+
 }

+ 13 - 4
app/mobile/middleware/mobileMiddleware.php

@@ -44,12 +44,13 @@ class mobileMiddleware
 
                 //获取用户信息
                 $account = $this->verifyMobileToken($param['token']);
-                BaseLogic::setUserInfo($account['aid'], $account['aname'], $account['company_id'], $account['card_id']);
+                BaseLogic::setUserInfo($account['aid'], $account['aname'], $account['company_id'], $account['card_id'],$account['group_id']);
 
                 $request->aid = $account['aid'];
                 $request->aname = $account['aname'];
                 $request->company_id = $account['company_id'];
                 $request->card_id = $account['card_id'];
+                $request->group_id = $account['group_id'];
             } catch (ValidateException $validateException) {
                 return json_show(CommonModel::$error_token, $validateException->getError());
             }
@@ -80,8 +81,10 @@ class mobileMiddleware
 
         if (strtotime($has->expiretime) <= time()) throw new ValidateException('token已失效');
 
-        $account = AccountModel::where(['id' => $has->accountid, 'is_del' => CommonModel::$del_normal])
-            ->field('id,status,username,salt,company_id,card_id')
+        $account = AccountModel::alias('a')
+            ->where(['a.id' => $has->accountid, 'a.is_del' => CommonModel::$del_normal])
+            ->field('a.id,a.status,a.username,a.salt,a.company_id,a.card_id,b.id group_id')
+            ->leftJoin('group b', 'b.company_id=a.company_id AND b.card_id=a.card_id AND b.is_del=' . CommonModel::$del_normal)
             ->findOrEmpty();
         if ($account->isEmpty()) throw new ValidateException('未找到账户');
 
@@ -93,7 +96,13 @@ class mobileMiddleware
         if ($account_str == $account->username . $account->salt) {
             AccountTokenModel::where(['token' => $token])
                 ->save(['expiretime' => date('Y-m-d H:i:s', time() + Config::get('common.expire'))]);
-            return ['aid' => $account->id, 'aname' => $account->username, 'company_id' => $account->company_id, 'card_id' => $account->card_id];
+            return [
+                'aid' => $account->id,
+                'aname' => $account->username,
+                'company_id' => $account->company_id,
+                'card_id' => $account->card_id,
+                'group_id' => $account->group_id
+            ];
         } else throw new ValidateException('账户token无效');
 
     }

+ 3 - 0
app/mobile/route/app.php

@@ -24,5 +24,8 @@ Route::rule('serviceRead', 'Service/read');//读取
 //【兑换商品】
 Route::rule('exchangeGoodList', 'Exchange/goodList');//商品列表
 Route::rule('exchangeGoodInfo', 'Exchange/goodInfo');//商品详情
+Route::rule('exchangeOrderAdd', 'Exchange/orderAdd');//兑换商品下单
+Route::rule('exchangeOrderList', 'Exchange/orderList');//兑换订单列表
+Route::rule('exchangeOrderInfo', 'Exchange/orderInfo');//兑换订单详情