开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

(20201223) Hot Posts


 

开云体育

2020-12-23 Hot Posts

?

Hacker News

V2EX


苹果不是最先这么做的,但是苹果这么做了,应该会带起这样设计的“潮流”吧?

十分想要把手中的 16 寸乞丐 mbp 卖掉,换…… 换 m2 哈哈哈哈

截图来自:


前情提要: 里面有不少图片都挂了,全文可以看

本人江苏昆山人,上一份工作是在上海贝壳找房,每天作为高铁侠上海昆山来回跑,每天通勤时间保守估计三个小时。虽然三个小时对于一些上海郊区群众来说也算差不多,但是赶高铁对于时间准确要求高,一旦堵车或者因为别的什么事耽搁了,时间成本至少在半小时以上,而且由于开车-高铁-地铁的时间是小段的,其实没法用来干什么事,最多看看新闻或者读读公众号(在路上断断续续看了两遍《剑指 offer 》,效率特别低,大概花了两个月才看完),其实这三个小时,我个人感觉来说,就是结结实实浪费掉的。

前一阵子,正经刷了大概三个月的题,磕磕绊绊总算拿了苏州微软的 offer,面经在此,也在一个月前入职了微软,下面就聊聊个人的经历和感受吧。

面试

微软的面试相比我之前几家公司,我感受到的大概是以下几方面

礼貌

面试官都非常有礼貌,无论对方的级别比我高很多,或者是比我年轻,都会彬彬有礼地对自己及所在部门做简短的介绍,面试过程中也会像合作一样去和你沟通,把他自己的想法告诉你,让面试者和面试官一起去把他提出来的问题解决,的确是一个让人很舒服的面试过程。之前面过的几家国内大厂,真的就是上来就是噼里啪啦问问题,会把人问晕。

公平

虽然六轮面试有点多,但是 2-5 轮是交叉面试,中间挂了一轮,其实也没事,像我的第三轮就挂了,只要整体表现合格,最终还是会通过的。不像其他厂,一轮一轮地过,如果遇到运气不好,或者和面试官不合拍,挂了直接人没了。

准时

每一轮面试都是一小时,而且有准确的时间表,准时到,发现时间来不及了,会提前五分钟和你说,时间快要到了,我们赶紧把接下来的内容弄完。超时了还会跟你道歉,真的是惊到我了。

框定范围

微软面试之前,HR 会准确地告诉你面试的范围,我一开始还不太相信,本来以为是每轮都会有点算法,结果后面五轮完全没考算法,就是在 HR 告诉你的范围里,这就会让人有充分的准备。

工作

工作时间

没有明确的工时规定,就我个人感觉,只要你把工作内容做完,会议准时参加(现在一般都是线上会议)。如果上午排满了会议,可以在家开完会,吃完中饭再去公司也是没问题的。劳动合同签订的是:**不定时 **工作制度,每天工作不允许超过八小时。虽然很多公司明面上都说九点上班六点下班,但是大家都不走,很多时候就耗在公司不走,甚至八点下班都觉得是早走,在微软完全不会这样,很多同事早上来的早,下午可能三四点就走了,然后如果要接小朋友放学的,也走得早,回家把事情干完记性。至于你六点下班或者五点下班,完全不用偷偷摸摸。

工作环境

目前苏州的工位可以说是极度稀缺资源,因为招的人太多,楼里都快塞不下了,于是我被安排和另外一个同事坐在了会议室里,不过相比原来的工位也大了不少,一月份有部分团队会搬到新的大楼里,我们到时候就可以搬到外面的工位,比原来上海的工位大了一倍吧。另外,每人提供两个 27 寸 2K 显示器,一个台式机,一个笔记本,对于工作来说,确实是很舒服了。椅子的话,我感觉一般,但是据同事透露,每把都是 700 多刀,我惊叹要是我拿着 700 刀,得买个多舒服的椅子啊。平时的话,茶水间有免费的零食,每天轮着来的泡好的菊花茶、普洱茶、苦荞茶等等,胶囊咖啡、豆子咖啡都有,还有免费的元气森林,无糖饮料,酸奶,定时限量供应的水果,想吃的时候过去拿就行了(每天一瓶饮料的我,感觉自己就是在薅资本主义羊毛)。

