123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- declare (strict_types=1);
- namespace app\api\controller;
- use app\api\model\ExploreSet;
- use app\api\model\Order as OrderModel;
- use app\api\model\OrderRefund as OrderRefundModel;
- use app\api\model\Setting as SettingModel;
- use app\api\model\User as UserModel;
- use app\api\service\User as UserService;
- use app\common\enum\Setting as SettingEnum;
- use app\common\exception\BaseException;
- use app\api\model\OrderGoods;
- use app\console\model\user\CommissionsDetail;
- /**
- * 我的店铺
- * Class Order
- * @package app\api\controller
- */
- class Shop extends Controller
- {
- /**
- * 订单详情信息/确认核销
- * @param string $hxCode 核销码
- * @return array|\think\response\Json
- * @throws BaseException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function writeOff(string $hxCode)
- {
- $user = UserService::getCurrentLoginUser();
- // 订单详情
- $order = OrderModel::detail(
- [
- 'hx_code' => $hxCode,
- 'shop_id' => $user['shop_id'],
- ], [
- 'goods' => ['image', 'refund'], 'hxUser', 'shops','staffUser'
- ]);
- empty($order) && throwError('订单不存在');
- OrderModel::restructureGoods($order);
- if ($this->request->isGet()) {
- return $this->renderSuccess(['order' => $order]);
- }
- //确认核销
- if (!$order->writeOff()) {
- return $this->renderError($order->getError());
- }
- return $this->renderSuccess('核销成功');
- }
- /**
- * 售后详情信息/确认退款
- * @param string $hxRefundCode
- * @return array
- * @throws BaseException
- * @author: zjwhust
- * @Time: 2021/12/11 13:58
- */
- public function refundDetail(string $hxRefundCode){
- $user = UserService::getCurrentLoginUser();
- //读取订单详情的的退款记录
- $orderRefund = OrderRefundModel::detail(
- [
- 'hx_refund_code' => $hxRefundCode,
- 'shop_id' => $user['shop_id'],
- ], [
- 'orderGoodsAll' => ['image', 'staffUser'], 'hxUser', 'orderData' => ['hxUser', 'shops']
- ]
- );
- empty($orderRefund) && throwError('退款记录不存在');
- $orderRefund = $orderRefund->toArray();
- $orderRefund['goods_sku_no'] = '';
- if($orderRefund['order_goods_id']>0){
- foreach ($orderRefund['orderGoodsAll'] as $key=>$orderGoods){
- if($orderGoods['order_goods_id'] == $orderRefund['order_goods_id']){
- $orderRefund['goods_sku_no'] = $orderGoods['goods_sku_no'];
- }
- }
- }
- return $this->renderSuccess(['refund' => $orderRefund]);
- }
- /**
- * 审核售后单(同意/拒绝)
- * @return array
- * @throws BaseException
- * @author: zjwhust
- * @Time: 2021/12/13 15:58
- */
- public function refundEdit(){
- $param = $this->request->post();
- if($param['audit_status']==20){
- if(empty($param['refuse_desc'])){
- throwError('拒绝退货时退货理由不能为空');
- }
- }
- $user = UserService::getCurrentLoginUser();
- $orderRefund = OrderRefundModel::detail(
- [
- 'hx_refund_code' => $param['hx_refund_code'],
- 'shop_id' => $user['shop_id'],
- ],[
- 'shops'
- ]);
- //同意/拒绝退款的操作
- if (!$orderRefund->auditStatus($param,$user)) {
- return $this->renderError($orderRefund->getError());
- }
- return $this->renderSuccess('操作成功');
- }
- /**
- * 处理所有用户的推荐官等级
- * 1、统计
- * @author: zhangq
- * @Time: 2021/12/14 9:35
- */
- public function recommender(){
- //1、有效期内销售额未达任务值,普通推荐官直接延长过期时间,高级推荐官、超级推荐官降级
- //2、有效期内销售额达任务值,直接升级(超级推荐官不升级),并且重新统计销售额度和有效期
- $userList = UserModel::where(['role'=>99])->select();
- $grade = SettingModel::getItem(SettingEnum::DISTRIBUTOR_GRADE)['distributor'];
- $grade_one = $grade[1]['cumulative']*10000;
- $grade_two = $grade[2]['cumulative']*10000;
- // dd($grade_one);
- foreach ($userList as $user){
- $user['seller_expire'] = !is_string($user['seller_expire'])?$user['seller_expire']: time();
- $start = strtotime("-1 year",$user['seller_expire']);
- $end = $user['seller_expire'];
- $orderId = CommissionsDetail::getRefundCommOrderId($user['user_id'],$start,$end);
- $total_amount = OrderModel::field("sum(pay_price + rice_card_money - express_price) as total_amount")
- ->whereIn('order_id',$orderId)
- ->whereBetweenTime('create_time', $start, $end)
- ->find();
- $total_pay_price = (int)$total_amount['total_amount'];
- switch ($user['seller_grade']){
- case 1:
- if($total_pay_price<$grade_one){
- if($user['seller_expire']-time()<86400){//小于1天,延长普通推荐官的过期时间
- $seller_expire = strtotime("+1 year ".$user['seller_expire']);
- UserModel::updateBase(['seller_expire'=>$seller_expire],['user_id'=>$user['user_id']]);
- }
- }
- if($total_pay_price>=$grade_one){
- if($total_pay_price>=$grade_two){//直接升级为超级推荐官
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire'=>$seller_expire,'seller_grade'=>3],['user_id'=>$user['user_id']]);
- }else{//升级为高级推荐官
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire'=>$seller_expire,'seller_grade'=>2],['user_id'=>$user['user_id']]);
- }
- }
- break;
- case 2:
- if($total_pay_price<$grade_one){
- if($user['seller_expire']-time()<86400){//小于1天,降级为普通推荐官并重置过期时间
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire'=>$seller_expire,'seller_grade'=>1],['user_id'=>$user['user_id']]);
- }
- }
- if($total_pay_price>=$grade_one && $total_pay_price<$grade_two){
- if($user['seller_expire']-time()<86400) {//小于1天,延长高级推荐官的过期时间
- $seller_expire = strtotime("+1 year " . $user['seller_expire']);
- UserModel::updateBase(['seller_expire' => $seller_expire, 'seller_grade' => 2], ['user_id' => $user['user_id']]);
- }
- }
- if($total_pay_price>=$grade_two){//升级为超级推荐官
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire'=>$seller_expire,'seller_grade'=>3],['user_id'=>$user['user_id']]);
- }
- break;
- case 3:
- if($total_pay_price<$grade_one || $total_pay_price<$grade_two){
- if($user['seller_expire']-time()<86400){//小于1天,降级为高级推荐官并重置过期时间
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire'=>$seller_expire,'seller_grade'=>2],['user_id'=>$user['user_id']]);
- }
- }
- if($total_pay_price>=$grade_two){
- if($user['seller_expire']-time()<86400) {//小于1天,延长超级推荐官的过期时间
- $seller_expire = strtotime("+1 year");
- UserModel::updateBase(['seller_expire' => $seller_expire, 'seller_grade' => 3], ['user_id' => $user['user_id']]);
- }
- }
- break;
- }
- }
- }
- /**
- * 探索、体验详情
- * @param string $key
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function explores(string $type)
- {
- $values = ExploreSet::getItem($type);
- if (empty($values)){
- return $this->renderSuccess(compact('values'));
- }
- $values['preview_url'] = $values['ali_url'].'?x-oss-process=video/snapshot,t_1000,m_fast';
- return $this->renderSuccess(compact('values'));
- }
- }
|