提交 d386f12a authored 作者: Whispa's avatar Whispa

Merge remote-tracking branch 'origin/master'

package com.example.afrishop_v3.controllers;
import org.springframework.web.bind.annotation.RestController;
/**
* @Auther: wudepeng
* @Date: 2020/11/30
* @Description:
*/
@RestController
public class ActivityController {
}
......@@ -137,19 +137,19 @@ public class CartController extends Controller {
return new Result();
}
@GetMapping("/changeCartStatus/{cartId}/{status}")
public Result changeCartStatus(@PathVariable("cartId") String cartId,
@PutMapping("/changeCartStatus/{status}")
public Result changeCartStatus(@RequestBody String[] cartIds,
@PathVariable("status") Integer status) {
if (StringUtils.isBlank(cartId) || status == null) {
if (cartIds == null || status == null) {
return new Result(ResultCodeEnum.SERVICE_ERROR.getCode(),
"The parameter cannot be null");
}
Optional<TbCfCartRecordR> byId = repository.findById(cartId);
if (byId.isPresent()) {
TbCfCartRecordR cart = byId.get();
List<TbCfCartRecordR> cartList = repository.findAllByCartRecordIdIn(cartIds);
cartList.forEach(cart -> {
cart.setCheckFlag(status);
repository.save(cart);
}
});
return new Result();
}
......
......@@ -66,28 +66,28 @@ public class CouponController {
return new Result(ResultCodeEnum.ERROR.getCode(), "The coupon has been snapped up");
}
/**
* 查询用户未使用的优惠券,可用的排在顶部
*/
@GetMapping("/selectCoupon")
public Result queryUserAvailableCoupons(@RequestParam("orderPrice") BigDecimal orderPrice) {
Map<String, Object> couponMap = new HashMap<>();
//可使用的优惠券
LinkedList<TbCfToicoupon> availableCoupon = new LinkedList();
//不可使用的优惠券
LinkedList<TbCfToicoupon> unAvailableCoupon = new LinkedList();
List<TbCfToicoupon> couponList = repository.queryUserAvailableCoupon(user.userId());
couponList.forEach(coupon -> {
boolean available = orderPrice.compareTo(coupon.withAmount()) >= 0;
if (available) {
availableCoupon.add(coupon);
} else {
unAvailableCoupon.add(coupon);
}
});
couponMap.put("availableCoupon", availableCoupon);
couponMap.put("unAvailableCoupon", unAvailableCoupon);
return new Result(couponMap);
}
// /**
// * 查询用户未使用的优惠券,可用的排在顶部
// */
// @GetMapping("/selectCoupon")
// public Result queryUserAvailableCoupons(@RequestParam("orderPrice") BigDecimal orderPrice) {
// Map<String, Object> couponMap = new HashMap<>();
// //可使用的优惠券
// LinkedList<TbCfToicoupon> availableCoupon = new LinkedList();
// //不可使用的优惠券
// LinkedList<TbCfToicoupon> unAvailableCoupon = new LinkedList();
// List<TbCfToicoupon> couponList = repository.queryUserAvailableCoupon(user.userId());
// couponList.forEach(coupon -> {
// boolean available = orderPrice.compareTo(coupon.withAmount()) >= 0;
// if (available) {
// availableCoupon.add(coupon);
// } else {
// unAvailableCoupon.add(coupon);
// }
// });
// couponMap.put("availableCoupon", availableCoupon);
// couponMap.put("unAvailableCoupon", unAvailableCoupon);
//
// return new Result(couponMap);
// }
}
......@@ -35,6 +35,7 @@ import static org.springframework.data.domain.Sort.Order.desc;
@RestController
@RequestMapping("/order")
public class OrderController extends Controller {
private final TbCfToicouponRepository couponRepository;
private final TbCfOrderRepository repository;
private final TbCfCartRecordRRepository cartRepository;
private final TbCfAddressRepository addressRepository;
......@@ -47,7 +48,8 @@ public class OrderController extends Controller {
private final AuthenticationUser user;
private static Logger logger = LoggerFactory.getLogger(OrderController.class);
public OrderController(TbCfOrderRepository repository, TbCfCartRecordRRepository cartRepository, TbCfAddressRepository addressRepository, TbCfToicouponRepository toicouponRepository, TbCfStationItemRepository itemRepository, TbCfItemSkuRepository itemSkuRepository, TbCfItemCommentRepository commentRepository, TbCfExpressTemplateRepository templateRepository, @Qualifier("tbCfExchangeRepository") TbCfExchangeRepository exchangeRepository, AuthenticationUser user) {
public OrderController(TbCfToicouponRepository couponRepository, TbCfOrderRepository repository, TbCfCartRecordRRepository cartRepository, TbCfAddressRepository addressRepository, TbCfToicouponRepository toicouponRepository, TbCfStationItemRepository itemRepository, TbCfItemSkuRepository itemSkuRepository, TbCfItemCommentRepository commentRepository, TbCfExpressTemplateRepository templateRepository, @Qualifier("tbCfExchangeRepository") TbCfExchangeRepository exchangeRepository, AuthenticationUser user) {
this.couponRepository = couponRepository;
this.repository = repository;
this.cartRepository = cartRepository;
this.addressRepository = addressRepository;
......@@ -60,7 +62,7 @@ public class OrderController extends Controller {
this.user = user;
}
private TbCfCartRecordR getCart(TbCfStationItem item, String itemSku, Integer itemNum, BigDecimal price,String itemSkuId,String image) {
private TbCfCartRecordR getCart(TbCfStationItem item, String itemSku, Integer itemNum, BigDecimal price, String itemSkuId, String image) {
TbCfCartRecordR record = new TbCfCartRecordR();
......@@ -73,7 +75,7 @@ public class OrderController extends Controller {
record.setTemplate(item.getExpress());
record.setItemTitle(item.getItemName());
record.setItemPrice(price);
record.setItemImg( image == null ? item.catchSingleImage() : image );
record.setItemImg(image == null ? item.catchSingleImage() : image);
return record;
}
......@@ -99,6 +101,7 @@ public class OrderController extends Controller {
@RequestParam(value = "toitableId", required = false) String toitableId) {
TbCfOrder order = new TbCfOrder();
Optional<TbCfExpressTemplate> templateOptional = templateRepository.findFirstByIsDefault(1);
templateOptional.ifPresent(order::setDefaultTemplate);
......@@ -119,10 +122,11 @@ public class OrderController extends Controller {
TbCfStationItem item = byId.get();
List<TbCfCartRecordR> list = new ArrayList<>();
TbCfItemSkus itemSkus = skuOptional.get();
list.add(getCart(item, itemSku, itemNum, itemSkus.getSkuPrice(),itemSkuId,itemSkus.getSkuImg()));
BigDecimal orderPrice = itemSkus.getSkuPrice().multiply(new BigDecimal(itemNum));
Map<String, Object> map = queryUserAvailableCoupons(orderPrice);
list.add(getCart(item, itemSku, itemNum, itemSkus.getSkuPrice(), itemSkuId, itemSkus.getSkuImg()));
order.setCouponId(toitableId);
if (toitableId != null && !toitableId.isEmpty()) {
......@@ -135,7 +139,7 @@ public class OrderController extends Controller {
}
}
order.setCouponMap(map);
order.getItemOrderListFromCartList(list, itemRepository);
return new Result<>(order);
......@@ -145,13 +149,19 @@ public class OrderController extends Controller {
public Result<TbCfOrder> settleAccount(@RequestBody String[] ids, @RequestParam(value = "toitableId", required = false) String toitableId) {
//String userId = user.userId();
List<TbCfCartRecordR> allByUserId = cartRepository.findAllByCartRecordIdIn(ids);
BigDecimal orderPrice = BigDecimal.ZERO;
for (TbCfCartRecordR cart : allByUserId) {
orderPrice = orderPrice.add(cart.getItemPrice().multiply(new BigDecimal(cart.getItemNum())));
}
Map<String, Object> couponMap = queryUserAvailableCoupons(orderPrice);
if (allByUserId.isEmpty()) {
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(), "There are no items in the shopping cart");
}
TbCfOrder order = new TbCfOrder();
order.setCouponMap(couponMap);
Optional<TbCfExpressTemplate> templateOptional = templateRepository.findFirstByIsDefault(1);
templateOptional.ifPresent(order::setDefaultTemplate);
......@@ -208,6 +218,7 @@ public class OrderController extends Controller {
boolean payNow = !noPayNow;
// BigDecimal orderPrice=BigDecimal.ZERO;
if (payNow) {
Optional<TbCfStationItem> byId = itemRepository.findById(itemId);
......@@ -229,8 +240,8 @@ public class OrderController extends Controller {
// }
TbCfItemSkus skuObj = skuOptional.get();
allByUserId.add(getCart(stationItem, itemSku, itemNum, skuObj.getSkuPrice(),itemSkuId,skuObj.getSkuImg()));
// orderPrice=skuObj.getSkuPrice().multiply(new BigDecimal(itemNum));
allByUserId.add(getCart(stationItem, itemSku, itemNum, skuObj.getSkuPrice(), itemSkuId, skuObj.getSkuImg()));
} else {
System.out.println(Arrays.toString(tbCfOrder.getIds()));
......@@ -242,8 +253,12 @@ public class OrderController extends Controller {
// if (!success) {
// return new Result<>(v_code, "Goods in short stock!");
// }
// }
// for (TbCfCartRecordR cart : allByUserId) {
// orderPrice = orderPrice.add(cart.getItemPrice().multiply(new BigDecimal(cart.getItemNum())));
// }
}
// Map<String, Object> map = queryUserAvailableCoupons(orderPrice);
String addressId = tbCfOrder.getDeliveryAddressId();
......@@ -260,7 +275,7 @@ public class OrderController extends Controller {
TbCfOrder order = new TbCfOrder();
// order.setCouponMap(map);
order.setUserName(user.display());
TbCfAddress address = addressOptional.get();
......@@ -305,7 +320,6 @@ public class OrderController extends Controller {
TbCfOrder save = repository.save(order);
if (tbCfToicoupon != null) {
tbCfToicoupon.setEnableFlag(0);
toicouponRepository.save(tbCfToicoupon);
......@@ -317,10 +331,10 @@ public class OrderController extends Controller {
String[] strings = collect.toArray(new String[]{});
if(payNow){
cartRepository.updateItemQuantity_(itemId,itemNum);
cartRepository.updateSkuQuantity_(itemSkuId,itemNum);
}else {
if (payNow) {
cartRepository.updateItemQuantity_(itemId, itemNum);
cartRepository.updateSkuQuantity_(itemSkuId, itemNum);
} else {
cartRepository.updateSkuQuantity(strings);
cartRepository.updateItemQuantity(strings);
}
......@@ -365,10 +379,10 @@ public class OrderController extends Controller {
Page<OrderCount> list;
PageRequest of = PageRequest.of(pageNum, pageSize, sort(sort));
String userId = user.getUserId();
if(orderStatus != null){
list = repository.findAllByUserIdWithStatus(userId,user,orderStatus,of);
}else
list = repository.findAllByUserId(userId, user, of);
if (orderStatus != null) {
list = repository.findAllByUserIdWithStatus(userId, user, orderStatus, of);
} else
list = repository.findAllByUserId(userId, user, of);
list.forEach(v -> v.getOrder().setCommentCount(v.getCommented()));
Page<TbCfOrder> map = list.map(OrderCount::getOrder);
......@@ -472,8 +486,8 @@ public class OrderController extends Controller {
String minutes = "160";
Date current = new Date();
if( !optionalTbCfOrder.isPresent() ){
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order not found");
if (!optionalTbCfOrder.isPresent()) {
return new Result<>(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order not found");
}
TbCfOrder tbCfOrder = optionalTbCfOrder.get();
......@@ -483,13 +497,13 @@ public class OrderController extends Controller {
Calendar instance = Calendar.getInstance();
instance.setTime(orderTime);
instance.add(Calendar.DATE,1);
instance.add(Calendar.DATE, 1);
long time = instance.getTime().getTime();
long difference = time - current.getTime();
if( difference > 0 ) {
if (difference > 0) {
Duration duration = Duration.ofMillis(difference);
......@@ -506,4 +520,25 @@ public class OrderController extends Controller {
return new Result<>(tbCfOrder, "Order found !");
}
public Map<String, Object> queryUserAvailableCoupons(BigDecimal orderPrice) {
Map<String, Object> couponMap = new HashMap<>();
//可使用的优惠券
LinkedList<TbCfToicoupon> availableCoupon = new LinkedList();
//不可使用的优惠券
LinkedList<TbCfToicoupon> unAvailableCoupon = new LinkedList();
List<TbCfToicoupon> couponList = couponRepository.queryUserAvailableCoupon(user.userId());
couponList.forEach(coupon -> {
boolean available = orderPrice.compareTo(coupon.withAmount()) >= 0;
if (available) {
availableCoupon.add(coupon);
} else {
unAvailableCoupon.add(coupon);
}
});
couponMap.put("availableCoupon", availableCoupon);
couponMap.put("unAvailableCoupon", unAvailableCoupon);
return couponMap;
}
}
......@@ -155,7 +155,18 @@ public class TbCfOrder {
*/
private String remarkInfo;
// @JsonIgnore
@Transient
private Map<String,Object> couponMap;
public Map<String, Object> getCouponMap() {
return couponMap;
}
public void setCouponMap(Map<String, Object> couponMap) {
this.couponMap = couponMap;
}
// @JsonIgnore
// @JoinColumn(columnDefinition = "user_id",name = "user_id")
// @ManyToOne(fetch = FetchType.LAZY)
// private TbCfUserInfo userInfo;
......
......@@ -23,6 +23,8 @@ public interface TbCfCartRecordRRepository extends PagingAndSortingRepository<Tb
List<TbCfCartRecordR> findAllByCartRecordIdIn(String[] ids);
@Modifying
@Transactional
void deleteAllByCartRecordIdIn(String[] ids);
@Modifying
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论