Last active
June 5, 2023 09:56
-
-
Save zhugw/c96cff5e9cbad850bbf5f5f8ae7a5397 to your computer and use it in GitHub Desktop.
博晓通Java实习生笔试题
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 说明 | |
基于实际工作场景出的题目 后面日常工作很有可能就是这类开发 | |
## 笔试题 | |
### 数据处理工作 | |
博晓通是一家数据分析公司 会有很多数据处理的场景 | |
#### 打标签 | |
说明 | |
对采集的啤酒电商数据 打上系列标签 规则为 | |
``` | |
1.先识别品牌,如果品牌值是其他,那么系列就是其他 | |
2.如果品牌有值,那么根据商品名称去匹配第一关键字,匹配到了 就打上映射值的标签 | |
3.如果第一关键字匹配不到 就要求匹配2,3,4关键字(2 3 4是 and关系。需要都匹配到才可以) | |
4.如果最终品牌有值,系列没打上标签,那么系列值就等于 品牌+其他 | |
``` | |
举例 | |
【腾讯文档】beer_series_tag_demo | |
https://docs.qq.com/sheet/DY2JqbnlPZlNGVXBt?tab=BB08J2 | |
方法:打系列标签 | |
方法输入:品牌,商品名称, 映射词典 | |
返回:系列标签 | |
注意: 需加上单元测试 验证逻辑正确性 | |
另外还需要额外开发这么一个service类 功能如下: | |
1. 分批查询商品表 | |
2. 逐个打标签 映射词典也从表中查询 | |
3. 批量更新商品表 即对系列字段赋值 | |
数据库表结构设计参考文档:https://docs.qq.com/sheet/DY2JqbnlPZlNGVXBt?tab=BB08J2 | |
数据库可以去阿里云申请一个免费的云数据库 阿里云地址:https://cn.aliyun.com/ | |
这个题目考察操作数据库的能力 | |
#### 打标签-单量 | |
考察正则 从商品名称中提取单量 (会基于单量来计算线上的销量) 如下所示 | |
``` | |
黑狮啤酒 啤酒黑狮白啤听装 500mL*12听罐整箱 雪花匠心营造500ml*12罐 ==> 500 | |
SNOW雪花纯生啤酒8度500ml*12罐匠心营造易拉罐装整箱黄啤酒 500mL*12瓶 ==> 500 | |
【啤酒周边纪念品】百威啤酒5款355毫升红色经典限量版空铝瓶 ==> 355 | |
北京 广州仓直发 坦克伯爵精酿 百香果味 10度百香果小麦白啤酒330ML×12瓶 整箱装 果香十足 ==> 330 | |
泰山传说官方经典正品德式进口工艺酿造世涛黑啤酒1L*12桶装包邮泡沫丰富饱满口味持久浓郁甘甜爽口营养丰富 ==> 1000 | |
青西金琥珀拉格啤酒青岛特产精酿啤酒5L装熟啤酒节青岛特产全麦大桶装精酿拉格啤酒 ==> 5000 | |
青岛特产精酿原浆啤酒全麦白啤蓝宝石酿酒师浑浊2升桶装促销包邮 ==> 2000 | |
(1.35L*6桶)俄罗斯进口波罗的海远东古典啤酒 远东烈性啤酒 大麦黄啤整箱啤酒 远东古典1.35升*6桶(口感适中) ==> 1350 | |
``` | |
方法名: 提取单量 | |
输入: 商品名称 | |
返回:单量 | |
注意: 需加上单元测试 验证逻辑正确性 | |
#### 基于促销信息 计算最低到手价 | |
品牌方需要对价格进行管控 经销商的价格不能低于设置的红线价 如果最低到手价低于红线价 就认为是破价 会要求经销商进行整改 | |
基于采集的价格 和 促销信息 计算最低到手价 | |
规则如下 | |
``` | |
页面价格:2069.00 | |
促销信息: 购买至少1件时可享受优惠,满2149元减130元 | |
最低到手价: 2004 | |
计算规则:购买2件的话 可以满减 那么此时每件到手价为: (2069*2 - 130) / 2 = 2004 | |
页面价格:1969.00 | |
促销信息:购买1-3件时享受单件价¥1969,超出数量以结算价为准,满399减10 | |
最低到手价:1959 | |
计算规则: 1969-10 | |
页面价格:1899 | |
促销信息:满4999减150,满3999减120,满2999减90,满1999减60,满999减30 | |
最低到手价: 1849 | |
计算规则:同上 但是取最低的那个 | |
(1899*3 - 150)/3 | |
(1899*2-90) / 2 | |
1899-30 | |
页面价格:440 | |
促销信息:购买至少1件时可享受优惠 | |
最低到手价:440 | |
页面价格:529 | |
促销信息: 无 | |
最低到手价: 529 | |
``` | |
方法名: 计算最低到手价 | |
方法输入:页面价格, 促销信息 | |
返回: 最低到手价 | |
注意: 需加上单元测试 验证逻辑正确性 | |
### excel操作 | |
有时候也需要给运营人员开发一些小工具 | |
1. 按列拆分表 | |
见表格 | |
【腾讯文档】groupbuy_20230605 | |
https://docs.qq.com/sheet/DY1h0UnVTSEVHSUFH?tab=BB08J2 | |
如 运营人员想要按照大区列 拆成16个excel 每个大区对应一个excel | |
请开发这么一个接口: | |
POST /splitExcel | |
输入: excel ,列名 | |
返回: 一个zip zip中是按照指定列拆分后的excel 如 可以指定大区 也可以指定平台或城市 | |
2. 如果不开发接口呢 运营人员不懂技术 让他们调用api去拆分excel 也很难 | |
能否直接生成一个exe工具给到运营人员 让他们去使用呢 请说明怎么将Java代码转成exe 以及 运营人员怎么去使用这个exe | |
开发要求: | |
请将上述的要求开发在一个项目中 提交到github上 私下给我github地址即可 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment