【小(xiǎo)編推薦】CRMEB二次開(kāi)發知(zhī)識點✘₽1

2024-02-19   |&nbεπsp;  發布者:  &nbs≈"p;|   查看(kàn):3320次

CRMEB

後台的(de)前端:

使用(yòng)了(le) iview

cd 到(dào)文(wén)件(jiàn)夾下(xià)面,然後 npγ≠←±m install ,npm run serve.

---------

--------

ngix跨域:

add_header Access-Control≠δ-Allow-Origin '*'™₽☆;

add_header Access-Control-Allow-M&♥≠₽ethods 'POST,PUT,GET,D≤≈ ELETE';

add_header Access-Control-Allow-H≠¥eaders 'version, acces™δ≈s-token, user-token, Accept,$Ω±$ apiAuth, User-Agent♣☆, Keep-Alive, Origin, No-Cacπ∏he, X-Requested-With, If-Modified-Sincε& ®e, Pragma, Last-Modified, Cache-Contro​'♥l, Expires, Content-Type, X-E4M-‍♠ With';

if ($request_method = ₽‍9;OPTIONS') {

return 204;

}

--------------------‌±--------------

後台前端地(dì)址修改:setting.js中

const Url = 'http://qi.域名.com/ad✘≥≥↑minapi'

數(shù)據字典:

https://doc.crmeb.com/web/single/crmeb∑☆≈_v4/1130

前端教程:https://ke.qq.com/course/4125326♣δ®δ?tuin=5e252c1

v4代碼及教程:https://gitee.c₹$om/ZhongBangKeJi/CRMEB#https://gite↓♥e.com/link?target=http≈☆↔​s%3A%2F%2Fke.qq.com%σγ‌↑2Fcourse%2F4125326%3Ftuin≈Ω¥%3D5e252c1

視(shì)頻(pín)教程:

https://www.bilibili.com™∞/video/av713792287/?p=2&am£↓λ≈p;spm_id_from=pageDriver↑☆×φ

-------------------------------------♦σ

接口開(kāi)發:

在/daosheng.域名.com/app/api/route/ 中查找(§&開(kāi)源版),對(duì)應的(de)路(lù)徑和(hé)控制(♠πzhì)器(qì)

在//sjyh.域名.com/route/api.php 中§∑₽δ查找(開(kāi)源版),對(duì)應的(de)路(lù)徑和(hé)控制(•™zhì)器(qì)

如(rú):

Route::get('site_con←♦fig', 'v1.PublicControlleφ≤↓λr/getSiteConfig')->n×₹§♥ame('getSiteConfig');/α±φ/獲取網站(zhàn)配置

http://daosheng.域名.com/api/site_config ←"對(duì)應的(de)控制(zhì)器(qì)是(shì)Ω←✘Ω app/api/controller/v1/PublicC↑φ∞ontroller.php 中的(de)₹© getSiteConfig方法。

舉例:

在 /daosheng.域名.com/app/api/route/V1$®<.PHP中,

