提交 c53e0533 authored 作者: 吴德鹏's avatar 吴德鹏

修改购物车逻辑

上级 c5be25b4
......@@ -143,9 +143,9 @@ public class CartController extends Controller {
String itemId = itemDetail.getItemId();
boolean hasItemId = itemId != null && !itemId.isEmpty();
if (hasItemId) {
optionalItem = repository.findFirstByUserIdAndItemImgAndItemSku(userId, itemDetail.getItemImg(), itemDetail.getItemSku());
optionalItem = repository.findFirstByUserIdAndItemImgAndItemSkuAndEnableFlag(userId, itemDetail.getItemImg(), itemDetail.getItemSku(),1);
} else {
optionalItem = repository.findFirstByUserIdAndSourceItemIdAndItemSku(userId, itemDetail.getSourceItemId(), itemDetail.getItemSku());
optionalItem = repository.findFirstByUserIdAndSourceItemIdAndItemSkuAndEnableFlag(userId, itemDetail.getSourceItemId(), itemDetail.getItemSku(),1);
}
TbCfCartRecordR detail;
......@@ -163,7 +163,7 @@ public class CartController extends Controller {
}
// Check if the item exist in cart
Optional<TbCfCartRecordR> cartOptional = repository.findFirstByUserIdAndItemIdAndItemSku(userId, itemId, itemDetail.getItemSku());
Optional<TbCfCartRecordR> cartOptional = repository.findFirstByUserIdAndItemIdAndItemSkuAndEnableFlag(userId, itemId, itemDetail.getItemSku(),1);
Integer flag = itemDetail.getCheckFlag() != null ? itemDetail.getCheckFlag() : StateConstant.VALID;
if (cartOptional.isPresent()) {
......@@ -220,7 +220,7 @@ public class CartController extends Controller {
@DeleteMapping("/delete")
public Result deleteItems(@RequestBody String[] ids) {
if (ids != null) {
repository.deleteAllByCartRecordIdIn(ids);
repository.updateCartCheckFlag(ids);
return new Result();
}
return new Result(ResultCodeEnum.SERVICE_ERROR.getCode(),
......@@ -229,7 +229,7 @@ public class CartController extends Controller {
//Insert
private void insertRecord(TbCfCartRecordR itemDetail, String userId, Integer checkFlag, Integer index) {
//日期处理:因为批量加入购物车时日期都是相同的,所以需要加入索引,确保每个时间不相同,才能按时间降序排列
//日期处理:因为批量加入购物车时日期都是相同的,所以需要加入索引,确保每个时间不相同,才能按时间降序排列(未登录)
String now = DateUtil.now();
if (index == null) index = 0;
DateTime dateTime = DateUtil.offsetSecond(DateUtil.parse(now), index);
......
......@@ -448,7 +448,7 @@ public class OrderController extends Controller {
cartRepository.updateSkuQuantity(strings);
cartRepository.updateItemQuantity(strings);
}
cartRepository.deleteAllByCartRecordIdIn(strings);
cartRepository.updateCartCheckFlag(strings);
// implementation of coupon use
......
......@@ -20,7 +20,7 @@ import java.util.Date;
@Entity
@Table(name = "tb_cf_cart_record_r")
@Data
@Where(clause = "enable_flag=1")
//@Where(clause = "enable_flag=1")
public class TbCfCartRecordR {
/**
......
......@@ -13,18 +13,23 @@ import java.util.Optional;
public interface TbCfCartRecordRRepository extends PagingAndSortingRepository<TbCfCartRecordR, String> {
int countByUserId(String userId);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemIdAndItemSku(String userId, String itemId, String itemSku);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemIdAndItemSkuAndEnableFlag(String userId, String itemId, String itemSku, Integer flag);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemImgAndItemSku(String userId, String itemImg, String itemSku);
Optional<TbCfCartRecordR> findFirstByUserIdAndItemImgAndItemSkuAndEnableFlag(String userId, String itemImg, String itemSku, Integer flag);
Optional<TbCfCartRecordR> findFirstByUserIdAndSourceItemIdAndItemSku(String userId, String sourceItemId, String itemSku);
Optional<TbCfCartRecordR> findFirstByUserIdAndSourceItemIdAndItemSkuAndEnableFlag(String userId, String sourceItemId, String itemSku, Integer flag);
@Query(value = "select a from #{#entityName} a left join TbCfStationItem x on a.itemId=x.itemId WHERE a.userId=:userId and (x.enableFlag = 1 or x.enableFlag IS NULL) order by a.createTime desc")
@Query(value = "select a from #{#entityName} a left join TbCfStationItem x on a.itemId=x.itemId WHERE a.userId=:userId and (x.enableFlag = 1 or x.enableFlag IS NULL) and a.enableFlag=1 order by a.createTime desc")
List<TbCfCartRecordR> findAllByUserIdOrderByCreateTimeDesc(@Param("userId") String userId);
List<TbCfCartRecordR> findAllByCartRecordIdIn(String[] ids);
@Modifying
@Transactional
@Query(value = "update tb_cf_cart_record_r set enable_flag=0 where cart_record_id in :ids", nativeQuery = true)
void updateCartCheckFlag(@Param("ids") String[] ids);
@Modifying
@Transactional
void deleteAllByCartRecordIdIn(String[] ids);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论