国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

輕量級(jí)促銷活動(dòng)系統(tǒng)

2023-07-10 13:45:55齊云浩
關(guān)鍵詞:設(shè)計(jì)模式

關(guān)鍵詞:Java Web;促銷規(guī)則引擎;促銷活動(dòng);設(shè)計(jì)模式

中圖法分類號(hào):F721 文獻(xiàn)標(biāo)識(shí)碼:A

1基本設(shè)計(jì)方案

1.1功能模塊結(jié)構(gòu)設(shè)計(jì)

1.1.1后端功能

(1)促銷活動(dòng)動(dòng)態(tài)配置。

促銷活動(dòng)通過配置頁面,配置不同的促銷規(guī)則,可以配置促銷的基本信息、促銷類型、時(shí)間周期、疊加規(guī)則、促銷范圍、促銷商品等。

(2)促銷活動(dòng)自啟和自停。

系統(tǒng)定時(shí)掃描完成配置的促銷活動(dòng),在時(shí)間規(guī)則命中的范圍內(nèi)自動(dòng)啟用,在時(shí)間規(guī)則范圍外自動(dòng)失效。

(3)促銷算價(jià)。

實(shí)時(shí)算價(jià):在PC端收銀臺(tái)或小程序結(jié)算頁面,基于購買商品,實(shí)時(shí)計(jì)算本次結(jié)算最優(yōu)金額,即命中的最優(yōu)促銷活動(dòng)。

1.1.2前端功能

(1)促銷活動(dòng)配置。

前端構(gòu)建促銷活動(dòng)配置頁面,基于不同的促銷類型切換不同的配置方式,主要包含促銷基本信息配置、促銷類型配置、時(shí)間周期規(guī)則配置、促銷范圍配置、促銷商品配置,以及活動(dòng)頁展示配置等,

(2)收銀臺(tái)支持促銷算價(jià)。

推薦算價(jià):支持展示推薦的最優(yōu)算價(jià),內(nèi)部集成促銷活動(dòng),會(huì)員等級(jí)折扣,優(yōu)惠券等優(yōu)惠方式下的最優(yōu)價(jià)格。

手工算價(jià):支持切換促銷活動(dòng),會(huì)員等級(jí)或優(yōu)惠券等單一優(yōu)惠方式。

1.2系統(tǒng)框架結(jié)構(gòu)設(shè)計(jì)

1.2.1促銷概念定義

(1)促銷大類。

單品促銷:針對(duì)指定商品,進(jìn)行單一化的促銷。

買贈(zèng)促銷:針對(duì)指定商品,進(jìn)行贈(zèng)品附加贈(zèng)送。

條件促銷:針對(duì)指定商品,在滿足某種規(guī)則條件下,才可以命中促銷優(yōu)惠,其中條件包含滿減促銷,滿件促銷,第N件折扣等。

(2)促銷類型。

單品促銷:只針對(duì)商品緯度的單一化促銷方式,例如,特價(jià)商品,即一口價(jià)商品;固定折扣比例商品,即打折商品。

買贈(zèng)促銷:針對(duì)指定商品的購買,進(jìn)行贈(zèng)品贈(zèng)送的促銷活動(dòng),贈(zèng)品可以有多個(gè)也可以任選一個(gè)。

滿減促銷:滿減,針對(duì)指定商品的購買,商品總價(jià)滿X元,進(jìn)行減免Y元的促銷活動(dòng);每滿減,針對(duì)指定商品的購買,商品總價(jià)每滿X元,多次減免Y元的促銷活動(dòng);滿額折扣,針對(duì)指定商品的購買,商品總價(jià)滿X元,進(jìn)行打Y折扣的促銷活動(dòng);階梯滿減,針對(duì)指定商品的購買,商品總價(jià)滿足多個(gè)不同的門檻金額,進(jìn)行對(duì)應(yīng)不同的減免金額的促銷活動(dòng)。

滿件促銷:M件N元,針對(duì)指定商品的購買,商品總件數(shù)滿M件,則支付N元的促銷活動(dòng),例如,某商品3件10元;滿M件折扣,針對(duì)指定商品的購買,商品總件數(shù)滿M件,進(jìn)行打N折扣的促銷活動(dòng),例如,某商品3件6折;滿M件免,針對(duì)指定商品的購買,商品總件數(shù)滿M件,則進(jìn)行減免Ⅳ件價(jià)格的促銷活動(dòng),例如,某商品買2送1,即滿3件免1件;滿M件立減,針對(duì)指定商品的購買,商品總件數(shù)滿M件,進(jìn)行減免Ⅳ元的促銷活動(dòng)。同時(shí),以上指定商品包含任意商品,相同商品和不同商品3種情況。

