123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- namespace app\common\service;
- use app\common\model\ArticleIntro;
- use app\common\model\BillApply;
- use app\common\model\BillHeader;
- use app\common\model\DatumIntro;
- use app\common\model\DeliveryAddress;
- use app\common\model\SupplierGoods;
- use app\common\model\UserSearch;
- use app\common\model\UserVitality;
- use app\common\model\VideoIntro;
- use think\cache\driver\Redis;
- use think\Db;
- class UserSynth extends SerBase
- {
- public static $ret_val = ['code' => 200 , 'msg'=>'ok','extend'=>''];
-
- public static function vitality($user_id,$type)
- {
- if($type === false) return false;
- $type++;
- $redis = new Redis();
- $check_key = date('Y-m-d').'_'.$user_id;
-
- if(!$redis->get($check_key)) {
- $redis->set($check_key,86400);
- $year = date('Y');
- $month = date('m');
- $day = date('d');
- $vitality_info= [
- 'user_id'=>$user_id,
- 'year'=>$year,
- 'month'=>$month,
- 'day'=>$day,
- 'day_time'=>date('Y-m-d'),
- 'create_at'=>date('Y-m-d H:i:s'),
- 'type'=>$type
- ];
- UserVitality::create($vitality_info);
- }
- }
-
- public static function buildBillApply($user_id, $order_id, $order_type,$bill_info,$add_id,$send_type,$remark,$order_pay = 1)
- {
- $order_table = [
- 1=>'level_order',
- 2=>'store_order',
- 3=>'activity_apply',
- ];
- Db::startTrans();
- try {
- $apply_info = [
- 'order_id' => $order_id,
- 'table_name' => $order_table[$order_type],
- 'user_id' => $user_id,
- 'remark' => $remark,
- 'send_type' => $send_type,
- 'order_type' => $order_type,
- 'create_at' => date("Y-m-d H:i:s"),
- 'order_pay' => $order_pay,
- ];
- if($add_id) {
- $add_info = DeliveryAddress::field('id,pro_name,city_name,county_name,mer_name,detail,phone,name')->where('user_id',$user_id)->where('id',$add_id)->find();
- $apply_info['address_info'] = json_encode($add_info->toArray());
- }
- if(is_array($bill_info)){
- $apply_info['header'] = $bill_info['header'];
-
- $apply_info['email'] =$bill_info['email'];
-
-
-
- $apply_info['identify_number'] = $bill_info['identify_number'];
-
- }else if($bill_info){
- $bill_header = BillHeader::where('id',$bill_info) ->where('user_id',$user_id)->find();
- if(empty($bill_header)) self::exception('发票抬头有误');
- $apply_info['header'] = $bill_header->header;
- $apply_info['email'] = $bill_header->email;
- $apply_info['identify_number'] = $bill_header->identify_number;
- }
- $order_info = Db::name($order_table[$order_type])
- ->where('user_id',$user_id)
- ->where('pay_state',1)
- ->where('id',$order_id)
- ->find();
- if(empty($order_info) && $order_type != 3)self::exception('订单有误');
- $check_info = BillApply::where('user_id',$user_id)
- ->where('order_id',$order_id)
- ->where('is_deleted',0)
- ->where('table_name',$order_table[$order_type])
- ->find();
- if(!empty($check_info) && $check_info->status == 1) self::exception('已开票');
- $apply_info = BillApply::create($apply_info);
- static::$ret_val['extend'] = $apply_info->id ;
- Db::commit();
- }catch (\Exception $e) {
- Db::rollback();
- static::$ret_val['code'] = 201 ;
- static::$ret_val['msg'] = $e->getMessage();
- }
- return static::$ret_val;
- }
-
- public static function getAllModuleTitle()
- {
-
- $video = VideoIntro::field('id,title,IF(id,\'video\',0) module')->with(['videoArr'=>function($query){
- return $query->field('id,title,video_id');
- }])->where(['is_deleted'=>0])->order('id desc')->select()->toArray();
- array_walk($video,function (&$v){
- $v['children'] = $v['video_arr'];
- unset($v['video_arr']);
- });
-
- $datum = DatumIntro::with(['urlArr'=>function($query){
- return $query->field('id,title,datum_id');
- }])->where(['is_deleted'=>0])->field('id,title,IF(id,\'datum\',0) module')->order('id desc')->select()->toArray();
- array_walk($datum,function (&$v){
- $v['children'] = $v['url_arr'];
- unset($v['url_arr']);
- });
-
- $article = ArticleIntro::with(['itemChildren'=>function($query){
- return $query->field('id,title,article_id');
- }])->field('id,title,IF(id,\'article\',0) module')->where(['is_deleted'=>0])->order('id asc')->select()->toArray();
- array_walk($article,function (&$v){
- $v['children'] = $v['item_children'];
- unset($v['item_children']);
- });
- $supplier_goods = SupplierGoods::alias('g')->field('g.id,g.supplier_id,g.name title,IF(g.id,\'supplier\',0) module')->where(['g.is_deleted'=>0])
- ->leftJoin('Supplier s', 's.id = g.supplier_id')->select()->toArray();
- return array_merge($video,$datum,$article,$supplier_goods);
-
- }
-
- public static function getRecommendList($user_id,$module,$page,$page_num)
- {
- $module_set = [
- 'press'=>[
- 'type'=> 4,
- 'table'=>'dd_press',
- 'index_field'=>'name',
- 'select_field'=>'a.id,a.title,a.label,a.images,a.read_num,a.transmit_num,a.user_id,a.create_at,IFNULL(is_recommend,0) is_recommend',
- ]
- ];
- $search_log = UserSearch::getSearchTitle($user_id,$module_set[$module]['type']);
- $search_arr = [];
- $where_str = 'b.id > 0';
- foreach ($search_log as $t){
- $search_arr[] = " b.$module_set[$module][\"index_field\"] like '".'%'.$t."%'" .' ';
- $search_arr[] = " b.label like '".'%'.$t."%'" .' ';
- }
- if(!empty($search_arr)) $where_str = implode(' OR ',$search_arr);
- switch ($module)
- {
- case "press":
- break;
- }
- }
-
- public static function phoneMessageSend()
- {
- }
- }
|