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

commit

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