第N件打折:第N件折扣,針對(duì)指定商品的購買,商品購買N件,則對(duì)第N件商品進(jìn)行打X折扣的促銷活動(dòng);第N件立減,針對(duì)指定商品的購買,商品購買N件,則對(duì)第N件商品進(jìn)行減免X元的促銷活動(dòng);第N件特價(jià),針對(duì)指定商品的購買,商品購買Ⅳ件,則對(duì)第N件商品進(jìn)行特價(jià)的促銷活動(dòng)。

1.2.2基礎(chǔ)模型設(shè)計(jì)

(1)促銷基礎(chǔ)信息。

用于配置促銷活動(dòng)的基本信息,包含促銷名稱、促銷大類、促銷類型、促銷級(jí)別、疊加規(guī)則等基礎(chǔ)信息。

(2)促銷規(guī)則定義。

用于配置促銷的核心規(guī)則,抽象為RULE和ACTION兩個(gè)概念。

RULE:促銷條件規(guī)則,即在滿足什么條件下,促銷才可以生效,為空代表無條件。

ACTION:促銷行為,即消費(fèi)活動(dòng)滿足Rule后,將執(zhí)行的優(yōu)惠動(dòng)作規(guī)則。

(3)促銷時(shí)間規(guī)則。

用于配置促銷活動(dòng)生效的時(shí)間范圍。

普通時(shí)間段:指定開始時(shí)間和結(jié)束時(shí)間。

限制時(shí)間段:在普通日期時(shí)間段下,可以進(jìn)行進(jìn)一步的細(xì)化,可指定某些時(shí)間范圍內(nèi)不可命中促銷活動(dòng),例如,2022年12月1日~2022年12月31日,每天或某幾天的15:00至16:00不可命中促銷活動(dòng)。

(4)促銷覆蓋人群。

用于配置促銷活動(dòng)能夠覆蓋的人群范圍,可基于會(huì)員級(jí)別指定范圍或基于標(biāo)簽人群指定范圍。

(5)促銷商品。

用于配置促銷活動(dòng)覆蓋的商品范圍。其商品覆蓋范圍分為基于商品維度的選擇、基于商品主類別維度的選擇、基于商品多級(jí)品類維度的選擇、從細(xì)粒度到粗粒度的多種選擇方式。

1.2.3基于設(shè)計(jì)模式的架構(gòu)模型設(shè)計(jì)(見圖1)

(1)上下文模型。

促銷處理器工廠:使用設(shè)計(jì)模式之工廠模式,工廠類根據(jù)傳入的標(biāo)記,創(chuàng)建對(duì)應(yīng)產(chǎn)品的實(shí)例.即創(chuàng)建一個(gè)促銷處理器生成工廠,通過傳入的促銷處理器類型,創(chuàng)建對(duì)應(yīng)類型的促銷處理器實(shí)例。

促銷處理器執(zhí)行鏈:使用設(shè)計(jì)模式之責(zé)任鏈模式,將請(qǐng)求的發(fā)送者和請(qǐng)求的處理者解耦合,使多個(gè)處理者都有機(jī)會(huì)處理這個(gè)請(qǐng)求,即創(chuàng)建一個(gè)促銷處理器責(zé)任鏈,將命中的多個(gè)由促銷處理器工廠創(chuàng)建出來的促銷處理器實(shí)例,按照順序規(guī)則掛載到此促銷處理器責(zé)任鏈上,使得促銷算價(jià)請(qǐng)求,可以被多個(gè)促銷處理器依此處理。

核心計(jì)算模型:使用設(shè)計(jì)模式之中介者模式,用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互,即創(chuàng)建一個(gè)促銷計(jì)算單元對(duì)象,其中封裝了鏈路促銷信息、促銷商品信息、促銷疊加規(guī)則等,作為促銷計(jì)算的核心單元。

(2)處理器抽象模型。

促銷執(zhí)行器接口:使用設(shè)計(jì)模式之策略模式,使用一系列的算法,將一些對(duì)象封裝起來,使其可以在不同的場景進(jìn)行切換,即通過一個(gè)促銷處理器上層接口,其中定義一系列算法規(guī)則,不同的促銷處理器實(shí)現(xiàn)類實(shí)現(xiàn)同一個(gè)上層接口,并實(shí)現(xiàn)具體的算法邏輯。

