diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/annotation/LimitSubmit.java b/src/main/java/com/chaozhanggui/system/cashierservice/annotation/LimitSubmit.java index 2a367fa..c54118e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/annotation/LimitSubmit.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/annotation/LimitSubmit.java @@ -11,7 +11,7 @@ public @interface LimitSubmit { /** * 默认 10s */ - int limit() default 30; + int limit() default 5; /** * 请求完成后 是否一直等待 diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java index 5112a7c..5312839 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/LoginContoller.java @@ -125,14 +125,14 @@ public class LoginContoller { if (!signature.equals(signature2)) { return Result.fail("签名校验失败"); } - String data = WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr); String phone = ""; try{ + String data = WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr); if (ObjectUtil.isNotEmpty(data) && JSONObject.parseObject(data).containsKey("phoneNumber")) { phone =JSONObject.parseObject(data).get("phoneNumber").toString(); } }catch (Exception e){ - log.info("登录传参:获取手机号失败{}",data); + log.info("登录传参:获取手机号失败{}",e.getMessage()); } String nickName = rawDataJson.getString("nickName"); String avatarUrl = rawDataJson.getString("avatarUrl"); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java index 12d538e..3c46087 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopUserMapper.java @@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.dao; import com.chaozhanggui.system.cashierservice.entity.TbParams; import com.chaozhanggui.system.cashierservice.entity.TbShopUser; +import com.chaozhanggui.system.cashierservice.entity.vo.ShopUserListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -31,7 +32,7 @@ public interface TbShopUserMapper { List selectAllByUserId(@Param("userId") String userId); - List> selectByUserId(@Param("userId") String userId,@Param("shopId") String shopId); + List selectByUserId(@Param("userId") String userId, @Param("shopId") String shopId); TbShopUser selectByOpenId(@Param("openId") String openId); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java index 2706f70..60a3dcf 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbOrderInfo.java @@ -101,6 +101,29 @@ public class TbOrderInfo implements Serializable { private List detailList; private String winnnerNo; private String isWinner; + + + //根据状态返回 需付款 已付款 未付款 已退 + private String description; + + public void setDescription() { + switch (status) { + case "closed": + this.description = "已付款"; + break; + case "refund": + this.description = "已退款"; + break; + case "paying": + case "unpaid": + this.description = "需付款"; + break; + default: + this.description = ""; + break; + } + } + private String outNumber; private static final long serialVersionUID = 1L; public TbOrderInfo(){ diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/HomeDto.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/HomeDto.java index 354fdc7..ebd27a8 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/HomeDto.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/dto/HomeDto.java @@ -29,4 +29,9 @@ public class HomeDto extends HomeBaseDto { */ private Integer dateType = 1; + public void setOrderBy(Integer orderBy) { + if(orderBy!=null){ + this.orderBy = orderBy; + } + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/OrderVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/OrderVo.java index 2126631..bfa60a1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/OrderVo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/OrderVo.java @@ -24,6 +24,8 @@ public class OrderVo { private String orderNo; private Long time; + private Long expiredMinutes = 0l; + private Long expiredSeconds = 0l; private BigDecimal payAmount; private String orderType; diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/ShopUserListVo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/ShopUserListVo.java new file mode 100644 index 0000000..39b4aaf --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/vo/ShopUserListVo.java @@ -0,0 +1,20 @@ +package com.chaozhanggui.system.cashierservice.entity.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ShopUserListVo { + + private Long memberId; + private Long shopId; + private String shopName; + private String chainName; + private String logo; + private String detail; + private BigDecimal levelConsume; + private BigDecimal amount; + private String code; + private Integer isVip; +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService1.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService1.java index 8942b81..f6fd341 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService1.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService1.java @@ -106,7 +106,7 @@ public class CartService1 { String skuNum = redisUtil.getMessage(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId")); TbProduct tbProduct = productMapper.selectById(Integer.valueOf(productId)); if (tbProduct.getIsStock() == 1) { - if (Integer.valueOf(skuNum) < 1) { + if (Integer.valueOf(skuNum) < 1 && jsonObject.getInteger("num") > 0) { JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("status", "fail"); jsonObject1.put("msg", "该商品库存已售罄"); @@ -116,11 +116,6 @@ public class CartService1 { throw new MsgException("该商品库存已售罄"); } } - if (jsonObject.getInteger("num") > 0) { - redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); - } else { - redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2"); - } if (redisUtil.exists(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId)))) { JSONArray array = JSON.parseArray(redisUtil.getMessage(RedisCst.TABLE_CART.concat(jsonObject.getString("tableId").concat("-").concat(shopId)))); @@ -130,6 +125,12 @@ public class CartService1 { jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonArray.add(cashierCart); amount = amount.add(new BigDecimal(cashierCart.getNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + if (jsonObject.getInteger("num") > 0) { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); + } else { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2"); + } + productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num")); } } else { boolean flag = true; @@ -139,8 +140,15 @@ public class CartService1 { if (cashierCart.getSkuId().equals(jsonObject.getString("skuId"))) { cashierCart.setTotalNumber(cashierCart.getTotalNumber() + jsonObject.getInteger("num")); cashierCart.setNumber(cashierCart.getNumber() + jsonObject.getInteger("num")); + if (jsonObject.getInteger("num") > 0) { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); + } else { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2"); + } + productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num")); if (cashierCart.getNumber() > 0) { cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + cashierCart.setUpdatedAt(Instant.now().toEpochMilli()); cashierCartMapper.updateByPrimaryKeySelective(cashierCart); } else { cashierCartMapper.deleteByPrimaryKey(cashierCart.getId()); @@ -156,6 +164,12 @@ public class CartService1 { jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonArray.add(cashierCart); amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + if (jsonObject.getInteger("num") > 0) { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); + } else { + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "2"); + } + productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num")); } } } else { @@ -164,9 +178,10 @@ public class CartService1 { jsonObject.getInteger("userId"), jsonObject.getInteger("num"), tableId, jsonObject.getString("shopId")); jsonArray.add(cashierCart); amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + redisUtil.getIncrNum(RedisCst.PRODUCT + shopId + ":" + jsonObject.getString("skuId"), "1"); + productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num")); } } - productSkuMapper.updateStockById(jsonObject.getString("skuId"), jsonObject.getInteger("num")); redisUtil.saveMessage(RedisCst.TABLE_CART.concat(tableId).concat("-").concat(shopId), jsonArray.toJSONString()); JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("status", "success"); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index 5da256c..9641f92 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -195,6 +195,13 @@ public class OrderService { orderVo.setDetails(details); orderVo.setOrderNo(orderInfo.getOrderNo()); orderVo.setTime(orderInfo.getCreatedAt()); + if (orderInfo.getStatus().equals("paying") || orderInfo.getStatus().equals("unpaid")) { + Long totalSeconds = orderInfo.getCreatedAt() + 15 * 60 * 1000l - System.currentTimeMillis(); + if(totalSeconds>0){ + orderVo.setExpiredMinutes(totalSeconds/1000 / 60); + orderVo.setExpiredSeconds(totalSeconds/1000 % 60); + } + } orderVo.setPayAmount(orderInfo.getOrderAmount()); orderVo.setTableName(tbShopTable == null ? "" : tbShopTable.getName()); orderVo.setOrderType(orderInfo.getOrderType()); @@ -214,6 +221,7 @@ public class OrderService { List tbOrderInfos = orderInfoMapper.selectByUserId(userId, status); for (TbOrderInfo orderInfo : tbOrderInfos) { + orderInfo.setDescription(); List list = tbOrderDetailMapper.selectAllByOrderId(orderInfo.getId()); int num = 0; for (TbOrderDetail orderDetail : list) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index dc90abf..6eab725 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -218,7 +218,12 @@ public class ProductService { if (CollectionUtils.isEmpty(shopGroupInfoVos)) { return new PageInfo(shopGroupInfoVos); } - List productIds = shopGroupInfoVos.stream().map(ShopGroupInfoVo::getProId).collect(Collectors.toList()); + List productIds = shopGroupInfoVos.stream() + .filter(Objects::nonNull) // 过滤掉 null 的 ShopGroupInfoVo 对象 + .map(ShopGroupInfoVo::getProId) + .filter(Objects::nonNull) // 过滤掉 null 的 ProId + .collect(Collectors.toList()); + List stringList = productIds.stream() .map(Object::toString) // 将 Integer 对象映射为 String 对象 .collect(Collectors.toList()); @@ -227,6 +232,9 @@ public class ProductService { //组装 List homeVOList = new ArrayList<>(); for (ShopGroupInfoVo o : shopGroupInfoVos) { + if (o.getProId() == null) { + continue; + } HomeVO homeVO = new HomeVO(); homeVO.setId(o.getProId()); homeVO.setShopName(o.getShopName()); @@ -291,6 +299,10 @@ public class ProductService { * @throws Exception */ public Result productInfo(Integer productId, String lat, String lng, String environment) throws Exception { + if (StringUtils.isBlank(lat) || lat.equals("undefined")) { + lat = "34.343207"; + lng = "108.939645"; + } CompletableFuture product = CompletableFuture.supplyAsync(() -> tbProductMapper.selectByPrimaryKey(productId)); CompletableFuture> productSku = CompletableFuture.supplyAsync(() -> diff --git a/src/main/resources/mapper/TbProductMapper.xml b/src/main/resources/mapper/TbProductMapper.xml index ac7801c..de28bdf 100644 --- a/src/main/resources/mapper/TbProductMapper.xml +++ b/src/main/resources/mapper/TbProductMapper.xml @@ -961,6 +961,7 @@ info.`status`='1' AND pro.is_combo = '1' + AND pro.type_enum = 'group' AND (info.cities = #{cities} or info.districts = #{cities}) AND pro.`name` LIKE concat('%',#{proName,jdbcType=VARCHAR},'%') @@ -1008,6 +1009,8 @@ LEFT JOIN tb_shop_info AS info ON info.id = `order`.shop_id info.`status`='1' + AND pro.is_combo = '1' + AND pro.type_enum = 'group' AND (info.cities = #{cities} or info.districts = #{cities}) AND pro.`name` LIKE concat('%',#{proName,jdbcType=VARCHAR},'%') diff --git a/src/main/resources/mapper/TbProductSkuMapper.xml b/src/main/resources/mapper/TbProductSkuMapper.xml index 7181d60..c928a35 100644 --- a/src/main/resources/mapper/TbProductSkuMapper.xml +++ b/src/main/resources/mapper/TbProductSkuMapper.xml @@ -339,7 +339,7 @@ where id = #{id,jdbcType=INTEGER} - update tb_product_sku set stock_number = stock_number + #{num} where id = #{skuId} + update tb_product_sku set stock_number = stock_number - #{num} where id = #{skuId} update tb_product_sku set stock_number = stock_number + #{num} where id = #{skuId} diff --git a/src/main/resources/mapper/TbShopUserMapper.xml b/src/main/resources/mapper/TbShopUserMapper.xml index 72da852..0bdeb13 100644 --- a/src/main/resources/mapper/TbShopUserMapper.xml +++ b/src/main/resources/mapper/TbShopUserMapper.xml @@ -399,7 +399,7 @@ select * from tb_params where id = 1 - SELECT u.id as memberId, i.id as shopId, @@ -410,7 +410,7 @@ u.level_consume as levelConsume, u.amount, u.`code`, - u.is_vip + u.is_vip as isVip FROM tb_shop_user u left join tb_shop_info i on u.shop_id=i.id