| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.AppUserShop; |
| | | import com.ruoyi.account.api.model.UserAddress; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.order.enums.OrderStatus; |
| | | import com.ruoyi.order.enums.OrderType; |
| | | import com.ruoyi.order.mapper.OrderGoodMapper; |
| | | import com.ruoyi.order.mapper.OrderMapper; |
| | | import com.ruoyi.order.service.OrderService; |
| | | import com.ruoyi.order.vo.OrderDetailVO; |
| | | import com.ruoyi.order.vo.OrderGoodsVO; |
| | | import vo.OrderDetailVO; |
| | | import vo.OrderGoodsVO; |
| | | import com.ruoyi.order.vo.OrderVO; |
| | | import com.ruoyi.other.api.domain.CouponInfo; |
| | | import com.ruoyi.other.api.domain.Goods; |
| | | import com.ruoyi.other.api.domain.OrderActivityInfo; |
| | | import com.ruoyi.other.api.domain.Technician; |
| | | import com.ruoyi.other.api.feignClient.TechnicianClient; |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import model.Order; |
| | | import model.OrderGood; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService { |
| | | @Resource |
| | | private OrderMapper orderMapper; |
| | | @Resource |
| | | private OrderGoodMapper orderGoodMapper; |
| | | @Resource |
| | | private AppUserClient appUserClient; |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @Resource |
| | | private TechnicianClient technicianClient; |
| | | |
| | | |
| | | @Override |
| | | public List<OrderVO> selectOrderListByUserId(Integer status, Long userId) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean check(String orderNumber, Long shopId) { |
| | | Order order = getOne(new LambdaQueryWrapper<Order>() |
| | | .eq(Order::getOrderNumber, orderNumber) |
| | | .eq(Order::getShopId, shopId)); |
| | | return order != null; |
| | | public boolean check(Order order, Integer shopId, Long userId) { |
| | | R<List<AppUserShop>> r = appUserClient.getAppUserShop(userId); |
| | | if (r.getCode() != R.SUCCESS){ |
| | | throw new ServiceException("获取用户门店信息失败"); |
| | | } |
| | | List<AppUserShop> appUserShopList = r.getData(); |
| | | if (appUserShopList == null || appUserShopList.isEmpty()){ |
| | | return false; |
| | | } |
| | | |
| | | // 判断用户是否拥有该门店 |
| | | List<AppUserShop> userShopList = appUserShopList.stream() |
| | | .filter(appUserShop -> appUserShop.getShopId().equals(shopId)) |
| | | .collect(Collectors.toList()); |
| | | if (userShopList.isEmpty()){ |
| | | return false; |
| | | } |
| | | |
| | | // 判断订单是否属于该门店 |
| | | if (order == null){ |
| | | throw new ServiceException("订单不存在"); |
| | | } |
| | | |
| | | return order.getShopId().equals(shopId); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void writeOff(String code,Integer shopId) { |
| | | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); |
| | | Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>() |
| | | .eq(Order::getOrderNumber, code)); |
| | | boolean check = check(order, shopId, loginUserApplet.getUserid()); |
| | | if (!check){ |
| | | throw new ServiceException("订单不存在"); |
| | | } |
| | | order.setOrderStatus(OrderStatus.COMPLETED.getCode()); |
| | | orderMapper.updateById(order); |
| | | Integer orderType = order.getOrderType(); |
| | | if (orderType.equals(OrderType.SERVICE.getCode())){ |
| | | R<Technician> shopdetail = technicianClient.shopdetail(order.getTechnicianId()); |
| | | if (shopdetail.getCode() != R.SUCCESS){ |
| | | throw new ServiceException("获取技师信息失败"); |
| | | } |
| | | Technician technician = shopdetail.getData(); |
| | | R<Void> r = technicianClient.updateStatus(2, technician.getId()); |
| | | if (r.getCode() != R.SUCCESS){ |
| | | throw new ServiceException("修改技师状态失败"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void commission(Long orderId) { |
| | | |
| | | } |
| | | } |