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

修改购物车逻辑

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