营销故事板.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. <!DOCTYPE html><html><head>
  2. <title>营销故事板</title>
  3. <meta charset="utf-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css">
  6. <script src="https://cdn.jsdelivr.net/npm/mermaid@11.1.1/dist/mermaid.min.js"></script>
  7. <style>
  8. pre{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;padding:1em;margin:.5em 0;overflow:auto;line-height:1.5;tab-size:4;hyphens:none;color:#555;background-color:#f0f0f0!important;border:#d6d6d6;border-radius:3px}pre[class*=language-]{padding:1em}code[class*=language-] .token.cdata,code[class*=language-] .token.comment,code[class*=language-] .token.doctype,code[class*=language-] .token.prolog,pre[class*=language-] .token.cdata,pre[class*=language-] .token.comment,pre[class*=language-] .token.doctype,pre[class*=language-] .token.prolog{color:#998;font-style:italic}code[class*=language-] .token.punctuation,pre[class*=language-] .token.punctuation{color:#920b2d}code[class*=language-] .namespace,pre[class*=language-] .namespace{opacity:.7}code[class*=language-] .token.property,pre[class*=language-] .token.property{font-weight:700;color:#333}code[class*=language-] .token.boolean,code[class*=language-] .token.function-name,code[class*=language-] .token.number,pre[class*=language-] .token.boolean,pre[class*=language-] .token.function-name,pre[class*=language-] .token.number{color:#d14}code[class*=language-] .token.tag,pre[class*=language-] .token.tag{color:#d14}code[class*=language-] .token.symbol,pre[class*=language-] .token.symbol{color:#990073}code[class*=language-] .token.selector,pre[class*=language-] .token.selector{color:teal}code[class*=language-] .token.attr-name,pre[class*=language-] .token.attr-name{color:#458;font-weight:700}code[class*=language-] .token.string,pre[class*=language-] .token.string{color:#d14}code[class*=language-] .token.char,pre[class*=language-] .token.char{color:#606aa1}code[class*=language-] .token.url,pre[class*=language-] .token.url{color:#888}code[class*=language-] .token.atrule,code[class*=language-] .token.attr-value,code[class*=language-] .token.keyword,pre[class*=language-] .token.atrule,pre[class*=language-] .token.attr-value,pre[class*=language-] .token.keyword{color:#222;font-weight:700}code[class*=language-] .token.function,pre[class*=language-] .token.function{color:#900}code[class*=language-] .token.class-name,pre[class*=language-] .token.class-name{text-decoration:underline;color:#606aa1}code[class*=language-] .token.variable,pre[class*=language-] .token.variable{color:teal}code[class*=language-] .token.bold,code[class*=language-] .token.important,pre[class*=language-] .token.bold,pre[class*=language-] .token.important{font-weight:700}code[class*=language-] .token.italic,pre[class*=language-] .token.italic{font-style:italic}code[class*=language-] .token.entity,pre[class*=language-] .token.entity{cursor:help}pre[data-line]{position:relative;padding:1em 0 1em 3em}pre[data-line] .line-highlight-wrapper{position:absolute;top:0;left:0;background-color:transparent;display:block;width:100%}pre[data-line] .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}pre[data-line] .line-highlight:before,pre[data-line] .line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}pre[data-line] .line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}html body{font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#555;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#030303}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#7e7e7e}html body strong{color:#030303}html body del{color:#7e7e7e}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ol,html body>ul{margin-bottom:16px}html body ol,html body ul{padding-left:2em}html body ol.no-list,html body ul.no-list{padding:0;list-style-type:none}html body ol ol,html body ol ul,html body ul ol,html body ul ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#7e7e7e;background-color:#f0f0f0;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:700;color:#030303}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:.85em;color:#030303;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::after,html body code::before{letter-spacing:-.2em;content:'\00a0'}html body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:0 0;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:after,html body pre code:before,html body pre tt:after,html body pre tt:before{content:normal}html body blockquote,html body dl,html body ol,html body p,html body pre,html body ul{margin-top:0;margin-bottom:16px}html body kbd{color:#030303;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#030303;page-break-after:avoid}html body blockquote{color:#7e7e7e}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body code,html body pre{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview ul{list-style:disc}.markdown-preview ul ul{list-style:circle}.markdown-preview ul ul ul{list-style:square}.markdown-preview ol{list-style:decimal}.markdown-preview ol ol,.markdown-preview ul ol{list-style-type:lower-roman}.markdown-preview ol ol ol,.markdown-preview ol ul ol,.markdown-preview ul ol ol,.markdown-preview ul ul ol{list-style-type:lower-alpha}.markdown-preview .newpage,.markdown-preview .pagebreak{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center!important}.markdown-preview:not([data-for=preview]) .code-chunk .code-chunk-btn-group{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .status{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .output-div{margin-bottom:16px}.markdown-preview .md-toc{padding:0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div,.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0;min-height:100vh}@media screen and (min-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{font-size:14px!important;padding:1em}}@media print{html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc{padding:0 16px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div,html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% - 300px);padding:2em calc(50% - 457px - 300px / 2);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
  9. /* Please visit the URL below for more information: */
  10. /* https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
  11. </style>
  12. <!-- The content below will be included at the end of the <head> element. --><script type="text/javascript">
  13. document.addEventListener("DOMContentLoaded", function () {
  14. // your code here
  15. });
  16. </script></head><body for="html-export">
  17. <div class="crossnote markdown-preview ">
  18. <h1 id="营销故事板">营销故事板 </h1>
  19. <h2 id="用户端营销分类">用户端营销分类 </h2>
  20. <ol>
  21. <li>拼团</li>
  22. <li>盲盒</li>
  23. <li>免费按摩</li>
  24. <li>秒杀</li>
  25. <li>砍价</li>
  26. <li>朋友代付款</li>
  27. <li>共享股东</li>
  28. <li>发红包</li>
  29. </ol>
  30. <h3 id="拼团按摩">拼团按摩 </h3>
  31. <pre class="language-text">参数和值都是单独设置,不能超出利润值。
  32. </pre>
  33. <ul>
  34. <li>拼团各个不同的项目下单分享链接给好友朋友圈(微信朋友圈群,QQ、陌陌等)。</li>
  35. <li>规则一:拼团人数30人,人数到了算拼团成功,技师接单提成金额平台付款(此处可以设置专属接单技师)。注:拼团订单不参与渠道提成。(如,拼团期间有人下单了按照订单金额比例20%提成给提,如果够了所拼项目199金额算拼团成功)。够199金额的参与渠道提成,拼团订单不退款,但是可以随时使用有期设定(这里要对用户有规则提示)。</li>
  36. </ul>
  37. <p>用户拼团规则<br>
  38. 拼团赚取的利润不能提现只能按摩或者在平台消费用。</p>
  39. <ul>
  40. <li>拼团人发起链接,比如说够了10个人,5折按摩,平台不赚钱,技师赚钱。</li>
  41. <li>够了30人免费按摩。</li>
  42. <li>平台拼团人数设置;(后台设定一个值,如5人,10人,20人规则不一样。如拼几个人打几折需用户付款。拼到30个人免费按摩,平台;A付技师接单金额。B平台指定技师接拼团订单不付款,加钟平台4,技师6。</li>
  43. <li>用户只管发起就可以,到了一定人数就给引导提示(意思是往后延续),到5-10-20-100人等政策引导一直到了自己要使用的时候。</li>
  44. <li>此次拼团完成后,需重新开始数据。(可以累计拉新用户)可以累计业绩。</li>
  45. <li>拼团的利润不参与分享赚钱,参与分享赚钱(怎么区分开)设置最低值不参与分利润,在规定值内参与不同比例分成。</li>
  46. </ul>
  47. <h4 id="盲盒按摩">盲盒按摩 </h4>
  48. <ul>
  49. <li>全国,省市,区,指定区域开放盲盒足疗。</li>
  50. <li>指定新用户优惠力度大小。或者免费,参考值。(下载时间段,登录频率,邀请用户,技师下载,拼团次数,拼团总业绩为参考,给予力度大小和免费)。</li>
  51. <li>指定老用户优惠力度大小。或者免费,参考值。</li>
  52. </ul>
  53. <p>盲盒规则<br>
  54. 后台设置数量优惠的金额:</p>
  55. <ul>
  56. <li>分享链接设置3个人点击打开,激活盲盒,打开人跟分享人数据绑定关联关系。</li>
  57. <li>随机项目价位不同,如:170-100-80等;不参与任何渠道,技师接单奖励分成。</li>
  58. </ul>
  59. <h5 id="免费按摩">免费按摩 </h5>
  60. <p>(1-5分享链接来的用户,平台给的一级20%,二级10%利润分成归于免费按摩钱包,不能参与提现)同时规避套现问题;数据监控设定规则。</p>
  61. <h6 id="发红包引流">发红包引流 </h6>
  62. <p>红包规则,所有参与抢红包的角色均不能提现,只能在平台消费使用。<br>
  63. 平台,技师,商家均可设定时间段自动发(把钱充到红包池设定时间),也可自己随机和随心发。</p>
  64. <ul>
  65. <li>技师发红包(只发用户端),技师发用户收给自己引流,用户点开能看见自己信息详情。</li>
  66. <li>技师端能抢商家的红包,但是不能提现,可以用来给自己引流发红包用,但是不能投流。</li>
  67. <li>技师自己有现金充值入口,余额充值,红包渠道,(平台给的邀请渠道,专用比例自动进入引流入口)比如说技师邀请用户下载,邀请技师下载平台设置的自动分成,给技师发红包引流金额。</li>
  68. <li>也可以设置分享引流红包渠道,只能发引流用不能提现。</li>
  69. <li>用户抢红包,抢到技师的(商家)红包只能在平台下单消费使用。</li>
  70. <li>用户抢到商家的红包只能在商家和平台消费使用。</li>
  71. <li>商家发红包:1,给技师。2,给用户。同上1,技师发红包(规则)。</li>
  72. <li>用户可以发红包给(打赏)技师,附近技师抢红包,用户看见抢红包的技师(互动)用户直接可以看到整屏大头像,左右滑动。</li>
  73. <li>平台可以给商家,技师发红包,用户发红包:设定时间段红包金额和省份和单独的区域设置。</li>
  74. </ul>
  75. <h6 id="平台发放金额来源">平台发放金额来源 </h6>
  76. <ul>
  77. <li>平台自己充值金额(平台币数字)但是要归到财务管理,因为提现就是需要钱的。</li>
  78. <li>技师自己充值的引流资金。</li>
  79. <li>技师抢到的红包。</li>
  80. </ul>
  81. <h3 id="秒杀规则">秒杀规则 </h3>
  82. <pre class="language-text">-平台在规定的时间段发出的秒杀项目便宜,限时抢购,先抢先得,限购数量,
  83. </pre>
  84. <h3 id="砍价规则">砍价规则 </h3>
  85. <ul>
  86. <li>砍价次数限制(可考虑不限);砍价199用户需要砍30个人平台赠送一个299—599比如50人(1,平台支付技师佣金;2,平台指派专属技师去服务,平台不支付技师佣金,此种订单加钟平台4,技师6);注;用户需要支付路费;</li>
  87. <li>砍价时间限制,3天</li>
  88. <li>单次砍价时间,10分钟</li>
  89. <li>总砍价时间,3天</li>
  90. <li>活动时间,时长,3天和长久</li>
  91. <li>随机砍价幅度</li>
  92. <li>固定砍价幅度, 以上不参与任何渠道提成,固定砍一个3元。如果砍价中有消费的按照订单比例20%自动减掉20%算砍掉的价位,平台3元就不给了。假如有3个5个用户户消费提成够了,算砍价成功,也可以补差价,也可以砍完订单价位。</li>
  93. <li>价格和最终低价(幅度与方式);也可以设置砍价金额100元,砍100元。</li>
  94. <li>低价限制,100元</li>
  95. <li>最终确认价格,100元</li>
  96. <li>购买条件,先砍3个人,在生效。也可以交会员后生效。</li>
  97. </ul>
  98. <h3 id="代付款">代付款 </h3>
  99. <ul>
  100. <li>找熟悉的朋友帮付款</li>
  101. </ul>
  102. <h3 id="共享股东">共享股东 </h3>
  103. <ul>
  104. <li>用户A通过连接分享(二维码、或邀请码绑定等)来邀请的用户B,用户B下单,如果用户A是共享股东,由此用户分享产生的订单利润总和达到订单利润分红条件,则执行股东分红。
  105. <ul>
  106. <li>用户是泛指,可以是任何系统用户角色:用户、技师、业务员、店铺、代理</li>
  107. <li>申请成为共享股东,条件是:
  108. <ul>
  109. <li>在线支持缴费2000元给平台,自动成为共享股东</li>
  110. </ul>
  111. </li>
  112. <li>统计的订单条件是:
  113. <ul>
  114. <li>仅限上门类型的订单</li>
  115. <li>此用户直接分享用户下单的订单</li>
  116. <li>统计时间范围是:从成为共享股东之日起,往后推算3个月</li>
  117. </ul>
  118. </li>
  119. <li>累计订单利润分红条件和规则是:
  120. <ul>
  121. <li>利润1万元,分红10%</li>
  122. <li>利润2万元,分红20%</li>
  123. <li>利润3万元,分红30%</li>
  124. <li>这些分红利润条件和分红规则,在后台模块由平台运营管理角色设置</li>
  125. </ul>
  126. </li>
  127. </ul>
  128. </li>
  129. <li>可配项:
  130. <ul>
  131. <li>订单利润分红条件和规则
  132. <ul>
  133. <li>可动态增加,创建的表单:利润值、分红比例</li>
  134. </ul>
  135. </li>
  136. <li>订单利润统计条件
  137. <ul>
  138. <li>订单类型,多选:上门、到店、救急</li>
  139. <li>时间范围,选推算月份:3、6、12、1000</li>
  140. </ul>
  141. </li>
  142. </ul>
  143. </li>
  144. </ul>
  145. <h2 id="需求分析">需求分析 </h2>
  146. <p>总则:</p>
  147. <ol>
  148. <li>通过营销裂变产生的订单,利润不参与任何渠道提成</li>
  149. <li>订单金额:支付金额-路费-营销优惠项目金额(营销优惠项目包含:拼团、盲盒、砍价、秒杀、免费按摩、代付款、共享股东、发红包)-加钟金额</li>
  150. <li>渠道推广用户关系建立是一次性的,不重复建立,建立后不再修改</li>
  151. <li>钱包模块,余额收益类型为营销类型(砍价、拼团、盲盒、秒杀、免费按摩、代付款、共享股东、发红包),则只能消费,不能提现</li>
  152. <li>当前订单,参与分帐的营销类型可配置:(比如:砍价、拼团、免费按摩、代付款、共享股东、发红包参与分帐,秒杀、盲盒不参与分帐)</li>
  153. </ol>
  154. <ul>
  155. <li>推荐,技师A推荐的技师B接的单,则有技师A的分成:<a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">技师上门分帐算法中的计算渠道分成</a></li>
  156. <li>推广,用户A和好友B建立渠道推广关系,则有用户A的分成:<a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">分帐算法中的渠道推广分成</a></li>
  157. </ul>
  158. <ol start="6">
  159. <li>所有营销类型,与代理商(区域)有关,平台可设置开通区域(即,代理商),还可设置关联项目、技师、店铺等</li>
  160. <li>所有营销类型,在后台设置和开通时,给用户减免的金额,理论上都不能超出剩余给平台的利润;不能在不同的区域、店铺、项目、技师、代理商叠加营销手段(即不能同时开通)</li>
  161. <li>这些营销模块,根据实际业务运营情况,可动态调整,随时开关</li>
  162. <li><mark>todo</mark></li>
  163. </ol>
  164. <ul>
  165. <li>需要将从营销到下单到分账的计算公式给做出来</li>
  166. <li>参数来源公式做出来</li>
  167. <li>分账公式做出来</li>
  168. </ul>
  169. <h3 id="共享股东-1">共享股东 </h3>
  170. <ul>
  171. <li>背景:
  172. <ul>
  173. <li>为了裂变用户</li>
  174. </ul>
  175. </li>
  176. <li>用户A通过连接分享(二维码、或邀请码绑定等)来邀请的用户B,用户B下单,如果用户A是共享股东,由此用户分享产生的订单利润总和达到订单利润分红条件,则执行股东分红。
  177. <ul>
  178. <li>用户是泛指,可以是任何系统用户角色:用户、技师、业务员、店铺、代理</li>
  179. <li>申请成为共享股东,条件是:
  180. <ul>
  181. <li>在线支持缴费2000元给平台,自动成为共享股东</li>
  182. </ul>
  183. </li>
  184. <li>统计的订单条件是:
  185. <ul>
  186. <li>仅限上门类型的订单</li>
  187. <li>此用户直接分享用户下单的订单</li>
  188. <li>统计时间范围是:从成为共享股东之日起,往后推算3个月</li>
  189. </ul>
  190. </li>
  191. <li>累计订单利润分红条件和规则是:
  192. <ul>
  193. <li>利润1万元,分红10%</li>
  194. <li>利润2万元,分红20%</li>
  195. <li>利润3万元,分红30%</li>
  196. <li>这些分红利润条件和分红规则,在后台模块由平台运营管理角色设置</li>
  197. </ul>
  198. </li>
  199. </ul>
  200. </li>
  201. <li>可配项:
  202. <ul>
  203. <li>订单利润分红条件和规则
  204. <ul>
  205. <li>可动态增加,创建的表单:利润值、分红比例</li>
  206. </ul>
  207. </li>
  208. <li>订单利润统计条件
  209. <ul>
  210. <li>订单类型,多选:上门、到店、救急</li>
  211. <li>时间范围,选推算月份:3、6、12、1000</li>
  212. </ul>
  213. </li>
  214. </ul>
  215. </li>
  216. </ul>
  217. <h3 id="代付款-1">代付款 </h3>
  218. <ul>
  219. <li>背景:
  220. <ul>
  221. <li>怕媳妇查询支付记录</li>
  222. <li>裂变用户</li>
  223. </ul>
  224. </li>
  225. <li>用户A下单,在支付前点击“找人代付”,分享社交媒体App,选择代付人B,发送分享连接。代付人B(即:被分享人)注册,直接显示代付款订单信息,然后支付。用户间建立用户间渠道推广关系,参与:
  226. <ul>
  227. <li><a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">分帐算法中的渠道推广分成</a>。</li>
  228. </ul>
  229. </li>
  230. </ul>
  231. <h3 id="砍价">砍价 </h3>
  232. <ul>
  233. <li>
  234. <p>背景:</p>
  235. <ul>
  236. <li>通过社交裂变增加用户数量</li>
  237. <li>为用户提供优惠或免单机会,提高用户参与度</li>
  238. </ul>
  239. </li>
  240. <li>
  241. <p>功能流程:</p>
  242. <ol>
  243. <li>用户A进入"砍价"页面,查看可砍价的服务项目列表或技师列表(由后台配置)</li>
  244. <li>用户A选择砍价项目或技师,点击"砍价分享"</li>
  245. <li>系统生成分享链接,用户A将链接分享给好友</li>
  246. <li>好友B(新用户)通过链接注册,系统显示砍价订单信息</li>
  247. <li>好友B完成砍价操作,订单金额相应减少</li>
  248. <li>用户A和好友B建立渠道推广关系,参与<a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">分帐算法中的渠道推广分成</a></li>
  249. </ol>
  250. </li>
  251. <li>
  252. <p>砍价规则:</p>
  253. <ol>
  254. <li>每次砍价,订单金额减少固定金额或随机金额(范围:1-10元,可在后台配置)</li>
  255. <li>达到指定砍价人次(默认30人)时,订单免费(金额变为0)</li>
  256. <li>砍价期间,参与砍价的好友下单,被砍价用户的订单可额外获得该订单金额20%的折扣,如果被砍价用户的订单金额砍价后小于0,则剩余折扣加入此用户钱包余额。</li>
  257. </ol>
  258. </li>
  259. <li>
  260. <p>系统配置项:</p>
  261. <ol>
  262. <li>砍价金额设置:固定金额或随机范围(默认1-10元)</li>
  263. <li>免单所需砍价人次(默认30人)</li>
  264. <li>砍价次数上限(可设置为不限)</li>
  265. <li>砍价活动时限(默认3天)</li>
  266. <li>可参与砍价的服务项目列表或技师列表</li>
  267. </ol>
  268. </li>
  269. </ul>
  270. <h3 id="秒杀">秒杀 </h3>
  271. <ul>
  272. <li>
  273. <p>背景:</p>
  274. <ul>
  275. <li>通过限时特价促销刺激用户购买欲望</li>
  276. <li>增加平台活跃度和用户粘性</li>
  277. <li>快速提升特定服务或技师的曝光度</li>
  278. </ul>
  279. </li>
  280. <li>
  281. <p>功能概述:<br>
  282. 平台在指定时间段内以优惠价格提供限量服务或技师预约,用户可在活动期间抢购。</p>
  283. </li>
  284. <li>
  285. <p>详细功能:</p>
  286. <ol>
  287. <li>
  288. <p>秒杀列表展示</p>
  289. <ul>
  290. <li>显示可秒杀的服务项目和技师列表</li>
  291. <li>每个秒杀项目包含:原价、秒杀价、剩余数量、开始时间、结束时间</li>
  292. <li>支持倒计时显示(未开始和进行中)</li>
  293. </ul>
  294. </li>
  295. <li>
  296. <p>秒杀规则</p>
  297. <ul>
  298. <li>限时:活动有明确的开始和结束时间</li>
  299. <li>限量:每个秒杀项目设置固定数量</li>
  300. <li>限购:每用户限购数量(可配置)</li>
  301. <li>先到先得:库存售完即止</li>
  302. </ul>
  303. </li>
  304. <li>
  305. <p>秒杀流程</p>
  306. <ul>
  307. <li>用户浏览秒杀列表</li>
  308. <li>选择心仪项目、技师,点击"立即抢购"</li>
  309. <li>系统检查库存和用户购买资格(定位所在地区限制)</li>
  310. <li>确认无误后跳转支付页面</li>
  311. <li>用户完成支付,秒杀成功</li>
  312. </ul>
  313. </li>
  314. <li>
  315. <p>库存管理</p>
  316. <ul>
  317. <li>采用预扣库存机制,下单未支付锁定库存</li>
  318. <li>设置订单支付超时时间,超时自动释放库存</li>
  319. <li>实时更新库存显示</li>
  320. </ul>
  321. </li>
  322. <li>
  323. <p>防刷机制</p>
  324. <ul>
  325. <li>入口限流:控制秒杀页面访问频率</li>
  326. <li>下单限流:控制用户下单频率</li>
  327. <li>验证码:大流量时启用图形验证码</li>
  328. <li>黑名单:检测异常行为,加入黑名单</li>
  329. </ul>
  330. </li>
  331. </ol>
  332. </li>
  333. <li>
  334. <p>后台配置项:</p>
  335. <ul>
  336. <li>秒杀活动管理(创建、编辑、删除、上下架)</li>
  337. <li>秒杀商品配置(选择服务或技师、设置秒杀价格、数量、时间)</li>
  338. <li>用户限购数量设置</li>
  339. <li>订单支付超时时间设置</li>
  340. <li>秒杀页面展示顺序配置</li>
  341. <li>活动数据统计(参与人数、成交率、销售额等)</li>
  342. </ul>
  343. </li>
  344. <li>
  345. <p>注意事项:</p>
  346. <ul>
  347. <li>需考虑高并发情况,确保系统稳定性</li>
  348. <li>秒杀价格需合理设置,避免影响正常服务定价</li>
  349. <li>活动规则需清晰明确,避免用户投诉</li>
  350. <li>定期评估秒杀活动效果,优化运营策略</li>
  351. </ul>
  352. </li>
  353. </ul>
  354. <h3 id="红包">红包 </h3>
  355. <ul>
  356. <li>
  357. <p>背景:</p>
  358. <ul>
  359. <li>红包功能旨在通过发放和抢红包的方式进行用户引流、促进平台活跃度和增加用户粘性。红包可由平台、商家、技师和用户发放,不同角色间可以相互发放和抢夺红包。</li>
  360. </ul>
  361. </li>
  362. <li>
  363. <p>红包规则</p>
  364. <ul>
  365. <li>所有抢到的红包都到钱包余额中,均不能提现,只能在平台内消费使用</li>
  366. <li>红包发放可以设定时间段自动发放,也可以手动随机发放</li>
  367. <li>红包金额可以来自平台充值、技师充值或技师抢到的其他红包</li>
  368. <li>单个红包有平台设置的最低限额:0.1元,有最到红包总额限制:1000元</li>
  369. </ul>
  370. </li>
  371. <li>
  372. <p>不同角色红包发放逻辑</p>
  373. <ul>
  374. <li>平台
  375. <ul>
  376. <li>可以代替商家、技师发放红包给用户,平台花钱</li>
  377. <li>可设置指定时间段、金额、地区范围的红包发放</li>
  378. </ul>
  379. </li>
  380. <li>商家
  381. <ul>
  382. <li>可以给技师和用户发放红包</li>
  383. <li>可设置指定地区范围(周边xx公里内)的用户发放红包</li>
  384. <li>可设置指定地区范围(行政区域、市、省、全国)的技师发放红包。抢到红包的技师,可以看到店铺详情。
  385. <ul>
  386. <li>选择区,发送给随机技师,红包总额最低5元起</li>
  387. <li>选择市,发送给随机技师,红包总额最低10元起</li>
  388. <li>选择省,发送给随机技师,红包总额最低20元起</li>
  389. <li>选择全国,发送给随机技师,红包总额最低50元起</li>
  390. </ul>
  391. </li>
  392. </ul>
  393. </li>
  394. <li>技师
  395. <ul>
  396. <li>技师有专门的现金充值入口和余额充值功能</li>
  397. <li>可设置指定时间段、金额、地区范围的红包发放</li>
  398. <li>可以给用户发放红包(仅限用户端)</li>
  399. <li>可以抢商家发放的红包,但不能提现</li>
  400. <li>可以使用抢到的红包继续发放给用户,但不能用于提现</li>
  401. </ul>
  402. </li>
  403. <li>用户
  404. <ul>
  405. <li>可以抢技师、商家、平台发放的红包,可以看到技师详情、商家详情、平台详情。</li>
  406. <li>用户打赏技师时,附近的技师可以抢红包,也可以打赏给某个指定的技师</li>
  407. <li>抢到的红包只能在对应商家或平台消费使用</li>
  408. </ul>
  409. </li>
  410. </ul>
  411. </li>
  412. </ul>
  413. <h3 id="免费按摩-1">免费按摩 </h3>
  414. <ul>
  415. <li>
  416. <p>背景:</p>
  417. <ul>
  418. <li>通过免费按摩活动吸引新用户,提升用户活跃度和复购率</li>
  419. <li>让老用户通过分享获得免费按摩机会,实现用户裂变</li>
  420. </ul>
  421. </li>
  422. <li>
  423. <p>获取免费按摩的方式:</p>
  424. <ol>
  425. <li>分享链接邀请新用户</li>
  426. </ol>
  427. <ul>
  428. <li>邀请30个新用户下载注册并完成首单</li>
  429. <li>返现金额进入专用钱包,仅可用于按摩消费</li>
  430. </ul>
  431. <ol start="2">
  432. <li>参与平台营销活动</li>
  433. </ol>
  434. <ul>
  435. <li>新用户注册奖励</li>
  436. <li>节日活动赠送</li>
  437. </ul>
  438. </li>
  439. <li>
  440. <p>免费规则:</p>
  441. <ul>
  442. <li>不能与其他优惠项目叠加使用</li>
  443. <li>免费不包含路费、加钟</li>
  444. <li>用户A和好友B建立渠道推广关系,好友B再下单,则<a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">分帐算法中的渠道推广分成</a></li>
  445. <li>店铺、代理商、平台,可以设置免费项目和发送免费数量</li>
  446. </ul>
  447. </li>
  448. </ul>
  449. <h3 id="盲盒按摩-1">盲盒按摩 </h3>
  450. <ul>
  451. <li>
  452. <p>开放范围:</p>
  453. <ul>
  454. <li>盲盒足疗服务将在全国、省、市、区等指定区域内开放。</li>
  455. </ul>
  456. </li>
  457. <li>
  458. <p>盲盒规则分析:</p>
  459. <ul>
  460. <li>后台需设置盲盒的优惠金额和数量。</li>
  461. <li>分享链接需至少3人点击打开,才能激活盲盒,且打开人与分享人之间需建立数据绑定关联。</li>
  462. <li>盲盒内的项目价位随机,如:170元、100元、80元等;这些项目不参与其他任何渠道提成,技师接单则有奖励分成:<a href="./%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/%E4%B8%9A%E5%8A%A1%E6%A8%A1%E5%9D%97/%E5%88%86%E5%B8%90.md">技师上门分帐算法中的计算渠道分成</a></li>
  463. <li>成本由平台承担,有最高限额</li>
  464. </ul>
  465. </li>
  466. </ul>
  467. <h3 id="拼团按摩-1">拼团按摩 </h3>
  468. <ul>
  469. <li>
  470. <p>背景:</p>
  471. <ul>
  472. <li>通过拼团分享链接下单,即可产生效益</li>
  473. <li>让老用户通过分享获得免费按摩机会,实现用户裂变</li>
  474. </ul>
  475. </li>
  476. <li>
  477. <p>拼团流程</p>
  478. <ul>
  479. <li>用户A分享拼团链接给好友B</li>
  480. <li>好友B通过链接,显示拼团优惠信息,点击“参与拼团”</li>
  481. <li>好友B按拼团后的价格,下单支付</li>
  482. </ul>
  483. </li>
  484. <li>
  485. <p>拼团规则</p>
  486. <ul>
  487. <li>用户通过拼团分享链接下单,超过2人即成团(可设置成团人数:2、5、8人)</li>
  488. <li>必须在规定时间内成团,否则拼团失败,拼团成员必须在规定时间内完成支付,否则拼团失败</li>
  489. <li>后台可配置拼团人数、拼团折扣、关联服务项目和技师等参数</li>
  490. <li>拼团订单不参与渠道提成,推广提成仅归拼团链接发起人(若有原推广人,则不再享有分账提成)</li>
  491. </ul>
  492. </li>
  493. </ul>
  494. <h2 id="todo">todo </h2>
  495. <ul>
  496. <li>代金券</li>
  497. <li>平台补贴店铺</li>
  498. <li>平台送满足条件的技师车辆使用权3年</li>
  499. </ul>
  500. <h2 id="概念模型">概念模型 </h2>
  501. <div class="mermaid">erDiagram
  502. MarketingActivity ||--o{ GroupBuy : contains
  503. MarketingActivity ||--o{ Bargain : contains
  504. MarketingActivity ||--o{ FlashSale : contains
  505. MarketingActivity ||--o{ LuckyBox : contains
  506. MarketingActivity ||--o{ RedPacket : contains
  507. MarketingActivity ||--o{ ShareHolder : contains
  508. MarketingActivity ||--o{ FreeService : contains
  509. GroupBuy ||--o{ GroupBuyMember : contains
  510. Bargain ||--o{ BargainRecord : contains
  511. RedPacket ||--o{ RedPacketRecord : contains
  512. FlashSale ||--o{ FlashSaleOrder : contains
  513. LuckyBox ||--o{ LuckyBoxRecord : contains
  514. ShareHolder ||--o{ ShareHolderDividend : contains
  515. MarketingWallet ||--o{ WalletRecord : contains
  516. %% 营销活动表
  517. MarketingActivity {
  518. int id PK "主键"
  519. string name "活动名称"
  520. string type "活动类型(拼团/砍价/秒杀/盲盒/红包/股东/免费按摩)"
  521. datetime start_time "开始时间"
  522. datetime end_time "结束时间"
  523. int status "活动状态(0未开始/1进行中/2已结束/3已取消)"
  524. json rules "活动规则JSON"
  525. decimal min_amount "最低金额"
  526. decimal max_amount "最高金额"
  527. int area_type "区域类型(0全国/1省/2市/3区)"
  528. string area_codes "区域编码列表"
  529. decimal platform_cost "平台承担成本"
  530. string target_users "目标用户群(新用户/老用户/全部)"
  531. int user_limit "用户参与次数限制"
  532. string service_ids "关联服务项目IDs"
  533. string technician_ids "关联技师IDs"
  534. string shop_ids "关联店铺IDs"
  535. }
  536. %% 免费按摩表
  537. FreeService {
  538. int id PK "主键"
  539. int activity_id FK "活动ID"
  540. int user_id FK "用户ID"
  541. string free_type "免费类型(邀新/活动赠送)"
  542. int invite_count "邀请人数"
  543. decimal amount "免费金额"
  544. datetime expire_time "过期时间"
  545. int status "状态"
  546. }
  547. %% 拼团表
  548. GroupBuy {
  549. int id PK "主键"
  550. int activity_id FK "活动ID"
  551. int initiator_id "发起人ID"
  552. int required_members "成团人数"
  553. decimal group_price "团购价格"
  554. datetime expire_time "截止时间"
  555. int status "拼团状态"
  556. }
  557. %% 拼团成员表
  558. GroupBuyMember {
  559. int id PK "主键"
  560. int group_id FK "拼团ID"
  561. int user_id FK "用户ID"
  562. datetime join_time "参团时间"
  563. int status "支付状态"
  564. }
  565. %% 砍价表
  566. Bargain {
  567. int id PK "主键"
  568. int activity_id FK "活动ID"
  569. int user_id FK "用户ID"
  570. decimal original_price "原价"
  571. decimal current_price "当前价格"
  572. decimal target_price "目标价格"
  573. int bargain_count "已砍次数"
  574. datetime expire_time "截止时间"
  575. int status "状态"
  576. }
  577. %% 砍价记录表
  578. BargainRecord {
  579. int id PK "主键"
  580. int bargain_id FK "砍价ID"
  581. int helper_id "帮砍用户ID"
  582. decimal amount "砍价金额"
  583. datetime create_time "创建时间"
  584. }
  585. %% 红包表
  586. RedPacket {
  587. int id PK "主键"
  588. int sender_id "发送者ID"
  589. string sender_type "发送者类型"
  590. decimal total_amount "红包总额"
  591. int total_count "红包个数"
  592. decimal min_amount "最小金额"
  593. decimal max_amount "最大金额"
  594. datetime expire_time "过期时间"
  595. string scope_type "使用范围"
  596. json scope_config "范围配置"
  597. int status "状态"
  598. }
  599. %% 红包记录表
  600. RedPacketRecord {
  601. int id PK "主键"
  602. int red_packet_id FK "红包ID"
  603. int receiver_id "领取者ID"
  604. decimal amount "领取金额"
  605. datetime receive_time "领取时间"
  606. int status "使用状态"
  607. }
  608. %% 秒杀表
  609. FlashSale {
  610. int id PK "主键"
  611. int activity_id FK "活动ID"
  612. int item_id "商品/服务ID"
  613. decimal original_price "原价"
  614. decimal flash_price "秒杀价"
  615. int stock "库存"
  616. int limit_per_user "每人限购"
  617. }
  618. %% 秒杀订单表
  619. FlashSaleOrder {
  620. int id PK "主键"
  621. int flash_sale_id FK "秒杀ID"
  622. int user_id FK "用户ID"
  623. int quantity "数量"
  624. decimal amount "金额"
  625. datetime create_time "创建时间"
  626. int status "状态"
  627. }
  628. %% 盲盒表
  629. LuckyBox {
  630. int id PK "主键"
  631. int activity_id FK "活动ID"
  632. string box_type "盲盒类型"
  633. json prize_config "奖品配置"
  634. int required_shares "所需分享数"
  635. int stock "库存"
  636. }
  637. %% 盲盒记录表
  638. LuckyBoxRecord {
  639. int id PK "主键"
  640. int lucky_box_id FK "盲盒ID"
  641. int user_id FK "用户ID"
  642. string prize_type "中奖类型"
  643. decimal prize_value "奖品价值"
  644. datetime open_time "开盒时间"
  645. }
  646. %% 共享股东表
  647. ShareHolder {
  648. int id PK "主键"
  649. int user_id FK "用户ID"
  650. decimal invest_amount "投资金额"
  651. datetime start_time "开始时间"
  652. datetime end_time "结束时间"
  653. int status "状态"
  654. }
  655. %% 股东分红表
  656. ShareHolderDividend {
  657. int id PK "主键"
  658. int holder_id FK "股东ID"
  659. decimal order_amount "订单金额"
  660. decimal profit_amount "利润金额"
  661. decimal dividend_ratio "分红比例"
  662. decimal dividend_amount "分红金额"
  663. datetime create_time "创建时间"
  664. }
  665. %% 营销钱包表
  666. MarketingWallet {
  667. int id PK "主键"
  668. int user_id FK "用户ID"
  669. decimal balance "余额"
  670. string source_type "来源类型"
  671. int status "状态"
  672. }
  673. %% 钱包记录表
  674. WalletRecord {
  675. int id PK "主键"
  676. int wallet_id FK "钱包ID"
  677. decimal amount "变动金额"
  678. string type "收支类型"
  679. string source "来源"
  680. datetime create_time "创建时间"
  681. }
  682. </div>
  683. </div>
  684. <script type="module">
  685. // TODO: If ZenUML gets integrated into mermaid in the future,
  686. // we can remove the following lines.
  687. var MERMAID_CONFIG = ({"startOnLoad":false});
  688. if (typeof MERMAID_CONFIG !== 'undefined') {
  689. MERMAID_CONFIG.startOnLoad = false
  690. MERMAID_CONFIG.cloneCssStyles = false
  691. MERMAID_CONFIG.theme = "default"
  692. }
  693. mermaid.initialize(MERMAID_CONFIG || {})
  694. if (typeof(window['Reveal']) !== 'undefined') {
  695. function mermaidRevealHelper(event) {
  696. var currentSlide = event.currentSlide
  697. var diagrams = currentSlide.querySelectorAll('.mermaid')
  698. for (var i = 0; i < diagrams.length; i++) {
  699. var diagram = diagrams[i]
  700. if (!diagram.hasAttribute('data-processed')) {
  701. mermaid.init(null, diagram, ()=> {
  702. Reveal.slide(event.indexh, event.indexv)
  703. })
  704. }
  705. }
  706. }
  707. Reveal.addEventListener('slidetransitionend', mermaidRevealHelper)
  708. Reveal.addEventListener('ready', mermaidRevealHelper)
  709. await mermaid.run({
  710. nodes: document.querySelectorAll('.mermaid')
  711. })
  712. } else {
  713. await mermaid.run({
  714. nodes: document.querySelectorAll('.mermaid')
  715. })
  716. }
  717. </script>
  718. </body></html>