环境2
This commit is contained in:
@@ -13,7 +13,12 @@ import com.chaozhanggui.system.cashierservice.redis.RedisUtil;
|
|||||||
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||||
import com.chaozhanggui.system.cashierservice.socket.AppWebSocketServer;
|
import com.chaozhanggui.system.cashierservice.socket.AppWebSocketServer;
|
||||||
|
import com.chaozhanggui.system.cashierservice.util.DateUtils;
|
||||||
|
import com.chaozhanggui.system.cashierservice.util.RedisUtils;
|
||||||
import com.chaozhanggui.system.cashierservice.util.SnowFlakeUtil;
|
import com.chaozhanggui.system.cashierservice.util.SnowFlakeUtil;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -24,7 +29,10 @@ import java.io.IOException;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 12847
|
* @author 12847
|
||||||
@@ -33,7 +41,7 @@ import java.util.List;
|
|||||||
public class OrderService {
|
public class OrderService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbCashierCartMapper cashierCartMapper;
|
private TbShopUserMapper shopUserMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbOrderInfoMapper orderInfoMapper;
|
private TbOrderInfoMapper orderInfoMapper;
|
||||||
@@ -48,18 +56,31 @@ public class OrderService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbUserInfoMapper userInfoMapper;
|
private TbUserInfoMapper userInfoMapper;
|
||||||
|
@Autowired
|
||||||
|
private TbWiningUserMapper tbWiningUserMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbOrderDetailMapper tbOrderDetailMapper;
|
private TbOrderDetailMapper tbOrderDetailMapper;
|
||||||
|
@Autowired
|
||||||
|
private TbIntegralMapper tbIntegralMapper;
|
||||||
|
@Resource
|
||||||
|
private TbParamsMapper paramsMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
|
@Resource
|
||||||
|
private RedisUtils redisUtils;
|
||||||
|
@Resource
|
||||||
|
private TbUserCouponsMapper userCouponsMapper;
|
||||||
|
@Resource
|
||||||
|
private TbSystemCouponsMapper systemCouponsMapper;
|
||||||
/**
|
/**
|
||||||
* 创建订单
|
* 创建订单
|
||||||
|
*
|
||||||
* @param tableId
|
* @param tableId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Result createOrder(Integer tableId,Integer shopId,Integer userId){
|
public Result createOrder(Integer tableId, Integer shopId, Integer userId) {
|
||||||
// //查询该台桌是否还有开启的购物车
|
// //查询该台桌是否还有开启的购物车
|
||||||
// List<CashierCarVo> cashierCarVoList = cashierCartMapper.selectByTableIdOpen(tableId);
|
// List<CashierCarVo> cashierCarVoList = cashierCartMapper.selectByTableIdOpen(tableId);
|
||||||
// if (cashierCarVoList.isEmpty()){
|
// if (cashierCarVoList.isEmpty()){
|
||||||
@@ -139,26 +160,25 @@ public class OrderService {
|
|||||||
// orderVo.setOrderType(orderInfo.getOrderType());
|
// orderVo.setOrderType(orderInfo.getOrderType());
|
||||||
// orderVo.setOrderId(orderInfo.getId());
|
// orderVo.setOrderId(orderInfo.getId());
|
||||||
// orderVo.setSendType(orderInfo.getSendType());
|
// orderVo.setSendType(orderInfo.getSendType());
|
||||||
return Result.success(CodeEnum.ENCRYPT,orderVo);
|
return Result.success(CodeEnum.ENCRYPT, orderVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Result orderInfo(Integer orderId){
|
public Result orderInfo(Integer orderId) {
|
||||||
TbOrderInfo orderInfo = orderInfoMapper.selectByPrimaryKey(orderId);
|
TbOrderInfo orderInfo = orderInfoMapper.selectByPrimaryKey(orderId);
|
||||||
if (orderInfo == null){
|
if (orderInfo == null) {
|
||||||
return Result.fail("未找到订单");
|
return Result.fail("未找到订单");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TbShopInfo tbShopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId()));
|
TbShopInfo tbShopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId()));
|
||||||
if (tbShopInfo == null){
|
if (tbShopInfo == null) {
|
||||||
return Result.fail("未找到订单");
|
return Result.fail("未找到订单");
|
||||||
}
|
}
|
||||||
TbShopTable tbShopTable = shopTableMapper.selectQRcode(orderInfo.getTableId());
|
TbShopTable tbShopTable = shopTableMapper.selectQRcode(orderInfo.getTableId());
|
||||||
|
|
||||||
|
|
||||||
List<TbOrderDetail> details= tbOrderDetailMapper.selectAllByOrderId(orderId);
|
List<TbOrderDetail> details = tbOrderDetailMapper.selectAllByOrderId(orderId);
|
||||||
if(ObjectUtil.isEmpty(details)||details.size()<=0){
|
if (ObjectUtil.isEmpty(details) || details.size() <= 0) {
|
||||||
return Result.fail("未找到订单");
|
return Result.fail("未找到订单");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,37 +190,37 @@ public class OrderService {
|
|||||||
orderVo.setOrderNo(orderInfo.getOrderNo());
|
orderVo.setOrderNo(orderInfo.getOrderNo());
|
||||||
orderVo.setTime(orderInfo.getCreatedAt());
|
orderVo.setTime(orderInfo.getCreatedAt());
|
||||||
orderVo.setPayAmount(orderInfo.getOrderAmount());
|
orderVo.setPayAmount(orderInfo.getOrderAmount());
|
||||||
orderVo.setTableName(tbShopTable == null?"":tbShopTable.getName());
|
orderVo.setTableName(tbShopTable == null ? "" : tbShopTable.getName());
|
||||||
orderVo.setOrderType(orderInfo.getOrderType());
|
orderVo.setOrderType(orderInfo.getOrderType());
|
||||||
orderVo.setOrderId(orderInfo.getId());
|
orderVo.setOrderId(orderInfo.getId());
|
||||||
orderVo.setSendType(orderInfo.getSendType());
|
orderVo.setSendType(orderInfo.getSendType());
|
||||||
|
|
||||||
return Result.success(CodeEnum.ENCRYPT,orderVo);
|
return Result.success(CodeEnum.ENCRYPT, orderVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Result orderList(Integer userId,Integer page,Integer size,String status){
|
public Result orderList(Integer userId, Integer page, Integer size, String status) {
|
||||||
TbUserInfo tbUserInfo = userInfoMapper.selectByPrimaryKey(userId);
|
TbUserInfo tbUserInfo = userInfoMapper.selectByPrimaryKey(userId);
|
||||||
if (tbUserInfo == null){
|
if (tbUserInfo == null) {
|
||||||
return Result.fail("生成订单失败");
|
return Result.fail("生成订单失败");
|
||||||
}
|
}
|
||||||
//获取页码号
|
//获取页码号
|
||||||
int beginNo;
|
int beginNo;
|
||||||
if(page <=0){
|
if (page <= 0) {
|
||||||
beginNo = 0;
|
beginNo = 0;
|
||||||
}else{
|
} else {
|
||||||
beginNo = (page - 1) * size;
|
beginNo = (page - 1) * size;
|
||||||
}
|
}
|
||||||
List<TbOrderInfo> tbOrderInfos = orderInfoMapper.selectByUserId(userId, beginNo, size,status);
|
List<TbOrderInfo> tbOrderInfos = orderInfoMapper.selectByUserId(userId, beginNo, size, status);
|
||||||
|
|
||||||
for (TbOrderInfo orderInfo:tbOrderInfos){
|
for (TbOrderInfo orderInfo : tbOrderInfos) {
|
||||||
List<TbOrderDetail> list = tbOrderDetailMapper.selectAllByOrderId(orderInfo.getId());
|
List<TbOrderDetail> list = tbOrderDetailMapper.selectAllByOrderId(orderInfo.getId());
|
||||||
int num = 0;
|
int num = 0;
|
||||||
for (TbOrderDetail orderDetail:list){
|
for (TbOrderDetail orderDetail : list) {
|
||||||
num = num+orderDetail.getNum();
|
num = num + orderDetail.getNum();
|
||||||
}
|
}
|
||||||
orderInfo.setDetailList(list);
|
orderInfo.setDetailList(list);
|
||||||
orderInfo.setTotalNumber(num);
|
orderInfo.setTotalNumber(num);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// for (OrderVo date :tbOrderInfos) {
|
// for (OrderVo date :tbOrderInfos) {
|
||||||
@@ -215,7 +235,7 @@ public class OrderService {
|
|||||||
// date.setTotalNumber(number);
|
// date.setTotalNumber(number);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
return Result.success(CodeEnum.ENCRYPT,tbOrderInfos);
|
return Result.success(CodeEnum.ENCRYPT, tbOrderInfos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,10 +244,63 @@ public class OrderService {
|
|||||||
// redisUtil.seckill(tableId,message);
|
// redisUtil.seckill(tableId,message);
|
||||||
// AppWebSocketServer.onClosed(tableId);
|
// AppWebSocketServer.onClosed(tableId);
|
||||||
List<TbProductSku> list = productSkuMapper.selectAll();
|
List<TbProductSku> list = productSkuMapper.selectAll();
|
||||||
for (TbProductSku productSku:list){
|
for (TbProductSku productSku : list) {
|
||||||
// productSku.setStockNumber(200.00);
|
// productSku.setStockNumber(200.00);
|
||||||
redisUtil.saveMessage("PRODUCT:"+productSku.getShopId()+":"+productSku.getId(),productSku.getStockNumber().intValue()+"");
|
redisUtil.saveMessage("PRODUCT:" + productSku.getShopId() + ":" + productSku.getId(), productSku.getStockNumber().intValue() + "");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Result tradeIntegral(String userId, String id) {
|
||||||
|
updateIntegral(userId, id);
|
||||||
|
return Result.success(CodeEnum.ENCRYPT);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateIntegral(String userId, String id) {
|
||||||
|
|
||||||
|
boolean lock_coin = redisUtils.lock(RedisCst.INTEGRAL_COIN_KEY + userId, 5000, TimeUnit.MILLISECONDS);
|
||||||
|
if (lock_coin) {
|
||||||
|
TbIntegral integral = tbIntegralMapper.selectByPrimaryKey(Integer.valueOf(id));
|
||||||
|
if (Objects.isNull(integral) || !integral.getStatus().equals("1")) {
|
||||||
|
throw new MsgException("该优惠券已被使用");
|
||||||
|
}
|
||||||
|
TbParams params = paramsMapper.selectByPrimaryKey(1);
|
||||||
|
BigDecimal jfAmount = params.getTradeRatio().multiply(integral.getNum());
|
||||||
|
TbShopUser tbShopUser = shopUserMapper.selectByUserId(userId);
|
||||||
|
tbShopUser.setLevelConsume(tbShopUser.getLevelConsume().add(jfAmount));
|
||||||
|
shopUserMapper.updateByPrimaryKeySelective(tbShopUser);
|
||||||
|
integral.setStatus("TRADE");
|
||||||
|
integral.setUpdateTime(new Date());
|
||||||
|
tbIntegralMapper.updateByPrimaryKeySelective(integral);
|
||||||
|
redisUtils.releaseLock(RedisCst.INTEGRAL_COIN_KEY + userId);
|
||||||
|
} else {
|
||||||
|
updateIntegral(userId, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// public Result mineYhq(String userId) {
|
||||||
|
// List<TbIntegral> list = tbIntegralMapper.selectAllByUserId(userId);
|
||||||
|
// return Result.success(CodeEnum.ENCRYPT, list);
|
||||||
|
// }
|
||||||
|
|
||||||
|
public Result mineCoupons(String userId, String status, Integer page, Integer size) {
|
||||||
|
PageHelper.startPage(page, size);
|
||||||
|
List<TbUserCoupons> list = userCouponsMapper.selectByUserId(userId,status);
|
||||||
|
PageInfo pageInfo = new PageInfo(list);
|
||||||
|
return Result.success(CodeEnum.SUCCESS, pageInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result findCoupons(Integer page, Integer size) {
|
||||||
|
PageHelper.startPage(page, size);
|
||||||
|
List<TbSystemCoupons> list = systemCouponsMapper.selectAll();
|
||||||
|
PageInfo pageInfo = new PageInfo(list);
|
||||||
|
return Result.success(CodeEnum.SUCCESS, pageInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result findWiningUser() {
|
||||||
|
String day = DateUtils.getDay();
|
||||||
|
List<TbWiningUser> list = tbWiningUserMapper.selectAllByTrade(day);
|
||||||
|
return Result.success(CodeEnum.SUCCESS, list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user