食堂的话是外包的,每个月会给你每天 30 的餐补,如果你在食堂吃一顿,根本吃不完,大概就是 16-25 左右,来之前很多同事说食堂很难吃,但不知道是我个人包容性比较强,还是别的原因,我觉得还行,而且每天吃饭都得排队,可能这就是真香定律吧。或许再吃一个月我就会受不了,但到时候再说吧~

团队融入

说实话,再好的公司,也会有不完善的地方,微软的入职清单,我感觉就比较混乱,也没有告诉你哪些是重要的,哪些是后面可以看的,都需要你自己去分辨,自己看文档,自己搜资料,好多问题遇到了,没人解决,就自己摸索,或者群发邮件去找人解决。不过还好同事们都比较热情,问问题都会回复然后由于我们的经理在美国,因此开会基本都是线上,于是和同事们都成了网友,每天在群里交流工作,线上会议同步工作进度,除了公司的小吃零食和双屏幕外,其他基本和线上工作没区别。

另外就是新人培训,也有很多浪费时间的地方,不够好的地方,但是会有人想办法去优化,所以有槽点,但在改进,总的来说还是好的吧。

工作内容

技术栈

作为一个新时代的前端,技术栈无非就是 UI 框架( React ),打包工具( Webpack ),各种包( Nodejs, node_modules )等等。但不得不说,微软真是把这些东西玩出了花,以上每一样东西,我都懂,但是到了微软里,各种轮子我直接看不懂,本来改一个 bug,有一个数据流转出了问题,我接手的时候想:就这?老子不是分分钟给你搞定?

然后一看代码,这哪来的数据?这包怎么有个 soft-link,跳哪去了?诶,好像就是这个事件,来个断点!然后去浏览器里 debug,真就堆栈里有四五十个函数,跳来跳去把我人绕晕了。最后求助同事,呵呵,有个 API 没 call,我直接裂开。

之前的后端是 Node, Java, Python 都有,现在是 C#,虽然目前没写,但是之后应该会接触,可以说,要学的东西真的还挺多。

诸如此类的代码,虽然本质都是一样的,但是众多的文档,复杂的业务代码,还是很有上手的难度,不过微软好就好在会给人充足的时间去学习,去适应,节奏也比较慢。

工作语言

一般书面沟通,大部分都是英文,除非你确认对方是在中国地区的中国同事,你可以和他发送中文消息,他也会回你中文。因为很多在美国的中国人,他们的工作电脑是不会装中文输入法的,所以你用英文和别人沟通,永远是不会错的。

口头交流的话,如果全是中国人,讲中文完全没关系,如果有外国人,那就必须要讲英语了,但是也不用怕,可以慢慢讲,其实语言就是个沟通工具,相互理解对方的意思就行。

工作压力

说实话,之前很多人说微软轻松,我是没感受到的,一个最直观的现象就是,现在我的手机拿到公司放着,下了班都不用充电,还剩 70%的电,之前摸摸鱼刷刷手机的,基本上每天都要在公司充一次电。

虽然在微软任务不多,但是要学习的内容实在是太多了,而且有海量的沟通要处理,形式包括邮件、teams 或是会议。对于新人来说,每天有不少技术以外的东西要学,对于老同事,则需要面试,各种团队之间的沟通等等。所以每天为了准时下班,都会在上班的时间内抓紧每一分钟来学习和工作,有时候连午睡都没时间,但是这样充实的工作,至少让我觉得每天过得很有意义。

新的领域

相比于微软,只能说之前的工作还是太野路子了,写完业务代码,最多研究研究 Node.js ,看看 CI,研究研究 Prometheus 监控等等。来了微软,就会碰到各种之前没接触到了领域,Localization,Accessibility,Compliance 等等,都是之前知道,但是没有写过的领域。

我算是知道了阿拉伯人和犹太人的书写是从右往左,css 有 direction: rtl ; A11y 是如何方便残障人士的使用;一个文案是要经过特定人员或是法务部门的审核。大公司的流程和严谨,以及对于各类用户提供的便利及包容性,都是之前未曾想象过的。