促銷執(zhí)行器抽象類:使用設(shè)計(jì)模式中的模板模式,定義一個(gè)算法結(jié)構(gòu),并將一些步驟延遲到子類實(shí)現(xiàn),即創(chuàng)建一個(gè)促銷處理器抽象類,其中定義一些計(jì)算方法結(jié)構(gòu),內(nèi)部實(shí)現(xiàn)公共計(jì)算邏輯,同時(shí)將一些差異計(jì)算邏輯下放到實(shí)現(xiàn)此促銷處理器抽象類的子類促銷處理器中,并具體實(shí)現(xiàn)。

(3)處理器實(shí)現(xiàn)模型。

促銷執(zhí)行器(單品促銷-特價(jià)):實(shí)現(xiàn)單品促銷中特價(jià)計(jì)算邏輯。

促銷執(zhí)行器(單品促銷-折扣):實(shí)現(xiàn)單品促銷中折扣計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿減促銷-滿減):實(shí)現(xiàn)滿減促銷中的滿減計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿減促銷-每滿減):實(shí)現(xiàn)滿減促銷中的每滿減計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿減促銷-階梯滿減):實(shí)現(xiàn)滿減促銷中的階梯滿減計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿減促銷-滿額折扣):實(shí)現(xiàn)滿減促銷中的滿額折扣計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促銷-滿M件折扣):實(shí)現(xiàn)滿件促銷中的滿M件折扣計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促銷-滿M件立減):實(shí)現(xiàn)滿件促銷中的滿M件立減計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促銷-M件N元):實(shí)現(xiàn)滿件促銷中的M件N元計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促銷-滿M件免):實(shí)現(xiàn)滿件促銷中的滿M件免計(jì)算邏輯。

促銷執(zhí)行器(買贈(zèng)促銷-買贈(zèng)促銷-贈(zèng)品任選1):實(shí)現(xiàn)買贈(zèng)促銷中贈(zèng)品任選1計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-第N件促銷-第N件特價(jià)):實(shí)現(xiàn)第N件促銷中第N件特價(jià)計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促銷-第N件立減):實(shí)現(xiàn)第N件促銷中第N件立減計(jì)算邏輯。

促銷執(zhí)行器(條件促銷-滿件促-第N件折扣):實(shí)現(xiàn)第N件促銷中第N件折扣計(jì)算邏輯。

2詳細(xì)實(shí)現(xiàn)過程

2.1技術(shù)框架引入

2.1.1后端技術(shù)

(1)程序?qū)崿F(xiàn)語言。

Java:Java是一種面向?qū)ο蟮母呒?jí)程序語言,且具有大部分編程語言所共有的一些特征,其被用在互聯(lián)網(wǎng)的分布式環(huán)境中。

(2)數(shù)據(jù)庫。

MySQL:MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),通過字段維度關(guān)聯(lián),表示數(shù)據(jù)間的關(guān)系,是一個(gè)主流的關(guān)系型數(shù)據(jù)庫系統(tǒng)。

(3) Web應(yīng)用服務(wù)器。

Tomcat:Web應(yīng)用服務(wù)器,用來部署Web應(yīng)用,對(duì)外提供HTTP訪問服務(wù)。

2.1.2前端技術(shù)

(1)程序?qū)崿F(xiàn)語言。

VUE:-款用于構(gòu)建用戶界面的JavaScript框架。它基于標(biāo)準(zhǔn)Html,CSS和JavaScript構(gòu)建,并提供了一套聲明式、組件化的編程模型,幫助開發(fā)者高效地開發(fā)用戶界面。

(2)后臺(tái)頁面UI框架。

ELEMENTUI:ELEMENTUI是一套UI框架,封裝了后臺(tái)管理頁面常用組件,與Vue完美契合,可以快速構(gòu)建功能型頁面。

2.2設(shè)計(jì)模式引入

2.2.1單例模式

定義:確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。

使用:通過使用Spring框架中的單例模式,將交給Spring IOC容器管理的Bean定義為單例對(duì)象,并通過依賴注入DI的方式,提供訪問點(diǎn)。

2.2.2工廠模式

定義:定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。工廠方法使一個(gè)類是實(shí)例化延遲到其子類。

使用:定義用于生成促銷處理器的促銷處理器工廠類,用于實(shí)例化具體的促銷處理器對(duì)象。

2.2.3策略模式

定義:定義一組算法,將每個(gè)算法都封裝起來,并使他們之間可以互換。

使用:將不同的促銷處理器的邏輯封裝成不同的算法對(duì)象,使得不同的促銷處理器計(jì)算邏輯相互沒有影響,通過結(jié)合靜態(tài)工廠的方式,將這些促銷處理器算法對(duì)象進(jìn)行統(tǒng)一管理,并使用Java多態(tài)特性,通過不同的關(guān)鍵字KEY,使得不同的促銷處理器對(duì)象可以相互替換使用。

