| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace app\workerapi\logic\shops;
- use app\common\logic\BaseLogic;
- use app\common\model\article\Article;
- use app\common\model\decorate\DecoratePage;
- use app\common\model\decorate\DecorateTabbar;
- use app\common\model\setting\PostageRegion;
- use app\common\model\shops\ShopAddress;
- use app\common\model\shops\ShopOrders;
- use app\common\model\user\UserAddress;
- use app\common\service\ConfigService;
- use app\common\service\FileService;
- use think\db\Query;
- use think\facade\Db;
- /**
- * 订单
- */
- class ShopOrderLogic extends BaseLogic
- {
- /**
- * @notes 获取详情
- * @param $params
- * @return array
- * @author likeadmin
- * @date 2024/07/18 13:51
- */
- public static function detail($params): array
- {
- $detail = ShopOrders::with(['orderGoods'=>function(Query $query){
- $query->field(['sn','goods_name','goods_image','number','service_fee','company_name','delivery_type','shop_goods_type','goods_specs_inventory_id','specs_type','custom_attribute_items','specs'])->append(['spec_arr','delivery_type_text','shop_goods_type_text']);
- }])->field('id, sn, real_name,mobile, address,pay_time, paw_way,pay_sn, pay_status, refund_status, refund_transaction_id,create_time,shop_order_type,amount_total, order_amount')
- ->append(['pay_way_text','pay_status_text','refund_status_text'])->where(['sn'=> $params['sn'],'worker_id'=>$params['worker_id']])->findOrEmpty()->toArray();
- $orderGoodsArr = [];
- $companyNameArr = array_column($detail['orderGoods'],'company_name');
- foreach($companyNameArr as $val) {
- $orderGoods = [];
- foreach ($detail['orderGoods'] as $goodVal) {
- if($val == $goodVal['company_name']){
- unset($goodVal['goodsSpecsInventory'], $goodVal['custom_attribute_items'], $goodVal['specs'], $goodVal['sn'], $goodVal['goods_specs_inventory_id'],$goodVal['company_name']);
- $orderGoods[] = $goodVal;
- }
- }
- if(!empty($orderGoods)){
- $orderGoodsArr[] = [
- 'company_name' => $val,
- 'goods' => $orderGoods
- ];
- }
- }
- $detail['orderGoods'] = $orderGoodsArr;
- return $detail;
- }
- public static function cancelOrder($params):bool
- {
- Db::startTrans();
- try {
- $orderModel = ShopOrders::where([
- 'shop_order_type' => 1,
- 'worker_id' => $params['worker_id'],
- 'sn'=>$params['sn']
- ])->findOrEmpty();
- if($orderModel->isEmpty()){
- throw new \Exception('订单不存在或不是待支付状态');
- }
- $orderModel->shop_order_type = 0;
- $orderModel->save();
- Db::commit();
- return true;
- } catch (\Exception $e) {
- Db::rollback();
- self::setError($e->getMessage());
- return false;
- }
- }
- }
|