-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgen.js
126 lines (114 loc) · 9.39 KB
/
gen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var fs = require('fs')
const list = []
const prodDefine = [
{
'name': '雙拼',
price: 75
},
{
'name': '卡拉雞腿排飯',
price: 80
},
{
'name': '迷迭香烤豬飯',
price: 80
},
{
'name': '玫瑰油雞飯',
price: 75
},
{
'name': '香蒜烤雞飯',
price: 80
},
{
'name': '椒麻口水雞飯',
price: 80
},
{
'name': '味噌燒肉飯',
price: 75
},
{
'name': '蜜汁叉燒飯',
price: 75
}
]
const payDefine = ['現金', 'Line Pay', 'Apple Pay', 'Google Pay']
const people = ['劉偉智', '劉淑雄', '韓瑜正', '劉靜宜', '黃淑霞', '潘乃琴', '王瑤芬', '許永娥', '賴長愛', '陳淑芬', '郭子剛', '林佩璇', '黃伶志', '蘇婉水', '倪宥恒', '周怡岑', '周孟璇', '王元淑', '吳俊洋', '沈美華', '李倩和', '李明以', '陳佳禾', '鄭淑萍', '阮乃峰', '周瑋穎', '涂志傑', '陳宜喜', '張秀柏', '趙坤芃', '駱語廷', '王柔喜', '黃淑明', '王岳任', '吳必新', '蘇尚財', '王世豪', '施修喬', '黃肇仁', '黃家洋', '謝文啟', '毛馨慧', '吳詩雅', '蔡星紫', '童林杰', '龔郁涵', '周奇福', '林仲亦', '翁俊逸', '蔣佳穎', '林怡珮', '林建勇', '張嘉祥', '陳信宏', '蔡冠志', '蕭承穎', '那婷漢', '袁嘉珊', '鐘瑤天', '謝忠珊', '張智翔', '陳秉裕', '陳淑貞', '陳凱鈞', '陳俊威', '郭珊辛', '葉雅萍', '林彥智', '崔佩玲', '陳鈺聖', '趙俊安', '陽筱婷', '楊豐辛', '方姵堯', '劉子仁', '劉玉喜', '陳昀奇', '謝佳迪', '梅鈺卉', '黃佳穎', '陳國榮', '黃裕仁', '張綠昆', '黃祥憲', '黃子臻', '洪家欣', '吳俊彥', '張子芸', '林政哲', '賴凱鈞', '楊雅云', '莊雅齊', '陳景枝', '王彥然', '鄭伶昀', '褚偉倫', '鄭淑華', '王筱婷', '馮佳慧', '林柏勳', '蘇宏皓', '郭若瑋', '林喜燦', '黃雅慧', '李海睿', '王昱彬', '吳宗全', '許玉娟', '黃佳士', '林慧瑋', '周美惠', '黃士和', '郭子雨', '胡元洋', '劉智超', '趙季發', '葉詩玫', '陳玉昆', '鄭淑惠', '劉旻卿', '王宜蓁', '甘昇惠', '郭芳儀', '蔡秉侑', '賴靜雯', '陳秀珊', '邰仁豪', '陳素俊', '曾芝吉', '林榮迪', '陳昱年', '張志平', '林乃文', '林吟宏', '陳政喜', '林怡民', '王馨儀', '周容斌', '賴婉婷', '洪先元', '王佳宏', '左京嬌', '項志瑋', '潘宗翰', '陳平云', '黃韻如', '王國維', '馮士哲', '劉南昆', '何佳琇', '王玉侑', '王明翰', '侯怡君', '黃合慧', '蔡欣政', '林玉華', '毛俞凱', '李文山', '顧淑純', '許枝仁', '吳嘉偉', '葉凱中', '蔡京玄', '王聖文', '楊惠毓', '陳永明', '施耀茹', '黃旻如', '許容樺', '倪思涵', '陳亭旭', '梁耀萱', '王雅文', '林欣江', '王學潔', '陳家銘', '丁嘉玲', '陳雅萍', '詹雅美', '賴志瑋', '郭世孝', '陳漢佳', '李育純', '江安亨', '劉協臻', '盧靜雯', '蔡姿婷', '鄭雅昀', '庾學財', '陳雲夢', '韓玉萍', '陳瑋山', '蕭水仰', '黃俊宏', '林志軒', '蔡雅仲', '陳芳如', '林坤興', '陳儀源', '林玉姍', '張育誠', '鞏宏臻', '郭雅堯', '黃郁辰', '蔡丹聿', '林靜昀', '包堯倩', '黃智峰', '邱辛陽', '鄭心琪', '藍佳蓉', '龔枝木', '李重君', '陳盈秀', '許志峰', '彭心怡', '蔡育德', '朱秀玲', '黃宇軒', '林承香', '胡宜漢', '邱雯婷', '施堯丹', '李秀娟', '楊婉玲', '李欣妹', '李家銘', '翁可聖', '酆惠萍', '許思翰', '韓先原', '林展木', '李介民', '傅牧良', '陳哲榮', '李至新', '李怡恭', '林菁妏', '蔡淑玫', '沈馨慧', '楊欣瑜', '李宜蕙', '鄧偉銘', '陸怡均', '楊怡君', '高善德', '蔡淑美', '李俊君', '駱淑玲', '涂佩芳', '蔡雅佳', '季合瑋', '陳雅婷', '吳惠文', '譚孟倫', '楊美惠', '楊智明', '洪淑芳', '陳智平', '羅宗穎', '李家年', '甯士凱', '白惠婷', '李禹峰', '馮卓迪', '吳孟仁', '陳豪鈺', '林家儀', '林亭君', '李靜謙', '蔡柏廷', '彭一亞', '黃羽隆', '鄧姿泉', '張威嬌', '孫慧萍', '戴方華', '簡彥智', '梁淑芬', '朱偉倫', '經怡君', '曹淑珍', '林進麟', '連邦嘉', '李茜胤', '林立美', '林明杰', '郭泓典', '吳俊吉', '李宗穎', '余文旺', '林容能', '林亦瑋', '李佳月', '藍義凱', '陳智文', '吳欣怡', '陳惠人', '吳宗琴', '李淑琴', '趙佳蓉', '朱雅宇', '唐琪萱', '蔡政博', '潘思瑤', '王江達', '陳喜辛', '靳名定', '李耀德', '江美珍', '李政儒', '林珮如', '邱慧茹', '陳翔新', '張信宏', '張貴倫', '龔雅婷', '趙小吉', '朱希仁', '林佳燕', '洪建志', '張美慧', '蔡宗翰', '楊容喜', '李慧玲', '陳馨儀', '林姿凡', '許慧婷', '李科能', '鄭俊賢', '陳淑萍', '劉書瑋', '劉辰一', '曹翊羽', '林雅慧', '李怡婷', '吳向香', '吳怡禎', '沈韋伶', '蔡文淑', '李邦星', '周聖寧', '陳承穎', '陳奕利', '林婉瑜', '林宏郁', '張欣念', '杜立偉', '許于珊', '劉玉娟', '艾怡安', '夏佩璇', '楊阿民', '詹治興', '張淑慧', '王維帆', '劉財茹', '謝欣天', '鄭建佑', '劉鈺婷', '杜怡君', '林佩惠', '黃淑真', '潘子剛', '張聖威', '王海彥', '吳昆妹', '張嘉貞', '羅怡君', '黃慧敏', '吳淑能', '楊耿杰', '吳宛玲', '陳秀玲', '葉依宇', '陳文傑', '詹和舜', '黃威廷', '楊舒青', '伏興瑋', '林貞儀', '王宥哲', '張郁瑜', '賴怡紫', '劉雅惠', '黎祐誠', '李貞生', '楊亭仲', '賴晏水', '吳彥宇', '杜益如', '施麗萍', '黃宜蓁', '蔣昱宏', '陳士賢', '廖志容', '林秀鴻', '林韋恬', '劉柏翔', '劉以福', '駱天揚', '許芳儀', '丁紫仁', '魏雅婷', '胡財蓉', '雲銘文', '金信宏', '何禮宏', '吳文群', '吳宗翰', '阮剛廷', '楊小如', '周天恆', '鄭惠文', '謝文豪', '王麗坤', '李宣啟', '陳雅雯', '於皓雲', '李偉青', '吳政忠', '李佳祥', '郭曉竹', '鄭瓊洋', '劉萱霖', '林裕謙', '張雅琪', '劉民軍', '翁軒瑞', '楊家良', '林佳燕', '郭佳慧', '蔡雅雯', '陳右正', '陳意良', '黃予平', '張涵利', '王惠雯', '鄭文彥', '張惠純', '許雅辰', '傅睿利', '余文傑', '魏少啟', '張鈞星', '張昆堅', '賴上純', '張雅宇', '郭俊毅', '蔡志銘', '李佑治', '蔡木慧', '李豐賢', '李淑士', '李成和', '林惠彥', '陳慧淑', '李孟雯', '陳信玟', '陳俐伯', '張智智', '陳牧舜', '毛裕然', '李勇志', '劉恆堯', '蔡仁琴', '吳淑旭', '李富婷', '黃士皓', '黃靖映', '張惠恭', '鄧士豪', '王靜雯', '陳晴婷', '胡昀雅', '羅雪憲', '張俊宏', '謝明昀', '楊昇威', '王松安', '邱科江', '張家娥', '王琳紫', '吳柏鈞', '張樂堅', '林映恒', '謝欣婷', '蔡芳如', '黃石仲', '高政達', '林宛蓉', '陳怡欣', '王向中', '黃睿紫', '鄧馥博', '陳靜宜', '郭威廷', '王嬌汝', '林峻聿', '王淑媛']
const category = ['A', 'B', 'C', 'D', 'E']
const couponValue = [5, 10, 15, 20, 25]
function getRandomInt(max, basic = 0) {
return Math.floor(Math.random() * Math.floor(max - basic)) + basic
}
function genProds() {
for (let i = 1; i <= 100; i++) {
const products = {}
for (let j = 0; j < getRandomInt(3, 1); j++) {
const prod = prodDefine[getRandomInt(prodDefine.length)]
if (!products[prod.name]) {
products[prod.name] = prod
products[prod.name].count = 1
} else {
products[prod.name].count += 1
}
}
list.push({
id: i.toString().padStart(3, '0'),
products,
status: getRandomInt(4, 1) >= 2 ? '已完成' : '已退單',
pay: getRandomInt(2) >= 1 ? payDefine[0] : payDefine[getRandomInt(payDefine.length)],
getTime: '2019-09-20',
user: people[i]
})
}
}
function genPeopleAttr() {
for (let i = people.length - 1; i >= 1; i--) {
const like = []
for (let j = 0; j < getRandomInt(3, 1); j++) {
const prod = prodDefine[getRandomInt(prodDefine.length)]
like.push(prod)
}
const interval = getRandomInt(35, 2)
const intervalupper = interval - getRandomInt(5, 1)
const nextBuyNum = getRandomInt(interval, 2)
const hasCoupon = getRandomInt(10) > 6
const loyalty = 10 - Math.floor(((interval / 7) + 1) * 1.4)
let doText = ''
if (hasCoupon && loyalty > 5) {
doText = '已再推薦顧客喜好餐點'
} else if (hasCoupon && nextBuyNum < 7) {
doText = '已推薦近日來用餐'
} else if (!hasCoupon && nextBuyNum > 7) {
doText = '已推薦嘗試看看其他餐點'
} else if (hasCoupon) {
doText = '已提醒使用優惠卷'
} else {
doText = `建議發送${couponValue[Math.floor(interval / 7)]}元優惠卷`
}
list.push({
name: people[i],
category: category[Math.floor(interval / 7)],
like,
interval: {
upper: intervalupper > 0 ? intervalupper : interval - 1,
lower: interval
},
nextBuy: new Date(Date.now() + 1000 * 60 * 60 * 24 * nextBuyNum),
nextCoupon: hasCoupon > 3 ? null : new Date(Date.now() + 1000 * 60 * 60 * 24 * nextBuyNum),
coupon: hasCoupon ? `${couponValue[getRandomInt(couponValue.length)]}元優惠卷` : '-',
loyalty,
doText
})
}
}
// genProds()
genPeopleAttr()
fs.writeFile('gen.json', JSON.stringify(list), function(err) {
if (err) {
console.log(err)
} else {
console.log('Write operation complete.')
}
})