再来一单功能开发

master
hahameng 5 months ago
parent 02323f9912
commit 201853a62d

@ -88,4 +88,16 @@ public class OrderController {
orderService.cancel(id);
return Result.success();
}
/**
*
* @param id
* @return
*/
@PostMapping("/repetition/{id}")
public Result repetition(@PathVariable Long id){
orderService.repetition(id);
return Result.success();
}
}

@ -41,4 +41,11 @@ public interface ShoppingCartMapper {
*/
@Delete("delete from shopping_cart where user_id = #{uerId}")
void deleteByUserId(Long userId);
/**
*
*
* @param shoppingCartList
*/
void insertBatch(List<ShoppingCart> shoppingCartList);
}

@ -51,4 +51,10 @@ public interface OrderService {
* @param id
*/
void cancel(Long id) throws Exception;
/**
*
* @param id
*/
void repetition(Long id);
}

@ -30,6 +30,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@ -268,4 +269,30 @@ public class OrderServiceImpl implements OrderService {
ordersUpdate.setCancelTime(LocalDateTime.now());
orderMapper.update(ordersUpdate);
}
/**
*
* @param id
*/
public void repetition(Long id) {
// 根据订单id查询当前订单详情
List<OrderDetail> orderDetailList = orderDetailMapper.getByOrderId(id);
// 查询当前用户id
Long userId = BaseContext.getCurrentId();
List<ShoppingCart> shoppingCartList = orderDetailList.stream().map(orderDetail -> {
ShoppingCart shoppingCart = new ShoppingCart();
// 将原订单详情里面的菜品信息重新复制到购物车对象中
BeanUtils.copyProperties(orderDetail, shoppingCart);
shoppingCart.setUserId(userId);
shoppingCart.setCreateTime(LocalDateTime.now());
return shoppingCart;
}).collect(Collectors.toList());
//将购物车对象批量添加到数据库
shoppingCartMapper.insertBatch(shoppingCartList);
}
}

@ -2,6 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.ShoppingCartMapper">
<insert id="insertBatch">
insert into shopping_cart (name, image, user_id
, dish_id, setmeal_id, dish_flavor, number, amount, create_time)
values
<foreach collection="shoppingCartList" item="sc" separator=",">
(#{sc.name},#{sc.image},#{sc.userId},#{sc.dishId}
,#{sc.setmealId},#{sc.dishFlavor},#{sc.number},#{sc.amount},
#{sc.createTime})
</foreach>
</insert>
<select id="list" resultType="com.sky.entity.ShoppingCart">

Loading…
Cancel
Save