Skip to content

Instantly share code, notes, and snippets.

@zhugw
Last active June 5, 2023 09:56
Show Gist options
  • Save zhugw/c96cff5e9cbad850bbf5f5f8ae7a5397 to your computer and use it in GitHub Desktop.
Save zhugw/c96cff5e9cbad850bbf5f5f8ae7a5397 to your computer and use it in GitHub Desktop.
博晓通Java实习生笔试题
## 说明
基于实际工作场景出的题目 后面日常工作很有可能就是这类开发
## 笔试题
### 数据处理工作
博晓通是一家数据分析公司 会有很多数据处理的场景
#### 打标签
说明
对采集的啤酒电商数据 打上系列标签 规则为
```
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