Route::get('jifenzhuanzhang', &↔₽✔ε#39;v1.LiangControlle¥₹r/jifenzhuanzhang')->name§↔('jifenzhuanzhan≈‌'δg');//積分(fēn)轉賬(注意增加到(≥£$dào)middleware(\app\api\mi™ ↓ddleware\AuthTokenMiddlew≠©✔✘are)是(shì)需要(yào)驗證token↓→∞的(de),

然後在/app/api/controller/≥¶♠v1/下(xià)面創建文(wén)件(jiàn) LiangCΩ©&>ontroller.php,創建方法

訪問(wèn)路(lù)徑:

https://daosheng.域名.com/api/jif$©enzhuanzhang?ziji=2&jine=3♣>0&duifang=13546303520

https://qi.域名.com/apiγ"λ/jifenzhuanzhang?ziji=2"↓× &jine=30&duifang=135463035★σ20

---------------------------¶£∑‍-------------------------------------π$------

--------------------------------------©₽∏-------------------------------≥✔±

成功後執行(xíng)的(de)方法:/qi.域名.com/app/lisπ•<£tener/order/Pay.php

在訂單表中增加字段,方便查找 :

/daosheng.域名.com/app/services/o‍≈rder/StoreOrderCreateServices.php

-*-*-*-*-*-*-*-*-*-*-*-π↔*-*-*-*-*-*-*-*-*-*-*-ε≤​≠*-*-*-*-*-*-*-*-*-*-*-*-

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*∞>→¶-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*♠β≠

支付後執行(xíng)操作(zuò):

/qi.域名.com/app/listener/ord≥☆er/Pay.php 監聽(tīng)到(dào)支 ♦付後執行(xíng)的(de)動作(zuò)。

-----------------

打印會(huì)員(yuán)信息:

import {

getUserInfo

} from '@/api/user.js';

getUserInfo().then(res => {})

{"uid":23,"r®☆↑¥eal_name":""$π≥,"birthday":0,"∏★∞;card_id":"&qu•×≠∏ot;,"mark":"",&qu£>≠ot;partner_id":0,"group_id&qu$→★ot;:0,"nickname":"龍光(¥→guāng)科(kē)技(jì)","avatar&Ωδ♦εquot;:"https://sjyhεα.域名.com/uploads/system/723adbdd4e49a≥Ω¶0f9394dfc700ab5dba3.png&q¥₩πΩuot;,"phone":"138∏✔₹34146602","•↑→™add_time":165089374β±7,"last_time":1650903308,&÷α£quot;now_money":"0.00&qu↔ '÷ot;,"brokerage_price"£♠;:"0.00","inte∞δ•​gral":30,"exp&q←β ♠uot;:"500.00"↔¶;,"sign_num":1γ×,"status":1,"le↕±®♣vel":1,"agent_level":0λ☆∞,"spread_open":1,"spr↕™ αead_uid":0,"spread_t•∞∞ime":0,"spread_lottery"§π∞←;:1,"user_type":" ₹₽☆;routine","is_prom ®↓oter":1,"pay_c☆©↕ount":0,"spre™×♠ad_count":0,"addreβ∏∑s":"","adminid&quo<α‍$t;:false,"login_type&quλ✔ot;:"","record_pho±★ne":"",&qu"∏✔ot;is_money_level":1,→÷¶π"is_ever_level":0,"o©↓§×verdue_time":1654138555,&Ω&±∑quot;uniqid":""€π™§;,"bar_code":&<♣  quot;515797384","r✘φ​and_code":0,"sex":0,≤✔"provincials":"",↑$←"province":0,"cit £∑y":0,"area":0,"st♣∞δ∞reet":0,"jiaoyibi&qu≠ •ot;:0,"zongjifen":0,"×★ ε;yanglaobi":0,"total_≥'γ☆integral":0,"svip_open&q$α≈uot;:true,"is_open_memberππ↓":true,"agent_lev¥÷el_name":"","is_‍δcomplete":0,"​↕®β;couponCount":0,&q£Ωφuot;like":0,"orderSt≈¶★ atusNum":{"order_count":Ω&§"0","sum_price":&qu£§₽ot;0","unpaiλ♣×d_count":"0"♠♠↓&,"unshipped_count":≤©¶"0","received_cou‌π✘•nt":"0","Ω↕;evaluated_count":"♦σσ€;0","unwritoff_count":&q"Ωuot;0","complete_coun₩™'∞t":"0",&q ÷uot;refunding_count":"0&quo☆♦t;,"refunded_count&qu'€≥ot;:"0","refund_count&qu∑®ot;:"0","yue_pay_sta<♣®φtus":1,"pay_weixin_open‍÷ ":1,"ali_pay_status&q∑•γ€uot;:true},"notice":0,"r♥₩echarge":0,"orderStatusSumσ♦":0,"extractTotalPr​↑ice":0,"extractPrice"γ&;:"0.00","statu"¶>∏;:2,"spread_statu∞♠∑s":true,"broken_commission&₽∏☆✘quot;:0,"commissionCount&q&♠uot;:"0.00","vip☆Ω ♥":true,"vip_id":3±✔≤,"vip_icon":"∑♣☆;/uploads/system/fbaγΩγ₽cd351e606f494431a9c777ce7522 ™c.png","vip_name"₩£>∞;:"VIP",&quo₽'β$t;yesterDay":0,"recharge_s÷☆™witch":1,"b≤ roken_day":0,"balance_func_&✘★status":1,"invioce_ •func":true,"spe→'₹βcial_invoice":truφ♥e,"collectCount"§✔ α;:0,"pay_vip_status":true,₹σ"member_style": β♠1,"vip_status":3,"s₹≠ervice_num":0,&quo♣→t;is_agent_level":f>↕ε alse,"visit_num":4,"' '​;user_extract_bank_status"γσ >;:0,"user_extract_wec₹✘✘÷hat_status":1,"user_extract_↓×alipay_status":0}

------------

注冊 增加 字段:

/qi.域名.com/app/controller/api/v1/Logi'☆nController.php

/qi.域名.com/app/service'✘s/user/LoginServices.php

----------------------

分(fēn)銷海(hǎi)報(bào)修改:

前台:/pages/users/user_s×±pread_code/index.vue∑‌© 143行(xíng) onread中

this.val = `${HTTP_REQU€★EST_URL}/pages/login/index/?spr↑∑$©ead=${this.uid}`

--------------------

前台獲取配置的(de)網址

import {

TOKENNAME,

HTTP_REQUEST_URL

} from '@/config/app.js'; ♥×§

this.val = `${HTTP_REQUEST_δ¥÷↕URL}/pages/login/index/?spread=$¶‌∏§{this.uid}`

------------------------

關于h5 打包成h5後,直接覆蓋上(shàng)傳到(dào)∑  public目錄下(xià)。

*-------------

微(wēi)信公衆号 取消自(zì)動授權

app.vue 中 去(qù)掉 import Auth from ∏♠≠&9;@/libs/wechat.js';

*************************--

打印信息到(dào) 文(wén)件(jiàn)中

引入:use think\facade\Db‍<; use think\facade\Log;

Log::error('****************- €'.json_encode($orderInfo));

----------------------------

打印個(gè)人(rén)信息:

{

"uid": 2,

"real_name": "二級",

"birthday"∏•≈®: 0,

"card_id": "&quσ≠ot;,

"mark": "♥↔₹;",

"partner_id": 0×✔,

"group_id": 0,

"nickname": "138****660€✘≠£2",

"avatar": "http:\/\/pume→★↓iren.域名.com\/uploads\/system£λ\/723adbdd4e49a0f9394d§ ₹fc700ab5dba3.png",

"phone": &¥‍∑₹quot;13834146602",

"add_time"•γ∏: 1699927785,

"last_time": 1699955'"ε★943,

"now_money": "≈€ ;999999.00",

"brokerage_price": &quo"✔βt;0.00",

"integral": 999999,

"exp": "0≠≥ π.00",

"sign_num": 0,

"status": 1,

"level": 0,★φσΩ

"agent_level&qu≤₹ot;: 0,

"spread_open": 1,

"spread_uid": 1€<<,

"spread_time": 169995518♣↑9,

"spread_lottery": 1,

"work_uid": 0,

"work_userid&qu‌∞Ωot;: null,

"user_type": &quo✘×t;h5",

"is_promoter": 1,

"pay_count": 0,

"spread_count": 0,

"addres": "",

"adminid": 0,

"login_type&quo€∑εt;: "",

"login_city": "≤•山(shān)西(xī)省太原市(shì)",

"record_phone": "&quo∑÷t;,

"is_money_levelλ¥β≈": 0,

"is_ever_level": 0←₩&∑,

"overdue_time": 0,

"uniqid": "",

"bar_code": "559960844&♠‍®$quot;,

"rand_code"§<↕₩: 0,

"sex": 0,

"provincials": &≈₩≤αquot;",

"province": 0,

"city": 0,

"area": 0,

"street": 0,

"is_del": 0,

"delete_time"≤∏☆: null,

"extend_info": [],

"level_status": 1,

"level_extend_info&q ¶βuot;: [],

"is_first_order": -1,

"is_newcomer": -1÷♣&

}

{"uid":2,"re<"al_name":"www&>÷quot;,"birthday∞ α":0,"card_÷∞®id":"",&→☆αquot;mark":"","↔✔&partner_id":0,&q<δuot;group_id":0,"nickname&quε±ot;:"138****6602",&β₽εquot;avatar":"http:•↑\/\/pumeiren.域名.com\/uploads\/system\/7←™23adbdd4e49a0f9394dfc700ab5dba3.png&qu£πot;,"phone":"≠₹ β13834146602","add_ti<£me":1699927785,"last_time&qλ‌≤uot;:1699955943,"now♥>_money":"999749.0φ¶↔≤0","brokerage↑​✘_price":"0.00↔♣","integral":9‌"​99999,"exp":"0.00&qu•γot;,"sign_num&quλφ↔ot;:0,"status":1,&qu♦♠ot;level":0,"agent_level""∑↑π;:1,"spread_open":1,"s¥★pread_uid":1,"spread_time&quo•βt;:1699955189,"spread_lotteryπ¶♦'":1,"work_uid":0,&q ∑uot;work_userid":‌γnull,"user_type"™♠★​:"h5","i★☆γ≠s_promoter":1,&quo×‍t;pay_count":1,&qu☆↓>ot;spread_count"¥€★ ;:0,"addres":""≠÷∑≤;,"adminid":↑ε< 0,"login_type":"","☆✘"login_city":"✔≥λ;山(shān)西(xī)省太原市(shì)","rec≈¶↑ord_phone":"13834146602φλ","is_money_level">±★±;:0,"is_ever_level"♣";:0,"overdue_time"≈¶₹&:0,"uniqid":©♥☆σ"","b♣φ©♥ar_code":"5599608±×π♦44","rand_code&quo✔®t;:0,"sex":0× ∞,"provincials":""♥±;,"province":0¶≤,"city":0,"area&quoΩΩt;:0,"street":0,"is_¥≠'€del":0,"delete_time'→♥&":null,"extend_info&§§&φquot;:[],"level_status"↕‍ ;:1,"level_extend_info&quo₩✘Ω t;:[],"is_first_order& ♠§↓quot;:-1,"is_newcome↑'§r":-1}

----------------------------

後台增加配置 字段

/daosheng.域名.com/app/se♣☆rvices/system/config/SystemCo&≤✔∏nfigServices.php

-----------------

獲得(de)傭金(jīn):默認是(shì) 必須點擊 收貨δ≠↔×才能(néng),傭金(jīn)到(dào)賬

修改:在 pages/order_pay_status/in✘γ'₹dex.vue中

getOrderPayInfo: 方法中

if(res.data.product_type==1){ thε÷∑is.zidongshouhuo(); } 如(<÷<≠rú)果是(shì) 卡密網盤自(zì)動發貨 自(zì φ✔↓)動收貨,完成訂單。

/*

自(zì)動收貨

*/

zidongshouhuo(){

let that=this;

console.log('--------自(z¥♠δ‌ì)動收貨'+that.orderId);

orderTake(that.orderId).then(res =>₩©₩; {

return that.$util.Tipδ♣s({

title: '操作(zuò)成功',

icon: 'success'

});

}).catch(err => {

return that.$util.Ti‌✔<'ps({

title: err

});

})

},

------------------------ε ​-----------

贈送餘額 :

eb_store_product 中增加字♠&段 give_money

eb_store_order 中增加字段 gain_money

/daosheng.域名.com/app/services/ord≥Ω&±er/StoreOrderCreateServices.php 中

增加:

$cartInfoGainmoney = isset($cart[↓←'productInfo']['give_​‌₽§money']) ? bcmul((string≥☆γ¥)$cart['cart_num'], (s↔♥ ‌tring)$cart['productI♥×nfo']['give_mon∞←ey'], 0) : 0;

$gainMoney = bcadd((string)$ga₹≥§inMoney, (string)$cart←§÷InfoGainmoney, 0);

Log::error('\n'.$gainMoney∑>‌ε.'\n');

$orderInfo = [中 增加字段: &‌ε#39;gain_money'=>$gainMoney, ₩♣此時(shí) 提交訂單 數(shù)據庫 eb_store_o β&rder中gain_money 可(kě)以獲得(de) 值。

下(xià)一(yī)步:

在 /app/listener/order/Pay.php中獲取 g ¶₩←ain_money ,然後增加

後端:

前台:\src\pages\product\≤₽∞productAdd\index.vue

後台:/daosheng.域名.com/app/contr¶₩ £oller/admin/v1/product/StγβoreProduct.php save增加•≠字段

------------------

computed: {

...mapGetters(['isLogin&#♠'39;, 'uid', 'viewCol§₹±♠or']),

},

this.uid即可(kě)獲得(de) 用(yò✔φng)戶id。

-