个人成长

微软的 connect (绩效),是从以下几方面来评判的,个人产出;你的影响力;是否基于别人的工作做了更高一步的产出;个人的学习和成长。因此在微软,成长并不是一个人的,而是你和你的团队,你的同事一起成长,或许这就是我们常说的把队友拧成一股绳?

面试的时候和老板聊天,老板说希望工程师要保持好奇心,这样才会不断成长;同时也要好好包装自己,把自己做出来的成果,要讲得出去。因此其实,类似于文字、沟通能力这种软实力,以及学习能力,永远是一个优秀的,一直在成长的人需要的素质。老板鼓励你去学习,自己愿意去学,我觉得在哪里,你都会成长的。

工作之外

福利

微软的福利确实是不错(虽然我都还没享受到),餐补、健身报销、学习经费报销、Xbox Game Pass 、Azure 经费等等。family day 派发苏州乐园或是华谊兄弟影城的门票,据说上海的是迪士尼或是海昌海洋世界的门票(在下酸了)。节日有礼物(据说是购物卡),还有 party 可以让你玩游戏、拿奖品、敞开肚皮吃零食水果,圣诞 party 上我就拿了三个奖品,运动水壶、护眼台灯还有三合一数据线,虽说都不是怎么贵吧,但也聊胜于无。

运动(各类俱乐部)

Teams 里有各种俱乐部,台球、乒乓球、足球和羽毛球等,一应俱全。

还有各种电子竞技,我来的时候他们正好在举办 DOTA 比赛,可惜入职晚了一点,没赶上,不然感觉蹭个经典亚军恭喜一下 OG 还是可以的。最近好像还有 LOL 的比赛,但是作为铁血刀斯林,我是肯定不会去看的。

团建

团建其实不定期,但是基本不会占用周末的时间。我来的第二天,就雨天去爬了一波虎丘,虽然个人不是太喜欢吧,但是工作日出去玩,何乐而不为?据说上海还有团队专门包了大巴来阳澄湖吃蟹(我又酸了)。

零碎问题

  • 使用什么系统开发

大部分组都是使用 Windows 开发,对于用了好几年 Mac 的我来说,着实是有点痛苦,但是用着用着也就习惯了,毕竟只是开发,在哪开发不是开发,何况 Windows 配置一下也可以很方便。不过我想吐槽的就是,很多微软的上古产物,UI 还是那么难看(说的就是你,PC 版 outlook ),但是这种大型产物,UI 的更新成本总是那么高,所以还是慢慢期待吧。

  • 周围牛人太多,会不会有压力

我老板是 MIT 的,群里随便加一个人,就是北大的,可以说是牛人遍地走了。这个世界永远不缺厉害的人,你需要做的,就是不要妄自菲薄,不要盲目和别人比较,脚踏实地地去做好每一件事,相比从前的自己,一直在进步就好了。

  • 如何在微软好好干下去

老板和我一对一聊天的时候就说了,微软是个包容性很强的公司,想在微软干好,光有技术实力是远远不够的,你需要知道的有很多。所幸微软都给你提供了各种学习渠道,比如 unconscious bias,告诉你如何与形形色色的人相处;比如商业合规,是入职必备学习,让你知道各种不能碰的红线。

结语

说了这么多,其实只是作为一个普通的前端,给大家分享一下微软的工作到底是什么样的。

对于我个人来说,确实很愿意推荐朋友来微软这样一家公司,何况我们组的全员会上,老板再叁地强调,招人!招人!招人!真的是求贤若渴了。

最近光我们大组,就有几十个 Head Count,微软苏州会有更多。

而且我们组六个人,只有两个人是在职两年以上的,其余全都是入职叁个月以内。我不敢说现在是最好的加入微软的时机,但是我感觉,绝对是个不错的时机。

因此想加入微软的同事,可以在这 找匹配的职位,示意图如下。

image.png

或者可以直接简历发我邮箱 ymyymy_2@... 联系我内推呀。


之前一直是绿茶

只剩最后一包了 喝完这包想换换口味

大家有没有什么推荐的(排除枸杞)


本来是想薅羊毛,结果到最后发现自己才是羊啊