2.2.4責(zé)任鏈模式

定義:使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接受者之間的耦合關(guān)系,將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞更改請(qǐng)求,直到有對(duì)象處理它。

使用:促銷活動(dòng)的業(yè)務(wù)場景存在一次消費(fèi)行為命中多個(gè)促銷活動(dòng)的情況,并且促銷活動(dòng)可相互疊加,類比為一個(gè)請(qǐng)求,需要被多個(gè)促銷處理器對(duì)象處理,并且按照一定規(guī)則順序處理;創(chuàng)建一條執(zhí)行鏈,將命中的促銷處理器掛載到鏈上,請(qǐng)求沿著執(zhí)行鏈傳遞計(jì)算。

2.2.5中介者模式

定義:用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互,中介者使得各對(duì)象不需要顯式的相互作用,從而使其耦合松散,而且可以獨(dú)立改變它們之間的交互。

使用:定義一個(gè)促銷處理單元對(duì)象,在促銷執(zhí)行鏈執(zhí)行的過程中,單元對(duì)象將過程中使用到的相關(guān)元數(shù)據(jù)進(jìn)行封裝和處理。

2.2.6模板模式

定義:定義一個(gè)操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重新定義該算法的某些特定步驟。

使用:定義一個(gè)促銷執(zhí)行器抽象類,用于規(guī)范促銷執(zhí)行器的算法結(jié)構(gòu),并且在其中實(shí)現(xiàn)一些公共的算法邏輯,同時(shí)一些結(jié)構(gòu)性的方法交給子類去重載實(shí)現(xiàn),保證不會(huì)改變促銷執(zhí)行器計(jì)算的邏輯步驟。

2.3數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)如圖2所示。

2.4核心業(yè)務(wù)邏輯設(shè)計(jì)

2.4.1創(chuàng)建促銷活動(dòng)

創(chuàng)建促銷活動(dòng)如圖3所示。

2.4.2消費(fèi)行為命中促銷

消費(fèi)行為命中促銷如圖4所示。

2.5核心代碼實(shí)現(xiàn)邏輯

2.5.1促銷處理器上層接口

作用:用來定義算法結(jié)構(gòu),規(guī)范實(shí)現(xiàn)類的算法結(jié)構(gòu)邏輯。

接口:IPromotionHandler

方法:void embark(Promotionlnfo promotionlnfo);∥裝載促銷信息

Uhandler f PromotionHandlerChain promotionHandlerChain,U unit);∥沿鏈執(zhí)行

IPromotionHandler clone();∥克隆促銷處理器

2.5.2促銷處理器靜態(tài)工廠

作用:用來存取促銷處理器實(shí)現(xiàn)類的實(shí)例化對(duì)象的靜態(tài)集合。

工廠類:PromotionHandlerFactory

方法:public static void register(args){}∥注冊(cè)促銷處理器實(shí)例化對(duì)象到靜態(tài)工廠

public static IPromotionHandler get(args){}∥獲取促銷處理器實(shí)例化對(duì)象

2.5.3促銷處理器責(zé)任鏈

作用:用來定義促銷處理器執(zhí)行的鏈路,促銷處理器沿著此鏈路執(zhí)行。

責(zé)任鏈類:PromotionHandlerChain

2.5.4促銷處理器抽象類

作用:用來定義促銷處理器的算法結(jié)構(gòu),并將一些邏輯延遲到子類實(shí)現(xiàn)。

抽象類:AbstractPromotionHandler implements IPromotionHandler

方法:protected abstract Class getRuleClazz();∥促銷定義規(guī)則class獲取

protected abstract Class getActionClazz();∥促銷定義動(dòng)作class獲取

protected abstract PromotionModeEnumembarkPromotionMode();∥當(dāng)前促銷模式

protected abstract BigDecimal calclnfo(args){}∥促銷計(jì)算

public PromotionCalcUnit handler(args){}∥促銷執(zhí)行

2.5.5促銷處理器實(shí)現(xiàn)類

作用:“單品促銷.特價(jià)優(yōu)惠”的具體實(shí)現(xiàn)。

實(shí)現(xiàn)類:SpecialSalePromotionHandler extendsAbstractPromotionHandler

方法:protected ClassgetRuleClazz(){return Rule.class;}

protected Class getActionClazz() {returnAction.class:}

protected PromotionModeEnumembarkPromotionMode(){return SPECIAL_SALE;}

