| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- <?php
- // +----------------------------------------------------------------------
- // | likeadmin快速开发前后端分离管理后台(PHP版)
- // +----------------------------------------------------------------------
- // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
- // | 开源版本可自由商用,可去除界面版权logo
- // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
- // | github下载:https://github.com/likeshop-github/likeadmin
- // | 访问官网:https://www.likeadmin.cn
- // | likeadmin团队 版权所有 拥有最终解释权
- // +----------------------------------------------------------------------
- // | author: likeadminTeam
- // +----------------------------------------------------------------------
- namespace app\adminapi\logic\agricultural_machinery;
- use app\adminapi\logic\recharge\RechargeLogic;
- use app\common\enum\PayEnum;
- use app\common\enum\YesNoEnum;
- use app\common\logic\BaseLogic;
- use app\common\model\agricultural_machinery\UserService;
- use app\common\model\article\ArticleCate;
- use app\common\model\user\User;
- use app\common\model\agricultural_machinery\ServiceCategory as AgriculturalMachineryServiceCategory;
- use app\common\model\recharge\RechargeOrder;
- use app\common\model\supply_demand\SupplyDemandInfo;
- use app\common\model\supply_demand\SupplyDemandCate;
- use app\common\model\ServiceCharge;
- use app\common\service\ConfigService;
- use app\common\service\FileService;
- use think\facade\Db;
- /**
- * 服务管理逻辑
- * Class ArticleCateLogic
- * @package app\adminapi\logic\article
- */
- class UserServiceLogic extends BaseLogic
- {
- /**
- * @notes 添加农耕分类
- * @param array $params
- * @author heshihu
- * @date 2022/2/18 10:17
- */
- public static function add(array $params,$type_name)
- {
- Db::startTrans();
- try {
- $where['user_id'] = $params['user_id'];
- $where['type'] = $params['type'];
- $userService = UserService::where($where)->findOrEmpty();
- if(!$userService->isEmpty()){
- Db::rollback();
- self::setError('当前用户存在'.$type_name.'服务信息,无需添加');
- return ['code'=>0,'data'=>[]];
- }
- $result = UserService::create([
- 'user_id' => $params['user_id'],
- 'type' => $params['type'] ?? 1,
- 'name' => $params['name'],
- 'mobile' => $params['mobile'],
- 'agricultural_machinery_model' =>$params['agricultural_machinery_model'],
- 'images' => $params['images'],
- 'cate_id' => ','.$params['cate_id'].',',
- 'area_id' => ','.$params['area_id'].',',
- 'money' => $params['money'],
- 'content'=>$params['content']?? '',
- 'order_id'=>0,
- ]);
- if($result){
- $service_fee = ServiceCharge::find(1);
- $order_money = 0;
- switch ($params['type']){
- case 1 :
- $order_money =$service_fee['agricultural_machinery_service_fee'];
- break;
- case 2 :
- $order_money =$service_fee['bake_service_fee'];
- break;
- case 3 :
- $order_money =$service_fee['air_control_service_fee'];
- break;
- }
- $data = [
- 'sn' => generate_sn(RechargeOrder::class, 'sn'),
- 'user_id' => $params['user_id'],
- 'pay_way'=> 4,
- 'pay_time'=>time(),
- 'service_id'=>$result['id'],
- 'pay_status' => PayEnum::ISPAID,
- 'order_amount' => $order_money,
- ];
- $order = RechargeOrder::create($data);
- $user_service_info = UserService::find($result['id']);
- $user_service_info->order_id = $order['id'];
- $user_service_info->status = 1;
- $user_service_info->expiration_time = time()+365*24*60*60;
- $user_service_info->save();
- $order_info = [
- 'order_id' => (int)$order['id'],
- 'order_sn' => $order['sn'],
- 'from' => 'service',
- 'result'=>$result
- ];
- }
- Db::commit();
- return ['code'=>1,'data'=>$order_info];
- } catch (\Exception $e) {
- Db::rollback();
- self::setError($e->getMessage());
- return ['code'=>0,'data'=>[]];
- }
- }
- /**
- * @notes 删除农耕分类
- * @param array $params
- * @author heshihu
- * @date 2022/2/21 17:52
- */
- public static function delete(array $params)
- {
- UserService::destroy($params['id']);
- }
- /**
- * @notes 查看服务商详情
- * @param $params
- * @return array
- * @author heshihu
- * @date 2022/2/21 17:54
- */
- public static function detail($params) : array
- {
- return UserService::findOrEmpty($params['id'])->toArray();
- }
- /**
- * @notes 更改服务商状态
- * @param array $params
- * @return bool
- * @author heshihu
- * @date 2022/2/21 18:04
- */
- public static function updateStatus(array $params)
- {
- UserService::update([
- 'id' => $params['id'],
- 'status' => $params['status']
- ]);
- return true;
- }
- /**
- * @notes 服务商审核状态
- * @param array $params
- * @return bool
- * @author heshihu
- * @date 2022/2/21 18:04
- */
- public static function auditUserService(array $params)
- {
- Db::startTrans();
- try {
- $user_service_info = UserService::find( $params['id']);
- if(empty($user_service_info)){
- Db::rollback();
- self::setError('传入的服务信息错误!');
- return false;
- }
- if($user_service_info['status']<>1){
- Db::rollback();
- self::setError('当前服务已过期或者未支付,无法审核!');
- return false;
- }
- $updateDate['id'] = $params['id'];
- $updateDate['audit_status'] = $params['audit_status'];
- $updateDate['audit_time'] = time();
- if ($params['audit_status'] == 2) {
- $updateDate['remark'] = $params['remark'];
- }
- $ret = UserService::update($updateDate);
- if(!$ret){
- Db::rollback();
- self::setError('审核信息更新失败');
- return false;
- }
- switch ($params['audit_status']){
- case 1:
- $audit_status = 4;
- break;
- case 2:
- $audit_status = 5;
- break;
- }
- $order_id = $user_service_info['order_id'];
- switch ($user_service_info['type']){
- case 1:
- $useWhere['agricultural_id'] = $order_id;
- $useData['agricultural_status'] = $audit_status;
- break;
- case 2:
- $useWhere['bake_id'] = $order_id;
- $useData['bake_status'] = $audit_status;
- break;
- case 3:
- $useWhere['air_id'] = $order_id;
- $useData['air_status'] = $audit_status;
- break;
- }
- $ret = User::where($useWhere)->update($useData);
- if(!$ret){
- Db::rollback();
- self::setError('更新用户信息失败');
- return false;
- }
- if ($params['audit_status'] == 2) {
- //退款
- $refund_data['recharge_id'] = $order_id;
- RechargeLogic::refund($refund_data, $params['user_id']);
- }
- Db::commit();
- return true;
- } catch (\Exception $e) {
- Db::rollback();
- self::setError($e->getMessage());
- return false;
- }
- }
- /**
- * @notes 有效用户数据
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- * @author 段誉
- * @date 2022/10/13 10:53
- */
- public static function getValidUserData()
- {
- $list = User::where(['is_disable' => YesNoEnum::NO])
- ->field('id,sn,nickname,account')
- ->order([ 'id' => 'desc'])
- ->select()
- ->toArray();
- return $list;
- }
- public static function getServiceContent(){
- $info = ServiceCharge::field('agricultural_service,bake_service,air_service')->find(1)->toArray();
- return $info;
- }
- public static function saveServiceContent($post){
- if(isset($post['agricultural_service']) && !empty($post['agricultural_service'])){
- $saveData['agricultural_service'] = $post['agricultural_service'];
- }
- if(isset($post['bake_service']) && !empty($post['bake_service'])){
- $saveData['bake_service'] = $post['bake_service'];
- }
- if(isset($post['air_service']) && !empty($post['air_service'])){
- $saveData['air_service'] = $post['air_service'];
- }
- $saveData['id'] = 1;
- ServiceCharge::update($saveData);
- return true;
- }
- public static function getServiceDisclaimer(){
- $data['disclaimer'] = ConfigService::get('website', 'disclaimer');
- return $data;
- }
- public static function saveServiceDisclaimer($post){
- ConfigService::set('website','disclaimer', $post['disclaimer'] ?? '');
- return true;
- }
- public static function getServiceList(){
- // //农资供应
- $sdswhere = [];
- $sdswhere[]=['sdi.status','=',2];
- $sdswhere[]=['sdi.type','=',1];
- $SupplyInfo = SupplyDemandInfo::alias('sdi')
- ->leftJoin('supply_demand_cate sdc','sdi.cate_id = sdc.id')->field('sdi.cate_id,sdc.name,sum(number) total_num')->where($sdswhere)->group('cate_id')->select()->toArray();
- $cate_name_arr = array_column($SupplyInfo,'name');
- $value_arr = array_column($SupplyInfo,'total_num');
- $middle['cate_name'] = $cate_name_arr;
- $middle['cate_value'] = $value_arr;
- $uswhere = [];
- $uswhere[]=['status','=',1];
- $UserServiceInfo = UserService::field('type,count(id) total_num')->where($uswhere)->group('type')->order('type asc')->select()->toArray();
- $type_arr =[1,2,3];
- $utype_arr = array_column($UserServiceInfo,'type');
- $user_service_value = [];
- foreach($type_arr as $tv){
- $data=[];
- if(in_array($tv,$utype_arr)){
- foreach($UserServiceInfo as $usv){
- if($tv == $usv['type']){
- $data['value'] = $usv['total_num'];
- }
- }
- }else{
- $data['value'] = 0;
- }
- switch ($tv){
- case 1:
- $type_name = '农机服务';
- break;
- case 2:
- $type_name = '烘干服务';
- break;
- case 3:
- $type_name = '飞防服务';
- break;
- }
- $data['name'] = $type_name;
- $user_service_value[]=$data;
- }
- $middle['user_service_value'] = $user_service_value;
- //
- $sdswhere = [];
- $sdswhere[]=['sdi.status','=',2];
- $sdswhere[]=['sdi.type','=',1];
- $nowYear = date('Y');
- $nowMonth = date('n');
- $date_arr = getMonthFirstAndLastDay($nowYear,$nowMonth);
- $lastDate = $date_arr['lastDay'];
- $firstDate = $date_arr['firstDay'];
- $sdswhere[]=['sdi.create_time','between',[strtotime($firstDate),strtotime($lastDate.' 23:59:59')]];
- $SupplyInfo = SupplyDemandInfo::alias('sdi')
- ->leftJoin('supply_demand_cate sdc','sdi.cate_id = sdc.id')->field('sdi.cate_id,sdc.name,sum(number) total_num')
- ->where($sdswhere)->group('cate_id')->order('total_num desc')->limit(6)->select()->toArray();
- $cate_name_arr = array_column($SupplyInfo,'name');
- $value_arr = array_column($SupplyInfo,'total_num');
- $cate_id_arr = array_column($SupplyInfo,'cate_id');
- foreach($SupplyInfo as &$siv){
- unset($siv['cate_id']);
- $siv['value'] = $siv['total_num'];
- unset($siv['total_num']);
- }
- $cwhere=[];
- $cwhere[]=['id','in',$cate_id_arr];
- $cateList = SupplyDemandCate::where($cwhere)->field('id,pid')->select()->toArray();
- $pcate_arr = array_column($cateList,'pid');
- $pcate_arr = array_unique($pcate_arr);
- $pwhere=[];
- $pwhere[]=['id','in',$pcate_arr];
- $pcateList = SupplyDemandCate::where($pwhere)->field('id,name')->select()->toArray();
- // $first_cate_name = [];
- // if($pcateList){
- // $first_cate_name =array_column($pcateList,'name');
- // }
- $middle['SupplyDemandInfo'] = $SupplyInfo;
- $middle['supply_cate_name'] = $cate_name_arr;
- $middle['supply_cate_value'] = $value_arr;
- $middle['supply_first_cate_name'] = $pcateList;
- return $middle;
- }
- }
|