提交 43eb791c authored 作者: Whispa's avatar Whispa

commit

上级 bca37b2b
......@@ -6,6 +6,7 @@ import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.TbCfCartRecordR;
import com.example.afrishop_v3.models.TbCfExpressTemplate;
import com.example.afrishop_v3.models.TbCfStationItem;
import com.example.afrishop_v3.models.TbCfUserInfo;
import com.example.afrishop_v3.repository.TbCfCartRecordRRepository;
import com.example.afrishop_v3.repository.TbCfExpressTemplateRepository;
import com.example.afrishop_v3.repository.TbCfStationItemRepository;
......@@ -53,7 +54,9 @@ public class CartController extends Controller {
@PostMapping
public Result addToCart(@RequestBody TbCfCartRecordR itemDetail) {
String userId = this.user.userId();
TbCfUserInfo user = this.user.user();
String userId = user.getUserId();
if (itemDetail == null) {
return new Result(ResultCodeEnum.SERVICE_ERROR.getCode(), "Request body is empty");
......@@ -107,6 +110,13 @@ public class CartController extends Controller {
insertRecord(itemDetail, userId);
}
if( user.hasFcm() ){
int i = repository.countByUserId(userId);
sendNotification(user.getFcm(),"Cart updates","Item added to cart, "+i+" item(s) are pending, continue with order");
}
return new Result();
}
......
package com.example.afrishop_v3.controllers;
import com.example.afrishop_v3.base.Result;
import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.TbCfToicoupon;
import com.example.afrishop_v3.repository.TbCfCouponRepository;
import com.example.afrishop_v3.repository.TbCfToicouponRepository;
......@@ -27,23 +26,17 @@ public class CouponController {
@GetMapping
public Result getUserCoupons(){
try {
String userId = user.userId();
List<TbCfToicoupon> availableCoupons = repository.queryUserAvailableCoupon(userId);
List<TbCfToicoupon> expiredCoupons = repository.queryUserExpiredCoupon(userId);
List<TbCfToicoupon> usedCoupons = repository.queryUserUsedCoupon(userId);
String userId = user.userId();
List<TbCfToicoupon> availableCoupons = repository.queryUserAvailableCoupon(userId);
List<TbCfToicoupon> expiredCoupons = repository.queryUserExpiredCoupon(userId);
List<TbCfToicoupon> usedCoupons = repository.queryUserUsedCoupon(userId);
LinkedHashMap<String, Object> hashMap = new LinkedHashMap<>();
LinkedHashMap<String, Object> hashMap = new LinkedHashMap<>();
hashMap.put("validCouponList",availableCoupons);
hashMap.put("usedCouponList",usedCoupons);
hashMap.put("expiredCouponList",expiredCoupons);
hashMap.put("validCouponList",availableCoupons);
hashMap.put("usedCouponList",usedCoupons);
hashMap.put("expiredCouponList",expiredCoupons);
return new Result<>(hashMap);
}catch (Exception e){
System.out.println(e.getMessage());
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),e.getMessage());
}
return new Result<>(hashMap);
}
}
......@@ -8,8 +8,10 @@ import com.example.afrishop_v3.enums.OrderStatusEnum;
import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.TbCfFinance;
import com.example.afrishop_v3.models.TbCfOrder;
import com.example.afrishop_v3.models.TbCfUserInfo;
import com.example.afrishop_v3.repository.TbCfFinanceRepository;
import com.example.afrishop_v3.repository.TbCfOrderRepository;
import com.example.afrishop_v3.security.services.AuthenticationUser;
import com.example.afrishop_v3.util.DataUtils;
import com.example.afrishop_v3.util.HttpsUtil;
import com.example.afrishop_v3.util.IdUtil;
......@@ -30,15 +32,17 @@ import java.util.Optional;
@RestController
@RequestMapping("/dpo")
public class DpoPayController {
public class DpoPayController extends Controller {
private static Logger logger = LoggerFactory.getLogger(DpoPayController.class);
private final TbCfOrderRepository repository;
private final TbCfFinanceRepository financeRepository;
private final AuthenticationUser user;
public DpoPayController(TbCfOrderRepository repository, TbCfFinanceRepository financeRepository) {
public DpoPayController(TbCfOrderRepository repository, TbCfFinanceRepository financeRepository, AuthenticationUser user) {
this.repository = repository;
this.financeRepository = financeRepository;
this.user = user;
}
......@@ -103,6 +107,10 @@ public class DpoPayController {
String resCode = api3G.getString("Result");
//校验交易状态码
if (DpoConfig.SUCCESS_CODE.equals(resCode)) {
TbCfUserInfo user = this.user.user();
if( user.hasFcm() ){
sendNotification(user.getFcm(), "Order alert !!", "Order of $" + order.getRealityPay() + " has been successfully paid !!");
}
//获取缓存中的订单
// TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + orderId);
// //如果缓存中没有订单,则从数据库中查找
......
......@@ -13,6 +13,7 @@ import com.example.afrishop_v3.models.*;
import com.example.afrishop_v3.repository.TbCfFinanceRepository;
import com.example.afrishop_v3.repository.TbCfOrderRepository;
import com.example.afrishop_v3.repository.UserRepository;
import com.example.afrishop_v3.security.services.AuthenticationUser;
import com.example.afrishop_v3.util.HttpClientUtil;
import com.example.afrishop_v3.util.IdUtil;
import org.json.JSONObject;
......@@ -27,12 +28,13 @@ import java.util.*;
@RestController
@RequestMapping("/flutterwave")
public class FlutterWaveController {
public class FlutterWaveController extends Controller {
private static Logger logger = LoggerFactory.getLogger(FlutterWaveController.class);
private final TbCfOrderRepository repository;
private final TbCfFinanceRepository financeRepository;
private final UserRepository userRepository;
private final DomainProperties domainProperties;
private final AuthenticationUser user;
//退款API
......@@ -41,11 +43,12 @@ public class FlutterWaveController {
// //校验API
private String VERIFY_PAY_URL = "https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/verify";
public FlutterWaveController(TbCfOrderRepository repository, TbCfFinanceRepository financeRepository, UserRepository userRepository, DomainProperties domainProperties) {
public FlutterWaveController(TbCfOrderRepository repository, TbCfFinanceRepository financeRepository, UserRepository userRepository, DomainProperties domainProperties, AuthenticationUser user) {
this.repository = repository;
this.financeRepository = financeRepository;
this.userRepository = userRepository;
this.domainProperties = domainProperties;
this.user = user;
}
@PostMapping("/pay")
......@@ -129,6 +132,10 @@ public class FlutterWaveController {
String paymentid = results.getString("paymentid");
String authurl = results.getString("authurl");
if ("success".equalsIgnoreCase(statusFlag) && "successful".equalsIgnoreCase(status)) {
TbCfUserInfo user = this.user.user();
if( user.hasFcm() ){
sendNotification(user.getFcm(), "Order alert !!", "Order of $" + tbCfOrderVo.getRealityPay() + " has been successfully paid !!");
}
logger.info("订单号" + orderId + "[flutterwave支付]校验成功时间:" + new Date());
//支付成功
changeOrderState(paymentid, tbCfOrderVo);
......
......@@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Date;
......@@ -29,7 +30,7 @@ import static org.springframework.data.domain.Sort.Order.desc;
@RestController
@RequestMapping("/order")
public class OrderController {
public class OrderController extends Controller {
private final TbCfOrderRepository repository;
private final TbCfCartRecordRRepository cartRepository;
private final TbCfCouponRepository couponRepository;
......@@ -46,7 +47,7 @@ public class OrderController {
this.user = user;
}
private TbCfCartRecordR getCart(TbCfStationItem item, String itemSku, Integer itemNum) {
private TbCfCartRecordR getCart(TbCfStationItem item, String itemSku, Integer itemNum,Double price) {
TbCfCartRecordR record = new TbCfCartRecordR();
......@@ -56,7 +57,7 @@ public class OrderController {
record.setItemSku(itemSku);
record.setTemplate(item.getExpress());
record.setItemTitle(item.getItemName());
record.setItemPrice(item.getOneOfPrices());
record.setItemPrice(BigDecimal.valueOf(price));
record.setItemImg(item.getItemImg());
return record;
......@@ -64,10 +65,14 @@ public class OrderController {
@GetMapping("/payNow")
public Result<TbCfOrder> payNow(@RequestParam("itemId") String itemId, @RequestParam("itemNum") Integer itemNum, @RequestParam(value = "itemSku",defaultValue = "") String itemSku, @RequestParam(value = "toitableId", required = false) String toitableId) {
public Result<TbCfOrder> payNow(@RequestParam("itemId") String itemId,
@RequestParam("itemNum") Integer itemNum,
@RequestParam(value = "itemSku",defaultValue = "") String itemSku,
@RequestParam(value = "itemPrice") Double itemPrice,
@RequestParam(value = "toitableId", required = false) String toitableId) {
TbCfOrder order = new TbCfOrder();
if (StringUtils.isBlank(itemId) || itemNum == null || itemNum <= 0)
if (StringUtils.isBlank(itemId) || itemNum == null || itemNum <= 0 || itemPrice == null || itemPrice <= 0)
return new Result<>(ResultCodeEnum.SERVICE_ERROR.getCode(), "Missing information !");
Optional<TbCfStationItem> byId = itemRepository.findById(itemId);
......@@ -79,7 +84,7 @@ public class OrderController {
List<TbCfCartRecordR> list = new ArrayList<>();
list.add(getCart(item, itemSku, itemNum));
list.add(getCart(item, itemSku, itemNum,itemPrice));
order.setCouponId(toitableId);
if (toitableId != null && !toitableId.isEmpty()) {
......@@ -126,8 +131,10 @@ public class OrderController {
@RequestParam(value = "itemId", required = false) String itemId,
@RequestParam(value = "itemNum",required = false) Integer itemNum,
@RequestParam(value = "itemSku",required = false) String itemSku,
@RequestParam(value = "itemPrice",required = false) Double itemPrice,
@RequestParam(value = "web", required = false) String web) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
String userId = user.userId();
TbCfUserInfo user = this.user.user();
String userId = user.getUserId();
int v_code = ResultCodeEnum.VALIDATE_ERROR.getCode();
......@@ -136,7 +143,7 @@ public class OrderController {
boolean noCartBody = tbCfOrder.getIds() == null || tbCfOrder.getIds().length <= 0;
boolean noPayNow = itemId == null || itemId.isEmpty() || itemNum == null || itemNum <= 0;
boolean noPayNow = itemId == null || itemId.isEmpty() || itemNum == null || itemNum <= 0 || itemPrice == null || itemPrice <= 0;
if (noCartBody && noPayNow)
return new Result<>(v_code, "Empty body");
......@@ -150,7 +157,7 @@ public class OrderController {
TbCfStationItem stationItem = byId.get();
allByUserId.add(getCart(stationItem, itemSku,itemNum));
allByUserId.add(getCart(stationItem, itemSku,itemNum,itemPrice));
} else {
allByUserId = cartRepository.findAllByCartRecordIdIn(tbCfOrder.getIds());
......@@ -201,6 +208,11 @@ public class OrderController {
// implementation of coupon use
if( user.hasFcm() ){
sendNotification(user.getFcm(),"Order alert !!","Order of $"+order.getRealityPay()+" has been created , proceed with payment");
}
return new Result<>(save);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论