非常熟悉 C,对单片机和蓝牙算是比较精通了吧。能用 C#和 Python 做个上位机 App 啥的,感觉基本上没有大厂会在这方面大范围的招人啊,这个方向还有发展前途吗


当年在学校机房上网,为了 QQ 升级,经常特意续时间,干等着挂到 2 个小时;

也无聊到在网上找攻略,开通所有图标,就为了鼠标滑到头像上弹框比较漂亮;

还经常看官方的靓号网,看看哪个 QQ 号比较靓;

也买过 QQ 秀、开过粉钻,把自己照片传上去,这样别人跟我聊天的时候,对话框右边就能看到我的照片; -。-

还买过各种 QQ 号,当年差点买了 5 位死号,1800 元,穷学生买不起最后放弃了。不知道买了的话会不会被卖家申诉回去;

......

直到今年上半年,工作的时候还在用 QQ,下半年公司开始用公司微信,QQ 算是彻底不用了。突然很感慨,一切都在变。

再过几年,

还在做现在的工作吗?

还会在每天早上 8 点 10 分左右到 8 号线等地铁吗?

会不会离开现在住了好几年的地方?

身边的朋友会不会陆续回老家?

......


Imgur

家里两台 NAS,一个 N3150,一个 J1900,折腾的东西多了之后感觉 CPU 已经瓶颈了。。。老铁们有什么好的低功耗、带硬解的 U 推荐吗?


要每人自费买一份礼物
匿名包装后 互相交换
我服了

没有别的意思就是想让大家,长长见识~ 能看懂算我输

SELECT
	* 