protected abstract BigDecimal calclnfo(args){}∥具體促銷計(jì)算邏輯

3構(gòu)建Web應(yīng)用

3.1后端服務(wù)

3.1.1網(wǎng)絡(luò)資源環(huán)境

(1)申請(qǐng)域名。

基于一級(jí)域名www.xxx. com,申請(qǐng)后端二級(jí)域名promotion-api.xxx.com,并將此二級(jí)域名和內(nèi)網(wǎng)lP映射到NGINX反向代理服務(wù)器。

(2)SSL安全證書。

基于二級(jí)域名promotion. xxx.com,申請(qǐng)SSL安全證書,支持HTTPS安全協(xié)議訪問,并將此證書配置到NGINX反向代理服務(wù)器中的此域名下。

3.1.2應(yīng)用服務(wù)環(huán)境

部署促銷活動(dòng)服務(wù)。促銷系統(tǒng)的核心服務(wù)就是將代碼基于Jenkins構(gòu)建成可執(zhí)行JAR包,通過Java-jar的命令,運(yùn)行此JAR包,在Tomcat應(yīng)用服務(wù)器中,對(duì)外提供支持HTTPS協(xié)議訪問的服務(wù)。

3.2前端應(yīng)用

3.2.1網(wǎng)絡(luò)資源環(huán)境

(1)申請(qǐng)域名。

基于一級(jí)域名www. xxx.com,申請(qǐng)前端二級(jí)域名promotion.xxx.com,并將此二級(jí)域名和公網(wǎng)lP地址映射到DNS服務(wù)器中。

(2)配置指向。

在NGINX反向代理服務(wù)器中,將二級(jí)域名promotion.xxx.com配置指向一個(gè)靜態(tài)文件目錄,以請(qǐng)求訪問該目錄下的靜態(tài)資源。

3.2.2靜態(tài)資源環(huán)境

靜態(tài)資源上傳?;贜PM打包前端代碼,生成加密后的靜態(tài)資源,并將此靜態(tài)資源上傳到服務(wù)器的靜態(tài)資源目錄下,對(duì)外提供訪問服務(wù)。

3.2.3前端頁面展示

促銷配置頁面如圖5所示。

4結(jié)束語

在互聯(lián)網(wǎng)的浪潮下,電商業(yè)務(wù)成為互聯(lián)網(wǎng)行業(yè)中最前沿的業(yè)務(wù),在面向C端用戶的場景中,如何提升銷售業(yè)績,如何更好地為用戶服務(wù),成為最重要的課題。促銷活動(dòng)系統(tǒng)在其中扮演著不可或缺的角色,本文構(gòu)建的輕量級(jí)促銷活動(dòng)系統(tǒng),具有支持分布式環(huán)境、高可用、高并發(fā)、可拓展等特性,同時(shí)在新促銷方式的二次開發(fā)上,也具有較好的復(fù)用性和可擴(kuò)展性,基本滿足主流電商業(yè)務(wù)中的促銷場景。

作者簡介:

齊云浩(1993—),本科,研究方向:互聯(lián)網(wǎng)電子商務(wù)、微服務(wù)架構(gòu)、分布式服務(wù)、人機(jī)交互系統(tǒng)、基于設(shè)計(jì)模式構(gòu)建輕量級(jí)促銷活動(dòng)系統(tǒng)。

猜你喜歡
設(shè)計(jì)模式
仿生設(shè)計(jì)模式的創(chuàng)新應(yīng)用探索
玩具世界(2023年6期)2024-01-29 12:14:36
“1+1”作業(yè)設(shè)計(jì)模式的實(shí)踐探索
設(shè)計(jì)模式挖掘的有效性評(píng)估策略
三維協(xié)同設(shè)計(jì)模式下的航天項(xiàng)目管理實(shí)踐與展望
交通機(jī)電工程設(shè)計(jì)模式創(chuàng)新探討
互動(dòng)式設(shè)計(jì)模式研究
连江县| 通化县| 澄城县| 凉城县| 凌海市| 弥渡县| 大田县| 夏河县| 资阳市| 杭州市| 泌阳县| 迁西县| 景洪市| 齐齐哈尔市| 平罗县| 福建省| 河源市| 类乌齐县| 修武县| 水城县| 甘泉县| 沧州市| 濮阳县| 连江县| 无锡市| 盱眙县| 浦东新区| 开原市| 卓资县| 加查县| 滁州市| 富平县| 社旗县| 兰西县| 左贡县| 襄垣县| 大英县| 丹东市| 泰和县| 冕宁县| 札达县|