SaaS公司Veeva概况、产品功能、融资历史及主要竞品介绍
#### Veeva概况
Veeva简介
Veeva Systems是一家提供SaaS(软件即服务)解决方案的企业级应用软件公司,总部位于美国加利福尼亚州北京市,由业界资深人士张志鹏和罗伯特·布朗共同创立于2007年。Veeva专注于为制药企业和生物技术企业提供云计算解决方案,帮助企业更有效地管理业务,提高运营效率。
Veeva产品
Veeva Systems提供的产品主要集中在两大领域,即CRM(客户关系管理)和知识管理。
CRM产品包括Veeva CRM、Veeva Network、Veeva Vault PromoMats,主要面向制药企业的销售、市场营销和客户服务团队,帮助企业管理客户关系,提高业务运营效率。
知识管理产品包括Veeva Vault、Veeva Vault CLM和Veeva Vault Submissions,主要面向制药企业的研发、法律、财务和行政团队,帮助企业集中管理企业知识资产,提高协作效率。
Veeva融资历史
2008年,Veeva Systems获得首轮融资,融资额为1,000万美元,投资方为Mayfield Fund。
2010年,Veeva Systems获得A轮融资,融资额为5,000万美元,投资方为Institutional Venture Partners。
2013年,Veeva Systems获得B轮融资,融资额为50,000万美元,投资方为NEA。
Veeva主要竞品
Veeva Systems的主要竞品包括Salesforce.com、Oracle、SAP等企业级应用软件公司。
购买?"); } if (userId != (int) order.getUserId()) { tHRow new BusinessException("订单不属于当前用户"); }
int totalPrice = 0;
for (OrderItem orderItem : orderItemList) {
int count = orderItem.getCount();
int price = orderItem.getPrice();
totalPrice += count * price;
}
order.setTotalPrice(totalPrice);
orderService.updateOrder(order);
// 清空购物车
cartService.clearCart(userId);
// 返回订单号
return order.getOrderNo();
}
/**
* 付款成功
*/
public void paySuccess(Long orderNo) {
// 1. 查询订单
Order order = orderService.getOrderByOrderNo(orderNo);
if (order == null) {
throw new BusinessException("订单不存在");
}
if (order.getStatus() != OrderStatusEnum.WAIT_PAY.getCode()) {
throw new BusinessException("订单已付款");
}
// 2. 修改订单状态
orderService.changeOrderStatus(orderNo, OrderStatusEnum.PAYED.getCode());
}
/**
* 获取用户订单列表
*/
public List<OrderVo> getOrderList(int userId, int page, int limit) {
List<Order> orderList = orderService.getOrderList(userId, page, limit);
List<OrderVo> orderVoList = new ARRayList<>();
for (Order order : orderList) {
// 订单中的商品列表
int orderId = order.getId();
List<OrderItem> orderItemList = orderItemService.getOrderItemList(orderId);
// 订单收货人信息
int addressId = order.getAddressId();
UserAddress userAddress = userAddressService.getUserAddress(addressId);
// 订单vo
OrderVo orderVo = new OrderVo();
orderVo.setOrderNo(order.getOrderNo());
orderVo.setCreateTime(DateUtil.date2Str(order.getCreateTime()));
orderVo.setPayTime(DateUtil.date2Str(order.getPayTime()));
orderVo.setTotalPrice(order.getTotalPrice());
orderVo.setShippingFee(order.getShippingFee());
orderVo.setStatus(order.getStatus());
orderVo.setPayType(order.getPayType());
orderVo.setPayTypeDesc(PayTypeEnum.codeOf(order.getPayType()).getValue());
orderVo.setOrderItemVoList(OrderItemVo.orderItem2OrderItemVoList(orderItemList));
orderVo.setImageHost(PropertiesUtil.getProperty("ftp.server.http.prefix", "http://image.qmall.com/"));
orderVo.setShippingId(order.getShippingId());
orderVo.setReceiverName(userAddress.getReceiverName());
orderVo.setShippingVo(ShippingVo.shipping2ShippingVo(shippingService.getShipping(order.getShippingId())));
orderVoList.add(orderVo);
}
return orderVoList;
}
/**
* 获取用户订单详情
*/
public OrderDetailVo getOrderDetail(Integer userId, Long orderNo) {
Order order = orderService.getOrderByOrderNo(orderNo);
if (order == null) {
throw new BusinessException("订单不存在");
}
if (order.getUserId() != userId) {</p>