FROM
	(
	SELECT
		`inventory`.`id` AS `inventoryId`,
		`inventory`.`location_id` AS `locationId`,
		`inventory`.`storehouse_id` AS `storehouseId`,
		`product`.`id` AS `productId`,
		`product`.`name` AS `name`,
		`product`.`number` AS `number`,
		`brand`.`name` AS `brandName`,
		`product`.`size` AS `size`,
		`category`.`name` AS `categoryName`,
		`product`.`unit` AS `unit`,
		`storehouse`.`name` AS `storehouseName`,
		`location`.`name` AS `locationName`,
		IFNULL( inventory.quantity, 0 ) AS `remainQuantity`,
		IFNULL( inventoryBath.avgPrice, 0 ) AS `avgPrice`,
		IFNULL( inventoryBath.totalPrice, 0 ) AS `totalPrice`,
		`inventoryWarning`.`lowerLimit` AS `lowerLimit`,
		`inventoryWarning`.`upperLimit` AS `upperLimit`,(
			IFNULL( repairOrderItem.repairRemainQuantity, 0 )+ IFNULL( purchaseReturnOrderItem.purchaseReturnRemainQuantity, 0 )+ IFNULL( otherOutOrderItem.otherInOutstockQuantity, 0 )) AS `waitOutQuantity`,(
		IFNULL( purchaseOrderItem.purchaseRemainQuantity, 0 )+ IFNULL( otherInOrderItem.otherInOutstockQuantity, 0 )+ IFNULL( onlineInOrderItem.onlineRemainInstockQuantity, 0 )) AS `waitIntQuantity`,
		`product`.`barcode` AS `barcode`,
		`supplier`.`name` AS `supplierName`,
		`product`.`valid_period` AS `validPeriod`,
		`product`.`standard_id` AS `standardId`,
		`product`.`from_id` AS `fromId`,
		`product`.`source` AS `source`,
		`oeTable`.`oeNumber` AS `oeNumber`,
		`product`.`vehicle_note` AS `vehicleNote`,
		`product`.`description` AS `note`,
		`store`.`name` AS `storeName`,
		`product`.`create_time` AS `createTime`,
		`inventory`.`tenant_id`,
		`product`.`sale_price1` AS `productSalePrice`,
		`product`.`price_mode` AS `productPriceMode`,
		`product`.`markup_type` AS `productMarkupType`,
		IFNULL( lastPurchasePrice.lastPurchasePrice, 0 ) AS `lastPurchasePrice`,(
		CASE
				
				WHEN product.price_mode = 1 THEN
				product.sale_price1 
				WHEN product.price_mode = 2 
				AND product.markup_type = 1 
				AND IFNULL( inventory.quantity, 0 )= 0 THEN
					IFNULL( lastOutPrice.unitPrice, 0 )* product.sale_price1 
					WHEN product.price_mode = 2 
					AND product.markup_type = 1 
					AND IFNULL( inventory.quantity, 0 ) != 0 THEN
						IFNULL( inventoryBath.avgPrice, 0 )* product.sale_price1 
						WHEN product.price_mode = 2 
						AND product.markup_type != 1 THEN
							IFNULL( lastPurchasePrice.lastPurchasePrice, 0 )* product.sale_price1 
						END 
						) AS salePrice 
					FROM
						`inventory`
						LEFT JOIN `product` ON `inventory`.`product_id` = `product`.`id`
						LEFT JOIN `category` ON `product`.`category_id` = `category`.`id`
						LEFT JOIN `brand` ON `product`.`brand_id` = `brand`.`id`
						LEFT JOIN `storehouse` ON `inventory`.`storehouse_id` = `storehouse`.`id`
						LEFT JOIN `location` ON `inventory`.`location_id` = `location`.`id`
						LEFT JOIN `supplier` ON `product`.`supplier_id` = `supplier`.`id`
						LEFT JOIN `store` ON `inventory`.`store_id` = `store`.`id`
						LEFT JOIN (
						SELECT
							SUBSTRING_INDEX(
								GROUP_CONCAT( unit_price ORDER BY outstock_time DESC ),
								',',
								1 
							) AS `unitPrice`,
							`product_id` AS `productId` 
						FROM
							`inventory_batch` 
						WHERE
							( `store_id` = '27358' ) 
							AND ( `inventory_batch`.`tenant_id` = 1 ) 
						GROUP BY
							`product_id` 
						) `lastOutPrice` ON `inventory`.`product_id` = lastOutPrice.productId
						LEFT JOIN (
						SELECT
							group_concat( product_number.number SEPARATOR ";" ) AS `oeNumber`,
						`product_number`.`product_id` AS `productId` 
						FROM
							`product_number` 
						WHERE
							( `product_number`.`type` = 1 ) 
							AND ( `product_number`.`tenant_id` = 1 ) 
						GROUP BY
							`product_number`.`product_id` 
						) `oeTable` ON `inventory`.`product_id` = oeTable.productId
						LEFT JOIN (
						SELECT
							`storehouse_id` AS `storehouseId`,
							SUM( quantity )- SUM( outstock_quantity ) AS `remainQuantity`,
							SUM(
								unit_price *(
									quantity - outstock_quantity 
								)) AS `totalPrice`,
							`product_id` AS `productId`,
						IF
							(
								inventoryBathAll.currentQuantity = 0,
								inventoryBathLast.unitPrice,
							round( inventoryBathAll.avgPrice, 2 )) AS `avgPrice` 
						FROM
							`inventory_batch`
							LEFT JOIN (
							SELECT
								`product_id` AS `productId`,
								SUM( quantity )- SUM( outstock_quantity ) AS `currentQuantity`,
								CONVERT (
									SUM(
										unit_price *(
											quantity - outstock_quantity 
										))/(
									SUM( quantity )- SUM( outstock_quantity )),
								DECIMAL ( 20, 2 )) AS `avgPrice` 
							FROM
								`inventory_batch` 
							WHERE
								( `store_id` = '27358' ) 
								AND ( `inventory_batch`.`tenant_id` = 1 ) 
							GROUP BY
								`product_id` 
							) `inventoryBathAll` ON `inventory_batch`.`product_id` = inventoryBathAll.productId
							LEFT JOIN (
							SELECT
								SUBSTRING_INDEX(
									GROUP_CONCAT( unit_price ORDER BY batch_number DESC ),
									",",
									1 
								) AS `unitPrice`,
								`product_id` AS `productId`,
								max( batch_number ) AS `batchNumber` 
							FROM
								`inventory_batch` 
							WHERE
								( `store_id` = '27358' ) 
								AND ( `inventory_batch`.`tenant_id` = 1 ) 
							GROUP BY
								`product_id` 
							ORDER BY
								`batch_number` DESC 
							) `inventoryBathLast` ON `inventory_batch`.`product_id` = inventoryBathLast.productId 
						WHERE
							( `store_id` = '27358' ) 
							AND ( `inventory_batch`.`tenant_id` = 1 ) 
						GROUP BY
							`product_id`,
							`storehouse_id` 
						) `inventoryBath` ON ( `inventory`.`product_id` = inventoryBath.productId ) 
						AND ( `inventory`.`storehouse_id` = inventoryBath.storehouseId )
						LEFT JOIN (
						SELECT
							`product_id` AS `productId`,
							`lower_limit` AS `lowerLimit`,
							`upper_limit` AS `upperLimit` 
						FROM
							`inventory_warning` 
						WHERE
							( `store_id` = '27358' ) 
						AND ( `inventory_warning`.`tenant_id` = 1 )) `inventoryWarning` ON `inventory`.`product_id` = inventoryWarning.productId
						LEFT JOIN (
						SELECT
							SUM( repair_order_product_item.quantity - repair_order_product_item.use_quantity ) AS `repairRemainQuantity`,
							`repair_order_product_item`.`product_id` AS `productId` 
						FROM
							`repair_order_product_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`repair_order` 
							WHERE
								( `status` != 21000 ) 
								AND ( `repair_order`.`store_id` = '27358' ) 
							AND ( `repair_order`.`tenant_id` = 1 )) `repairOrder` ON `repair_order_product_item`.`order_id` = repairOrder.id
							INNER JOIN (
							SELECT DISTINCT
								`product_id` 
							FROM
								`inventory` 
							WHERE
								( `store_id` = '27358' ) 
								AND ( `inventory`.`tenant_id` = 1 ) 
							GROUP BY
								`product_id` 
							) `inventoryQue` ON `repair_order_product_item`.`product_id` = inventoryQue.product_id 
						WHERE
							`repair_order_product_item`.`tenant_id` = 1 
						GROUP BY
							`repair_order_product_item`.`product_id` 
						) `repairOrderItem` ON `inventory`.`product_id` = repairOrderItem.productId
						LEFT JOIN (
						SELECT
							SUM( purchase_return_order_item.quantity - purchase_return_order_item.outstock_quantity ) AS `purchaseReturnRemainQuantity`,
							`purchase_return_order_item`.`product_id` AS `productId` 
						FROM
							`purchase_return_order_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`purchase_return_order` 
							WHERE
								(
								`purchase_return_order`.`status` IN ( 12000, 13000 )) 
								AND ( `purchase_return_order`.`store_id` = '27358' ) 
							AND ( `purchase_return_order`.`tenant_id` = 1 )) `purchaseReturnOrder` ON `purchase_return_order_item`.`order_id` = purchaseReturnOrder.id 
						WHERE
							`purchase_return_order_item`.`tenant_id` = 1 
						GROUP BY
							`purchase_return_order_item`.`product_id` 
						) `purchaseReturnOrderItem` ON `inventory`.`product_id` = purchaseReturnOrderItem.productId
						LEFT JOIN (
						SELECT
							SUM( other_in_out_stock_order_item.quantity ) AS `otherInOutstockQuantity`,
							`other_in_out_stock_order_item`.`product_id` AS `productId` 
						FROM
							`other_in_out_stock_order_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`other_in_out_stock_order` 
							WHERE
								( `other_in_out_stock_order`.`type` = 1 ) 
								AND ( `other_in_out_stock_order`.`status` = 1 ) 
								AND ( `other_in_out_stock_order`.`store_id` = '27358' ) 
							AND ( `other_in_out_stock_order`.`tenant_id` = 1 )) `otherInOutOrder` ON `other_in_out_stock_order_item`.`order_id` = otherInOutOrder.id 
						WHERE
							`other_in_out_stock_order_item`.`tenant_id` = 1 
						GROUP BY
							`other_in_out_stock_order_item`.`product_id` 
						) `otherOutOrderItem` ON `inventory`.`product_id` = otherOutOrderItem.productId
						LEFT JOIN (
						SELECT
							SUM( purchase_order_item.quantity - purchase_order_item.instock_quantity ) AS `purchaseRemainQuantity`,
							`purchase_order_item`.`product_id` AS `productId` 
						FROM
							`purchase_order_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`purchase_order` 
							WHERE
								(
								`purchase_order`.`status` IN ( 12000, 13000 )) 
								AND ( `purchase_order`.`store_id` = '27358' ) 
							AND ( `purchase_order`.`tenant_id` = 1 )) `purchaseOrder` ON `purchase_order_item`.`order_id` = purchaseOrder.id 
						WHERE
							`purchase_order_item`.`tenant_id` = 1 
						GROUP BY
							`purchase_order_item`.`product_id` 
						) `purchaseOrderItem` ON `inventory`.`product_id` = purchaseOrderItem.productId
						LEFT JOIN (
						SELECT
							SUM( other_in_out_stock_order_item.quantity ) AS `otherInOutstockQuantity`,
							`other_in_out_stock_order_item`.`product_id` AS `productId` 
						FROM
							`other_in_out_stock_order_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`other_in_out_stock_order` 
							WHERE
								( `other_in_out_stock_order`.`type` = 2 ) 
								AND ( `other_in_out_stock_order`.`status` = 1 ) 
								AND ( `other_in_out_stock_order`.`store_id` = '27358' ) 
							AND ( `other_in_out_stock_order`.`tenant_id` = 1 )) `otherInOutOrder` ON `other_in_out_stock_order_item`.`order_id` = otherInOutOrder.id 
						WHERE
							`other_in_out_stock_order_item`.`tenant_id` = 1 
						GROUP BY
							`other_in_out_stock_order_item`.`product_id` 
						) `otherInOrderItem` ON `inventory`.`product_id` = otherInOrderItem.productId
						LEFT JOIN (
						SELECT
							SUM( online_purchase_order_item.quantity - online_purchase_order_item.instock_quantity ) AS `onlineRemainInstockQuantity`,
							`online_purchase_order_item`.`product_id` AS `productId` 
						FROM
							`online_purchase_order_item`
							INNER JOIN (
							SELECT
								* 
							FROM
								`online_purchase_order` 
							WHERE
								( `online_purchase_order`.`status` = 1 ) 
								AND ( `online_purchase_order`.`store_id` = '27358' ) 
							AND ( `online_purchase_order`.`tenant_id` = 1 )) `onlineOrder` ON `online_purchase_order_item`.`order_id` = onlineOrder.id 
						WHERE
							`online_purchase_order_item`.`tenant_id` = 1 
						GROUP BY
							`online_purchase_order_item`.`product_id` 
						) `onlineInOrderItem` ON `inventory`.`product_id` = onlineInOrderItem.productId
						LEFT JOIN (
						SELECT
							`product_id` AS `productId`,
							`last_price` AS `lastPurchasePrice` 
						FROM
							`purchase_price` 
						WHERE
							( `store_id` = '27358' ) 
						AND ( `purchase_price`.`tenant_id` = 1 )) `lastPurchasePrice` ON `inventory`.`product_id` = lastPurchasePrice.productId 
					WHERE
						( `product`.`status` != 90 ) 
						AND ( `inventory`.`store_id` = '27358' ) 
					AND ( `inventory`.`tenant_id` = 1 )) `table` 
				WHERE
					`table`.`tenant_id` = 1 
				ORDER BY
				`createTime` DESC 
	LIMIT 10

上一份工作三年,在纬创软件(外包公司),满打满算给 10k 左右。现在辞职了,面了润和,他们给到 19k 。工资真的比较心动。也有面过自研的单位,但是项目又不太好,这两天又陆续推了两家 offer 。真的不知道该怎么弄,是要继续面试么,还是就选中润和,感觉也没公司会给的比他多,而且确实涨幅太大了, 有些公司不接受。


17 年购入的 iPhone 8 Plus,到目前为止使用三年多,除了电池周期性损耗之外没有出现任何问题。 10 月份换了官方电池,感觉满血复活了。 平时不打游戏也不怎么看视频,资料存云盘,64g 储存量日常占用使用一半左右,完全够用。 感觉可以一直用下去。

?

Join [email protected] to automatically receive all group messages.