package com.example.service; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.json.JSONUtil; import com.example.common.enums.OrderStatusDELIVERY; import com.example.common.enums.OrderStatusToShop; import com.example.common.enums.OrderType; import com.example.common.enums.ResultCodeEnum; import com.example.entity.Account; import com.example.entity.Orders; import com.example.entity.Product; import com.example.entity.User; import com.example.exception.CustomException; import com.example.mapper.OrdersMapper; import com.example.mapper.ProductMapper; import com.example.mapper.UserMapper; import com.example.utils.TokenUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import javax.annotation.Resource; import com.github.pagehelper.util.StringUtil; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; /** * 订单表业务处理 **/ @Service public class OrdersService { @Resource private OrdersMapper ordersMapper; @Resource private UserMapper userMapper; @Resource private ProductMapper productMapper; static final Integer costTime = 1200; //1200s 20分支 public Integer getNumsWithShopId(Integer shopId){ return ordersMapper.getUnfinishedNums(shopId); } /** * 小程序下单新增,点击下单 */ public Orders add(Orders orders) { // Account currentUser = TokenUtils.getCurrentUser(); // if(currentUser== null){ // currentUser = new User(); // currentUser.setId(orders.getUserId()); // } // User user = userMapper.selectById(currentUser.getId()); // BigDecimal account = user.getAccount(); // 获取余额 // BigDecimal cost = new BigDecimal(0),t_cost; //记录花费了多少钱 // // // 扣除钱包余额 // if(account.doubleValue() < cost.doubleValue()){ // throw new CustomException(ResultCodeEnum.ACCOUNT_LIMIT_ERROR); // } // user.setAccount(account.subtract(cost)); // userMapper.updateById(user); //更新扣费 orders.setOrderState("待送达"); // orders.setUserId(currentUser.getId()); // 设置用户id orders.setTransCode(IdUtil.getSnowflakeNextIdStr()); // 随机创建一个交易单号 orders.setTimeOrder(DateUtil.now()); // 创建订单时间 // 如果是外卖:这个是预计送达时间 ,如果是自提 这个是预计可取餐时间 orders.setTimePre(String.valueOf(DateUtil.offsetSecond(DateUtil.dateSecond(),11))); //预计送达时间 ordersMapper.insert(orders); Orders resOrders = ordersMapper.selectById(orders.getId()); return resOrders; //this.setCache(orders.getId()); // 设置缓存 但是这里插入前是没有orders的id的应该怎么处理 } /** * 删除 */ public void deleteById(Integer id) { ordersMapper.deleteById(id); } /** * 批量删除 */ public void deleteBatch(List ids) { for (Integer id : ids) { ordersMapper.deleteById(id); } } /** * 修改 */ public void updateById(Orders orders) { ordersMapper.updateById(orders); } /** * 根据ID查询 */ public Orders selectById(Integer id) { return ordersMapper.selectById(id); } /** * 查询所有 */ public List selectAll(Orders orders) { return ordersMapper.selectAll(orders); } /** * 分页查询 */ public PageInfo selectPage(Orders orders, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List list = ordersMapper.selectAll(orders); return PageInfo.of(list); } }