提交 50c78a79 authored 作者: Whispa's avatar Whispa

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/example/afrishop_v3/controllers/FlutterWaveController.java
#	src/main/java/com/example/afrishop_v3/security/WebSecurityConfig.java
......@@ -189,73 +189,73 @@ public class BonusController extends Controller {
TbCfUserInfo info = user.user();
Optional<String> userIdOptional = bonus.userId();
String orderId = bonus.getOrderId();
if( orderId == null )
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if( !orderOptional.isPresent() )
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
TbCfOrder order = orderOptional.get();
if( !OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) ){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Invalid order status");
}
if( repository.existsByOrderId(orderId) ){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Transaction already done !!!");
}
BigDecimal amount = bonus.getAmount();
if (userIdOptional.isPresent()) {
Optional<TbCfUserInfo> optionalUser = userRepository.findById(userIdOptional.get());
if (optionalUser.isPresent()) {
TbCfUserInfo user = optionalUser.get();
Post post = bonus.getPost();
Optional<Post> postOptional = post == null ? Optional.empty() : postRepository.findById(post.getId());
String productSharer = bonus.getProductSharer();
Optional<TbCfUserInfo> sharer = Optional.empty();
if( productSharer != null){
sharer = userRepository.findByCode(productSharer);
}
if (user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100),RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = repository.save(bonus);
if( user.hasFcm() ){
sendNotification(user.getFcm(),"Bonus alert !!",user.display()+", You received bonus of $"+formatter.format(v)+" in your account");
}
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5,false, orderId);
if (sharer.isPresent()&&sharer.get().getUserId().equals(user.getUserId())){
runBonusInc(bonusInc, amount, 5,false, orderId);
}
runBonusInc(sharer.orElseGet(() -> (postOptional.isPresent()&& !postOptional.get().getUserId().equals(user.getUserId()))? postOptional.get().getRealUser() : bonusInc),
amount, 5,postOptional.isPresent() || sharer.isPresent(), orderId);
//runBonusInc(bonusInc, amount, 0);
}
}
// Optional<String> userIdOptional = bonus.userId();
//
// String orderId = bonus.getOrderId();
//
// if( orderId == null )
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
//
// Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
//
// if( !orderOptional.isPresent() )
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Order is missing !!!");
//
// TbCfOrder order = orderOptional.get();
//
// if( !OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) ){
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Invalid order status");
// }
//
// if( repository.existsByOrderId(orderId) ){
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),"Transaction already done !!!");
// }
//
//
// BigDecimal amount = bonus.getAmount();
//
// if (userIdOptional.isPresent()) {
//
// Optional<TbCfUserInfo> optionalUser = userRepository.findById(userIdOptional.get());
//
// if (optionalUser.isPresent()) {
//
// TbCfUserInfo user = optionalUser.get();
//
// Post post = bonus.getPost();
//
// Optional<Post> postOptional = post == null ? Optional.empty() : postRepository.findById(post.getId());
//
// String productSharer = bonus.getProductSharer();
//
// Optional<TbCfUserInfo> sharer = Optional.empty();
//
// if( productSharer != null){
// sharer = userRepository.findByCode(productSharer);
// }
//
//
// if (user.invited()) {
// BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100),RoundingMode.CEILING);
// bonus.setAmount(v);
// bonus.setUserInfo(user);
// bonus.setPercentage(10);
// bonus = repository.save(bonus);
// if( user.hasFcm() ){
// sendNotification(user.getFcm(),"Bonus alert !!",user.display()+", You received bonus of $"+formatter.format(v)+" in your account");
// }
// }
//
//
// TbCfUserInfo bonusInc = runBonusInc(user, amount, 5,false, orderId);
// if (sharer.isPresent()&&sharer.get().getUserId().equals(user.getUserId())){
// runBonusInc(bonusInc, amount, 5,false, orderId);
// }
// runBonusInc(sharer.orElseGet(() -> (postOptional.isPresent()&& !postOptional.get().getUserId().equals(user.getUserId()))? postOptional.get().getRealUser() : bonusInc),
// amount, 5,postOptional.isPresent() || sharer.isPresent(), orderId);
// //runBonusInc(bonusInc, amount, 0);
// }
// }
return new Result<>(bonus);
}
......
......@@ -28,6 +28,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.locks.ReentrantLock;
@RestController
@RequestMapping("/dpo")
......@@ -44,6 +45,7 @@ public class DpoPayController extends Controller {
private final PostRepository postRepository;
private final TbCfOrderRepository orderRepository;
public DpoPayController(TbCfOrderRepository repository, UserRepository userRepository, TbCfFinanceRepository financeRepository, AuthenticationUser user, DpoConfiguration config, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, TbCfOrderRepository orderRepository) {
this.repository = repository;
this.userRepository = userRepository;
......@@ -336,7 +338,7 @@ public class DpoPayController extends Controller {
tranMap.put("CompanyRefUnique", 0);
// logger.info("getOrderSource---------->>>>>>>>>>>>" + order.getOrderSource());
//回调地址
if ("2".equals(order.getOrderSource().toString())||"3".equals(order.getOrderSource().toString())) {
if ("2".equals(order.getOrderSource().toString()) || "3".equals(order.getOrderSource().toString())) {
tranMap.put("RedirectURL", config.getNotifyUrl() + "/web");
} else {
tranMap.put("RedirectURL", config.getNotifyUrl());
......@@ -360,36 +362,35 @@ public class DpoPayController extends Controller {
}
public Result saveNetworkMarketing(Bonus bonus, String userId) {
TbCfUserInfo info = user.user();
public void saveNetworkMarketing(Bonus bonus, String userId) {
// Optional<String> userIdOptional = userId;
System.out.println("userId==" + userId);
String orderId = bonus.getOrderId();
if (orderId == null)
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:orderId为空");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if (!orderOptional.isPresent())
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:订单不存在");
TbCfOrder order = orderOptional.get();
if (!OrderStatusEnum.PAID.getValue().equals(order.getPayStatus())) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid order status");
logger.info("佣金:订单未支付");
}
if (bonusRepository.existsByOrderId(orderId)) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
}
boolean condition = orderId != null && orderOptional.isPresent() && OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) && !StringUtils.isBlank(userId);
// if (bonusRepository.existsByOrderId(orderId)) {
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
// }
BigDecimal amount = bonus.getAmount();
if (!StringUtils.isBlank(userId)) {
if (condition) {
Optional<TbCfUserInfo> optionalUser = userRepository.findById(userId);
......@@ -408,27 +409,28 @@ public class DpoPayController extends Controller {
if (productSharer != null) {
sharer = userRepository.findByCode(productSharer);
}
if (user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
synchronized (this) {
boolean exists = bonusRepository.existsByOrderId(orderId);
if (!exists && user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
}
}
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5, false, orderId);
runBonusInc(sharer.orElseGet(() -> postOptional.isPresent() ? postOptional.get().getRealUser() : bonusInc), amount, 5, postOptional.isPresent() || sharer.isPresent(), orderId);
//runBonusInc(bonusInc, amount, 0);
}
}
return new Result<>(bonus);
}
private TbCfUserInfo runBonusInc(TbCfUserInfo user, BigDecimal amount, int percent, boolean direct, String orderId) {
......@@ -443,7 +445,7 @@ public class DpoPayController extends Controller {
bonus.setAmount(v);
bonus.setPercentage(percent);
bonus.setOrderId(orderId);
if (userInfo!=null&&userInfo.invited()&&!"000000".equals(userInfo.getCode())) {
if (userInfo != null && userInfo.invited() && !"000000".equals(userInfo.getCode())) {
bonusRepository.save(bonus);
// bonus = repository.save(bonus);
if (userInfo.hasFcm()) {
......
......@@ -81,7 +81,7 @@ public class FlutterWaveController extends Controller {
public ResponseEntity<String> payForOrderByCard(@RequestParam("orderId") String orderId, @RequestBody FlutterWaveCard flutterWaveCard) {
RaveConstant.PUBLIC_KEY = PUBLIC_KEY;
RaveConstant.SECRET_KEY = SECRET_KEY;
RaveConstant.ENVIRONMENT = Environment.STAGING; //or live
RaveConstant.ENVIRONMENT = Environment.LIVE; //or live
// Result result = new Result();
Optional<TbCfOrder> byId = repository.findById(orderId);
......@@ -358,36 +358,35 @@ public class FlutterWaveController extends Controller {
return result;
}
public Result saveNetworkMarketing(Bonus bonus,String userId) {
TbCfUserInfo info = user.user();
public void saveNetworkMarketing(Bonus bonus, String userId) {
// Optional<String> userIdOptional = userId;
System.out.println("userId=="+userId);
String orderId = bonus.getOrderId();
if (orderId == null)
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:orderId为空");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if (!orderOptional.isPresent())
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:订单不存在");
TbCfOrder order = orderOptional.get();
if (!OrderStatusEnum.PAID.getValue().equals(order.getPayStatus())) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid order status");
logger.info("佣金:订单未支付");
}
if (bonusRepository.existsByOrderId(order.getOrderId())) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
}
boolean condition = orderId != null && orderOptional.isPresent() && OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) && !StringUtils.isBlank(userId);
// if (bonusRepository.existsByOrderId(orderId)) {
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
// }
BigDecimal amount = bonus.getAmount();
if (!StringUtils.isBlank(userId)) {
if (condition) {
Optional<TbCfUserInfo> optionalUser = userRepository.findById(userId);
......@@ -406,27 +405,28 @@ public class FlutterWaveController extends Controller {
if (productSharer != null) {
sharer = userRepository.findByCode(productSharer);
}
if (user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
synchronized (this) {
boolean exists = bonusRepository.existsByOrderId(orderId);
if (!exists && user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
}
}
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5, false, orderId);
runBonusInc(sharer.orElseGet(() -> postOptional.isPresent() ? postOptional.get().getRealUser() : bonusInc), amount, 5, postOptional.isPresent() || sharer.isPresent(), orderId);
//runBonusInc(bonusInc, amount, 0);
}
}
return new Result<>(bonus);
}
private TbCfUserInfo runBonusInc(TbCfUserInfo user, BigDecimal amount, int percent, boolean direct, String orderId) {
......
......@@ -23,6 +23,7 @@ import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URISyntaxException;
import java.text.ParseException;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.ExecutionException;
......@@ -45,10 +46,11 @@ public class OrderController extends Controller {
private final TbCfItemCommentRepository commentRepository;
private final TbCfExpressTemplateRepository templateRepository;
private final TbCfExchangeRepository exchangeRepository;
private final ActivityRepository activityRepository;
private final AuthenticationUser user;
private static Logger logger = LoggerFactory.getLogger(OrderController.class);
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) {
public OrderController(TbCfToicouponRepository couponRepository, TbCfOrderRepository repository, TbCfCartRecordRRepository cartRepository, TbCfAddressRepository addressRepository, TbCfToicouponRepository toicouponRepository, TbCfStationItemRepository itemRepository, TbCfItemSkuRepository itemSkuRepository, TbCfItemCommentRepository commentRepository, TbCfExpressTemplateRepository templateRepository, @Qualifier("tbCfExchangeRepository") TbCfExchangeRepository exchangeRepository, ActivityRepository activityRepository, AuthenticationUser user) {
this.couponRepository = couponRepository;
this.repository = repository;
this.cartRepository = cartRepository;
......@@ -59,6 +61,7 @@ public class OrderController extends Controller {
this.commentRepository = commentRepository;
this.templateRepository = templateRepository;
this.exchangeRepository = exchangeRepository;
this.activityRepository = activityRepository;
this.user = user;
}
......@@ -98,7 +101,8 @@ public class OrderController extends Controller {
@RequestParam("itemNum") Integer itemNum,
@RequestParam(value = "itemSku", defaultValue = "") String itemSku,
@RequestParam(value = "itemSkuId", required = false) String itemSkuId,
@RequestParam(value = "toitableId", required = false) String toitableId) {
@RequestParam(value = "toitableId", required = false) String toitableId,
@RequestParam(value = "open", required = false) boolean open) throws ParseException {
TbCfOrder order = new TbCfOrder();
......@@ -138,15 +142,16 @@ public class OrderController extends Controller {
order.setCoupon(coupon);
}
}
order.setOpen(open);
order.setCouponMap(map);
order.getItemOrderListFromCartList(list, itemRepository);
order.getItemOrderListFromCartList(list, itemRepository,activityRepository);
return new Result<>(order);
}
@PostMapping("/settle")
public Result<TbCfOrder> settleAccount(@RequestBody String[] ids, @RequestParam(value = "toitableId", required = false) String toitableId) {
public Result<TbCfOrder> settleAccount(@RequestBody String[] ids, @RequestParam(value = "toitableId", required = false) String toitableId,
@RequestParam(value = "open", required = false) boolean open) throws ParseException {
//String userId = user.userId();
List<TbCfCartRecordR> allByUserId = cartRepository.findAllByCartRecordIdIn(ids);
BigDecimal orderPrice = BigDecimal.ZERO;
......@@ -178,8 +183,8 @@ public class OrderController extends Controller {
}
}
order.getItemOrderListFromCartList(allByUserId, itemRepository);
order.setOpen(open);
order.getItemOrderListFromCartList(allByUserId, itemRepository,activityRepository);
return new Result<>(order);
......@@ -200,8 +205,9 @@ public class OrderController extends Controller {
@RequestParam(value = "itemNum", required = false) Integer itemNum,
@RequestParam(value = "itemSku", required = false) String itemSku,
@RequestParam(value = "itemSkuId", required = false) String itemSkuId,
@RequestParam(value = "orderSource", required = false) Integer orderSource
) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
@RequestParam(value = "orderSource", required = false) Integer orderSource,
@RequestParam(value = "open", required = false) boolean open
) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException, ParseException {
TbCfUserInfo user = this.user.user();
String userId = user.getUserId();
......@@ -320,8 +326,8 @@ public class OrderController extends Controller {
order.setOrderSource(orderSource);
}
order.getItemOrderListFromCartList(allByUserId, itemRepository);
order.setOpen(open);
order.getItemOrderListFromCartList(allByUserId, itemRepository,activityRepository);
TbCfOrder save = repository.save(order);
......
......@@ -286,36 +286,35 @@ public class PaypalContoller extends Controller {
return now;
}
public Result saveNetworkMarketing(Bonus bonus, String userId) {
public void saveNetworkMarketing(Bonus bonus, String userId) {
// TbCfUserInfo info = user.user();
// Optional<String> userIdOptional = userId;
System.out.println("userId=="+userId);
String orderId = bonus.getOrderId();
if (orderId == null)
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:orderId为空");
Optional<TbCfOrder> orderOptional = orderRepository.findById(orderId);
if (!orderOptional.isPresent())
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Order is missing !!!");
logger.info("佣金:订单不存在");
TbCfOrder order = orderOptional.get();
if (!OrderStatusEnum.PAID.getValue().equals(order.getPayStatus())) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid order status");
logger.info("佣金:订单未支付");
}
if (bonusRepository.existsByOrderId(orderId)) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
}
boolean condition = orderId != null && orderOptional.isPresent() && OrderStatusEnum.PAID.getValue().equals(order.getPayStatus()) && !StringUtils.isBlank(userId);
// if (bonusRepository.existsByOrderId(orderId)) {
// return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Transaction already done !!!");
// }
BigDecimal amount = bonus.getAmount();
if (!StringUtils.isBlank(userId)) {
if (condition) {
Optional<TbCfUserInfo> optionalUser = userRepository.findById(userId);
......@@ -334,29 +333,29 @@ public class PaypalContoller extends Controller {
if (productSharer != null) {
sharer = userRepository.findByCode(productSharer);
}
if (user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
synchronized (this) {
boolean exists = bonusRepository.existsByOrderId(orderId);
if (!exists && user.invited()) {
BigDecimal v = amount.multiply(BigDecimal.valueOf(10)).divide(BigDecimal.valueOf(100), RoundingMode.CEILING);
bonus.setAmount(v);
bonus.setUserInfo(user);
bonus.setPercentage(10);
bonus = bonusRepository.save(bonus);
if (user.hasFcm()) {
sendNotification(user.getFcm(), "Bonus alert !!", user.display() + ", You received bonus of $" + formatter.format(v) + " in your account");
}
}
}
TbCfUserInfo bonusInc = runBonusInc(user, amount, 5, false, orderId);
runBonusInc(sharer.orElseGet(() -> postOptional.isPresent() ? postOptional.get().getRealUser() : bonusInc), amount, 5, postOptional.isPresent() || sharer.isPresent(), orderId);
//runBonusInc(bonusInc, amount, 0);
}
}
return new Result<>(bonus);
}
}
private TbCfUserInfo runBonusInc(TbCfUserInfo user, BigDecimal amount, int percent, boolean direct, String orderId) {
if (user == null) return null;
Optional<Network> userCode = networkRepository.findByNetworkInfoCode(user.getCode());
......
package com.example.afrishop_v3.models;
import lombok.Data;
import lombok.ToString;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
......@@ -17,6 +20,8 @@ import java.util.List;
*/
@Entity
@Data
@ToString
public class Activity implements Serializable {
private static final long serialVersionUID = 1L;
......@@ -30,7 +35,11 @@ public class Activity implements Serializable {
*/
private String name;
/**
* 活动类型 1:满减 2:满折 3:满几件打折
* 活动内容
*/
private String content;
/**
* 活动类型 1:满减 2:满折 3:满件打折
*/
private Integer type;
/**
......@@ -46,19 +55,11 @@ public class Activity implements Serializable {
*/
private String picture;
/**
* 满减金额
*/
private BigDecimal fullAmount;
/**
* 抵扣金额
*/
private BigDecimal reducedAmount;
/**
* 折扣率
* 活动条件(json)
*/
private Double discountRate;
private String condition;
/**
* 商品IDS
* 特定商品链接
*/
private String itemIds;
/**
......@@ -77,233 +78,146 @@ public class Activity implements Serializable {
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
// @Transient
// private List<TbCfStationItem> itemList;
/**
* 设置:活动ID
* 距离活动截至时间
*/
@Transient
private String deadline;
@Transient
private Integer order;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* 获取:活动ID
*/
public String getId() {
return id;
public String getName() {
return name;
}
/**
* 设置:活动名称
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取:活动名称
*/
public String getName() {
return name;
public String getContent() {
return content;
}
/**
* 设置:活动类型 1:满减 2:满折 3:满几件打折
*/
public void setType(Integer type) {
this.type = type;
public void setContent(String content) {
this.content = content;
}
/**
* 获取:活动类型 1:满减 2:满折 3:满几件打折
*/
public Integer getType() {
return type;
}
/**
* 设置:使用类型 1:全场 2:分类商品 3:特定商品
*/
public void setUseType(Integer useType) {
this.useType = useType;
public void setType(Integer type) {
this.type = type;
}
/**
* 获取:使用类型 1:全场 2:分类商品 3:特定商品
*/
public Integer getUseType() {
return useType;
}
/**
* 设置:商品分类ID
*/
public void setCategoryId(String categoryId) {
this.categoryId = categoryId;
public void setUseType(Integer useType) {
this.useType = useType;
}
/**
* 获取:商品分类ID
*/
public String getCategoryId() {
return categoryId;
}
/**
* 设置:活动图片
*/
public void setPicture(String picture) {
this.picture = picture;
public void setCategoryId(String categoryId) {
this.categoryId = categoryId;
}
/**
* 获取:活动图片
*/
public String getPicture() {
return picture;
}
/**
* 设置:满减金额
*/
public void setFullAmount(BigDecimal fullAmount) {
this.fullAmount = fullAmount;
}
/**
* 获取:满减金额
*/
public BigDecimal getFullAmount() {
return fullAmount;
}
/**
* 设置:抵扣金额
*/
public void setReducedAmount(BigDecimal reducedAmount) {
this.reducedAmount = reducedAmount;
public void setPicture(String picture) {
this.picture = picture;
}
/**
* 获取:抵扣金额
*/
public BigDecimal getReducedAmount() {
return reducedAmount;
public String getCondition() {
return condition;
}
/**
* 设置:折扣率
*/
public void setdiscountRate(Double discountRate) {
this.discountRate = discountRate;
public void setCondition(String condition) {
this.condition = condition;
}
/**
* 获取:折扣率
*/
public Double getdiscountRate() {
return discountRate;
public String getItemIds() {
return itemIds;
}
/**
* 设置:商品IDS
*/
public void setItemIds(String itemIds) {
this.itemIds = itemIds;
}
/**
* 获取:商品IDS
*/
public String getItemIds() {
return itemIds;
public Integer getStatus() {
return status;
}
/**
* 设置:活动状态 0:关闭 1:开启
*/
public void setStatus(Integer status) {
this.status = status;
}
/**
* 获取:活动状态 0:关闭 1:开启
*/
public Integer getStatus() {
return status;
public Date getStartTime() {
return startTime;
}
/**
* 设置:活动开始时间
*/
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
/**
* 获取:活动开始时间
*/
public Date getStartTime() {
return startTime;
public Date getEndTime() {
return endTime;
}
/**
* 设置:活动结束时间
*/
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
/**
* 获取:活动结束时间
*/
public Date getEndTime() {
return endTime;
public Date getCreateTime() {
return createTime;
}
/**
* 设置:创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取:创建时间
*/
public Date getCreateTime() {
return createTime;
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置:更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取:更新时间
*/
public Date getUpdateTime() {
return updateTime;
public String getDeadline() {
return deadline;
}
public Double getDiscountRate() {
return discountRate;
public void setDeadline(String deadline) {
this.deadline = deadline;
}
public void setDiscountRate(Double discountRate) {
this.discountRate = discountRate;
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
}
package com.example.afrishop_v3.models;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @Auther: wudepeng
* @Date: 2020/12/11
* @Description:活动模板
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ActivityVo {
private Activity activity;
private String activityId;
private Integer itemNum;
private BigDecimal itemPrice;
public String getActivityId() {
return activity == null ? null : activity.getId();
}
}
......@@ -5,16 +5,29 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.relational.core.sql.In;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Optional;
/**
* @Auther: wudepeng
* @Date: 2020/12/02
* @Description:
*/
public interface ActivityRepository extends JpaRepository<Activity,String> {
public interface ActivityRepository extends JpaRepository<Activity, String> {
@Query(value = "select a from Activity a where CURRENT_TIMESTAMP between startTime and endTime and status=1 order by a.createTime desc")
Page<Activity> getAllActivity(Pageable pageable);
boolean existsByUseType(Integer useType);
// @Query(value = "select * from Activity a where CURRENT_TIMESTAMP between a.start_time and a.end_time and a.status=1 and use_type=:useType order by a.create_time desc limit 1", nativeQuery = true)
// Optional<Activity> findFirstByUseType(Integer useType);
@Query(value = "select * from Activity a where CURRENT_TIMESTAMP between a.start_time and a.end_time and a.status=1 and a.use_type=:useType order by a.create_time desc ", nativeQuery = true)
List<Activity> findAllByUseType(Integer useType);
@Query(value = "select a from Activity a where CURRENT_TIMESTAMP between startTime and endTime and status=1")
List<Activity> getAllActivity();
}
package com.example.afrishop_v3.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Auther: wudepeng
* @Date: 2020/12/09
* @Description:活动条件
*/
@Data
@AllArgsConstructor
public class Condition {
private double key;
private double value;
}
server:
servlet:
context-path: /afrishop
port: 8099
#server:
# servlet:
# context-path: /afrishop
# port: 8099
spring:
datasource:
url: jdbc:mysql://159.138.48.71:3306/chinafrica_ref_test?useUnicode=true&connectionCollation=utf8mb4_general_ci&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
url: jdbc:mysql://159.138.48.71:3306/chinafrica?useUnicode=true&connectionCollation=utf8mb4_general_ci&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username: root
driver-class-name: com.mysql.cj.jdbc.Driver
password: Diaoyunnuli.8
......@@ -57,9 +57,9 @@ dpo:
#服务类型
service_type: 35711
#回调地址
notify_url: https://app.afrieshop.com/afrishop/dpo/notify
notify_url: https://app.afrieshop.com/zion/dpo/notify
#取消地址
back_url: https://app.afrieshop.com/afrishop/dpo/cancel
back_url: https://app.afrieshop.com/zion/dpo/cancel
#支付成功页面
success_url: https://www.afrieshop.com/payment_successful
#支付失败页面
......
server.servlet.context-path=/zion
spring.jpa.hibernate.ddl-auto=update
server.port=8083
spring.profiles.active=test
spring.profiles.active=dev
#spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/afrishop_test?useUnicode=true&connectionCollation=utf8mb4_general_ci&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
#spring.datasource.username=root
#spring.datasource.password=Diaoyunnuli.8
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论