From 2c96d545ac18f60974596c32ffd55861a3008bec Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Sat, 1 Jun 2024 02:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=AF=E6=8C=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=88=86=E7=B1=BB=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../booking/controller/CardController.java | 6 +- .../com/gxwebsoft/booking/entity/Card.java | 6 + .../gxwebsoft/booking/entity/UserCard.java | 3 + .../booking/mapper/xml/CardMapper.xml | 154 ++++++++++-------- .../gxwebsoft/booking/param/CardParam.java | 18 ++ .../booking/param/UserCardParam.java | 11 ++ .../booking/service/impl/CardServiceImpl.java | 16 ++ .../java/com/gxwebsoft/cms/entity/MpMenu.java | 3 + .../gxwebsoft/cms/mapper/xml/MpMenuMapper.xml | 3 + .../com/gxwebsoft/cms/param/MpMenuParam.java | 4 + .../shop/controller/OrderController.java | 4 +- .../com/gxwebsoft/shop/entity/Merchant.java | 3 + .../shop/mapper/xml/MerchantMapper.xml | 3 + .../gxwebsoft/shop/param/MerchantParam.java | 3 + .../shop/service/impl/OrderServiceImpl.java | 3 + 15 files changed, 167 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/gxwebsoft/booking/controller/CardController.java b/src/main/java/com/gxwebsoft/booking/controller/CardController.java index a51a3aa..0ebfcf2 100644 --- a/src/main/java/com/gxwebsoft/booking/controller/CardController.java +++ b/src/main/java/com/gxwebsoft/booking/controller/CardController.java @@ -35,7 +35,11 @@ public class CardController extends BaseController { @GetMapping("/page") public ApiResult> page(CardParam param) { // 使用关联查询 - return success(cardService.pageRel(param)); + final User loginUser = getLoginUser(); + if(loginUser != null){ + param.setBuyUserId(loginUser.getUserId()); + } + return success(cardService.pageRel(param)); } @ApiOperation("查询全部会员卡") diff --git a/src/main/java/com/gxwebsoft/booking/entity/Card.java b/src/main/java/com/gxwebsoft/booking/entity/Card.java index 1cb371e..75140e3 100644 --- a/src/main/java/com/gxwebsoft/booking/entity/Card.java +++ b/src/main/java/com/gxwebsoft/booking/entity/Card.java @@ -41,6 +41,12 @@ public class Card implements Serializable { @ApiModelProperty(value = "会员卡介绍") private String cardDesc; + @ApiModelProperty(value = "IC卡类型:1年卡,2次卡,3月卡,4会员IC卡,5充值卡 ") + private Integer type; + + @ApiModelProperty(value = "成人/儿童") + private Integer cardType; + @ApiModelProperty(value = "会员卡图片") private String image; diff --git a/src/main/java/com/gxwebsoft/booking/entity/UserCard.java b/src/main/java/com/gxwebsoft/booking/entity/UserCard.java index a0f2de4..3158391 100644 --- a/src/main/java/com/gxwebsoft/booking/entity/UserCard.java +++ b/src/main/java/com/gxwebsoft/booking/entity/UserCard.java @@ -29,6 +29,9 @@ public class UserCard implements Serializable { @ApiModelProperty(value = "用户id") private Integer userId; + @ApiModelProperty(value = "会员卡ID") + private Integer cardId; + @ApiModelProperty(value = "sid场馆id集合,适用的场馆") private String sid; diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/CardMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/CardMapper.xml index 748ba09..c2f7b9a 100644 --- a/src/main/java/com/gxwebsoft/booking/mapper/xml/CardMapper.xml +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/CardMapper.xml @@ -2,78 +2,90 @@ - - - SELECT a.*,b.merchant_name,b.image as merchant_avatar - FROM booking_card a - LEFT JOIN shop_merchant b ON a.merchant_id = b.merchant_id - - - AND a.card_id = #{param.cardId} - - - AND a.card_name LIKE CONCAT('%', #{param.cardName}, '%') - - - AND a.card_code = #{param.cardCode} - - - AND a.merchant_type = #{param.merchantType} - - - AND a.image LIKE CONCAT('%', #{param.image}, '%') - - - AND a.price = #{param.price} - - - AND a.number = #{param.number} - - - AND a.month = #{param.month} - - - AND a.discount = #{param.discount} - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.merchant_id = #{param.merchantId} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - - AND a.status = #{param.status} - - - AND a.sort_number = #{param.sortNumber} - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - + + + SELECT a.*,b.merchant_name,b.image as merchant_avatar + FROM booking_card a + LEFT JOIN shop_merchant b ON a.merchant_id = b.merchant_id + + + AND a.card_id = #{param.cardId} + + + AND a.card_name LIKE CONCAT('%', #{param.cardName}, '%') + + + AND a.card_code = #{param.cardCode} + + + AND a.type = #{param.type} + + + AND a.card_type = #{param.cardType} + + + AND a.merchant_type = #{param.merchantType} + + + AND a.image LIKE CONCAT('%', #{param.image}, '%') + + + AND a.price = #{param.price} + + + AND a.number = #{param.number} + + + AND a.month = #{param.month} + + + AND a.discount = #{param.discount} + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.merchant_id = #{param.merchantId} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND a.card_id NOT IN + + #{item} + + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + - - + + - - + + diff --git a/src/main/java/com/gxwebsoft/booking/param/CardParam.java b/src/main/java/com/gxwebsoft/booking/param/CardParam.java index 7fdde4a..50ea333 100644 --- a/src/main/java/com/gxwebsoft/booking/param/CardParam.java +++ b/src/main/java/com/gxwebsoft/booking/param/CardParam.java @@ -1,6 +1,9 @@ package com.gxwebsoft.booking.param; import java.math.BigDecimal; +import java.util.Set; + +import com.baomidou.mybatisplus.annotation.TableField; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -34,6 +37,13 @@ public class CardParam extends BaseParam { @QueryField(type = QueryType.EQ) private String cardCode; + @ApiModelProperty(value = "IC卡类型:1年卡,2次卡,3月卡,4会员IC卡,5充值卡 ") + @QueryField(type = QueryType.EQ) + private Integer type; + + @ApiModelProperty(value = "成人/儿童") + private Integer cardType; + @ApiModelProperty(value = "会员卡图片") private String image; @@ -79,4 +89,12 @@ public class CardParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer sortNumber; + @ApiModelProperty(value = "会员卡ID集合") + @TableField(exist = false) + private Set cardIds; + + @ApiModelProperty(value = "买家用户ID") + @TableField(exist = false) + private Integer buyUserId; + } diff --git a/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java b/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java index 060ef00..cb172f4 100644 --- a/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java +++ b/src/main/java/com/gxwebsoft/booking/param/UserCardParam.java @@ -1,6 +1,9 @@ package com.gxwebsoft.booking.param; import java.math.BigDecimal; +import java.util.Set; + +import com.baomidou.mybatisplus.annotation.TableField; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -30,6 +33,10 @@ public class UserCardParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer userId; + @ApiModelProperty(value = "会员卡ID") + @QueryField(type = QueryType.EQ) + private Integer cardId; + @ApiModelProperty(value = "sid场馆id集合,适用的场馆") private String sid; @@ -187,4 +194,8 @@ public class UserCardParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; + @ApiModelProperty(value = "会员卡ID集合") + @TableField(exist = false) + private Set cardIds; + } diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/CardServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/CardServiceImpl.java index 0908fca..558404f 100644 --- a/src/main/java/com/gxwebsoft/booking/service/impl/CardServiceImpl.java +++ b/src/main/java/com/gxwebsoft/booking/service/impl/CardServiceImpl.java @@ -1,15 +1,21 @@ package com.gxwebsoft.booking.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.booking.entity.UserCard; import com.gxwebsoft.booking.mapper.CardMapper; import com.gxwebsoft.booking.service.CardService; import com.gxwebsoft.booking.entity.Card; import com.gxwebsoft.booking.param.CardParam; +import com.gxwebsoft.booking.service.UserCardService; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 会员卡Service实现 @@ -19,11 +25,21 @@ import java.util.List; */ @Service public class CardServiceImpl extends ServiceImpl implements CardService { + @Resource + private UserCardService userCardService; @Override public PageResult pageRel(CardParam param) { PageParam page = new PageParam<>(param); page.setDefaultOrder("sort_number asc, price asc, create_time desc"); + + // 只显示可购买的会员卡 + if(param.getSceneType() != null && param.getSceneType().equals("showCanBuyVipCard")){ + final List userCardList = userCardService.list(new LambdaUpdateWrapper().eq(UserCard::getUserId, param.getBuyUserId())); + final Set collect = userCardList.stream().map(UserCard::getCardId).collect(Collectors.toSet()); + param.setCardIds(collect); + } + List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } diff --git a/src/main/java/com/gxwebsoft/cms/entity/MpMenu.java b/src/main/java/com/gxwebsoft/cms/entity/MpMenu.java index 975d850..252f982 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/MpMenu.java +++ b/src/main/java/com/gxwebsoft/cms/entity/MpMenu.java @@ -95,6 +95,9 @@ public class MpMenu implements Serializable { @ApiModelProperty(value = "用户ID") private Integer userId; + @ApiModelProperty(value = "是否管理人员可见") + private Integer adminShow; + @ApiModelProperty(value = "设为首页") private Integer home; diff --git a/src/main/java/com/gxwebsoft/cms/mapper/xml/MpMenuMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/MpMenuMapper.xml index d3ffe6c..30d4ffd 100644 --- a/src/main/java/com/gxwebsoft/cms/mapper/xml/MpMenuMapper.xml +++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/MpMenuMapper.xml @@ -76,6 +76,9 @@ AND a.user_id = #{param.userId} + + AND a.admin_show = #{param.adminShow} + AND a.home = #{param.home} diff --git a/src/main/java/com/gxwebsoft/cms/param/MpMenuParam.java b/src/main/java/com/gxwebsoft/cms/param/MpMenuParam.java index db13411..e9a79bf 100644 --- a/src/main/java/com/gxwebsoft/cms/param/MpMenuParam.java +++ b/src/main/java/com/gxwebsoft/cms/param/MpMenuParam.java @@ -106,6 +106,10 @@ public class MpMenuParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer userId; + @ApiModelProperty(value = "是否管理人员可见") + @QueryField(type = QueryType.EQ) + private Integer adminShow; + @ApiModelProperty(value = "设为首页") @QueryField(type = QueryType.EQ) private Integer home; diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java index b8c4123..d3f37a9 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java @@ -168,6 +168,7 @@ public class OrderController extends BaseController { final UserCard userCard = new UserCard(); userCard.setUserId(loginUser.getUserId()); // 适用场馆 + userCard.setCardId(Integer.valueOf(order.getCardId())); userCard.setSid(card.getMerchantIds()); userCard.setCardNum(CommonUtil.createCardNo()); userCard.setName(card.getCardName()); @@ -188,6 +189,7 @@ public class OrderController extends BaseController { userCard.setMonth(card.getMonth()); userCard.setMerchantId(card.getMerchantId()); userCard.setPayType(1); + userCard.setType(card.getType()); userCard.setTenantId(card.getTenantId()); userCard.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.MONTH, card.getMonth())); userCardService.save(userCard); @@ -206,7 +208,7 @@ public class OrderController extends BaseController { } // 会员卡支付 - if(!Integer.valueOf(order.getCardId()).equals(0)){ + if(order.getPayType().equals(7)){ order.setAccessToken(access_token); order.setLoginUser(loginUser); return success("下单成功", orderService.payByUserCard(order)); diff --git a/src/main/java/com/gxwebsoft/shop/entity/Merchant.java b/src/main/java/com/gxwebsoft/shop/entity/Merchant.java index 92fcd83..d63bd47 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Merchant.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Merchant.java @@ -48,6 +48,9 @@ public class Merchant implements Serializable { @ApiModelProperty(value = "店铺类型") private String shopType; + @ApiModelProperty(value = "项目类型") + private String itemType; + @ApiModelProperty(value = "商户分类") private String category; diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml index 3b04cc7..f15f3ca 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml @@ -28,6 +28,9 @@ AND a.shop_type LIKE CONCAT('%', #{param.shopType}, '%') + + AND a.item_type = #{param.merchantId} + AND a.category LIKE CONCAT('%', #{param.category}, '%') diff --git a/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java b/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java index c5ed5bb..6cb7bbc 100644 --- a/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java @@ -49,6 +49,9 @@ public class MerchantParam extends BaseParam { @ApiModelProperty(value = "店铺类型") private String shopType; + @ApiModelProperty(value = "项目类型") + private String itemType; + @ApiModelProperty(value = "商户分类") private String category; diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java index 2f53c74..8a30626 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -302,6 +302,9 @@ public class OrderServiceImpl extends ServiceImpl implements public Boolean payByUserCard(Order order) { final User loginUser = order.getLoginUser(); final UserCardLog userCardLog = new UserCardLog(); + if(order.getCardId() == null){ + throw new BusinessException("会员卡ID不存在"); + } // 查询会员卡信息 final UserCard userCard = userCardService.getById(order.getCardId());