From 0f2843a5f33c3319f5d95ca76c458da53728431e Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 06 三月 2024 16:28:42 +0800 Subject: [PATCH] 新增t_member_coupon表分表配置 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceConfiguration.java | 85 ++++++++++++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceHealthConfig.java | 65 ++++++++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java | 10 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java | 118 +++++++++---------- ruoyi-modules/ruoyi-member/pom.xml | 26 +++- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerVerifyMemberCouponDto.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java | 4 13 files changed, 246 insertions(+), 76 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerVerifyMemberCouponDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerVerifyMemberCouponDto.java index dca56f5..272b215 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerVerifyMemberCouponDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerVerifyMemberCouponDto.java @@ -14,7 +14,7 @@ public class MerVerifyMemberCouponDto { @ApiModelProperty(value = "优惠券id") - private String couponId; + private Long couponId; @ApiModelProperty(value = "商户id") private Long shopId; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java index 3abf2b4..5330316 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java @@ -29,7 +29,7 @@ private static final long serialVersionUID = 1L; @TableId(value = "id") - private String id; + private Long id; /** * 删除标记 */ diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java index 5ce967a..6fdca44 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerVerifyCouponGetVo.java @@ -18,7 +18,7 @@ public class MerVerifyCouponGetVo { @ApiModelProperty(value = "优惠券id") - private String memberCouponId; + private Long memberCouponId; @ApiModelProperty(value = "用户id") private Long userId; diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml index 7179cae..57159f0 100644 --- a/ruoyi-modules/ruoyi-member/pom.xml +++ b/ruoyi-modules/ruoyi-member/pom.xml @@ -59,13 +59,7 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-datasource</artifactId> </dependency> - - <!-- RuoYi Common DataScope --> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-common-datascope</artifactId> - </dependency> - + <!-- RuoYi Common Log --> <dependency> <groupId>com.ruoyi</groupId> @@ -120,6 +114,24 @@ <artifactId>alibabacloud-dysmsapi20170525</artifactId> <version>2.0.24</version> </dependency> + <!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/sharding-jdbc-spring-boot-starter --> + <dependency> + <groupId>org.apache.shardingsphere</groupId> + <artifactId>sharding-jdbc-spring-boot-starter</artifactId> + <version>4.1.1</version> + <exclusions> + <exclusion> + <artifactId>guava</artifactId> + <groupId>com.google.guava</groupId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java index 727366a..bf279f3 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/RuoYiMemberApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScans; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; /** @@ -19,6 +20,7 @@ @EnableRyFeignClients @SpringBootApplication @EnableScheduling +@EnableAsync @ComponentScans(value = {@ComponentScan("com.ruoyi.system.api"),@ComponentScan("com.ruoyi.common.security.utils")}) public class RuoYiMemberApplication { diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceConfiguration.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceConfiguration.java new file mode 100644 index 0000000..f5fae5f --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceConfiguration.java @@ -0,0 +1,85 @@ +package com.ruoyi.member.config; + +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.provider.AbstractDataSourceProvider; +import com.baomidou.dynamic.datasource.provider.DynamicDataSourceProvider; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +import javax.annotation.Resource; +import javax.sql.DataSource; +import java.util.Map; + +/** + * @author mitao + * @date 2024/3/2 + */ +@Configuration +@AutoConfigureBefore({DynamicDataSourceAutoConfiguration.class, + SpringBootConfiguration.class}) +public class DataSourceConfiguration { + /** + * 分表数据源名称 + */ + private static final String SHARDING_DATA_SOURCE_NAME = "sharding"; + + /** + * 动态数据源配置项 + */ + @Autowired + private DynamicDataSourceProperties properties; + + /** + * shardingjdbc有四种数据源,需要根据业务注入不同的数据源 + * + * <p>1. 未使用分片, 脱敏的名称(默认): shardingDataSource; + * <p>2. 主从数据源: masterSlaveDataSource; + * <p>3. 脱敏数据源:encryptDataSource; + * <p>4. 影子数据源:shadowDataSource + * + */ + @Resource + private DataSource shardingSphereDataSource; + + @Bean + public DynamicDataSourceProvider dynamicDataSourceProvider() + { + Map<String, DataSourceProperty> datasourceMap = properties.getDatasource(); + return new AbstractDataSourceProvider() + { + @Override + public Map<String, DataSource> loadDataSources() + { + Map<String, DataSource> dataSourceMap = createDataSourceMap(datasourceMap); + // 将 shardingjdbc 管理的数据源也交给动态数据源管理 + dataSourceMap.put(SHARDING_DATA_SOURCE_NAME, shardingSphereDataSource); + return dataSourceMap; + } + }; + } + + /** + * 将动态数据源设置为首选的 + * 当spring存在多个数据源时, 自动注入的是首选的对象 + * 设置为主要的数据源之后,就可以支持shardingjdbc原生的配置方式了 + */ + @Primary + @Bean + public DataSource dataSource() + { + DynamicRoutingDataSource dataSource = new DynamicRoutingDataSource(); + dataSource.setPrimary(properties.getPrimary()); + dataSource.setStrict(properties.getStrict()); + dataSource.setStrategy(properties.getStrategy()); + dataSource.setP6spy(properties.getP6spy()); + dataSource.setSeata(properties.getSeata()); + return dataSource; + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceHealthConfig.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceHealthConfig.java new file mode 100644 index 0000000..74ada05 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/config/DataSourceHealthConfig.java @@ -0,0 +1,65 @@ +package com.ruoyi.member.config; + + +import com.zaxxer.hikari.HikariDataSource; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthContributorAutoConfiguration; +import org.springframework.boot.actuate.health.AbstractHealthIndicator; +import org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator; +import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata; +import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider; +import org.springframework.boot.jdbc.metadata.HikariDataSourcePoolMetadata; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.StringUtils; + +import javax.sql.DataSource; +import java.util.Map; + +@Configuration +public class DataSourceHealthConfig { + /** + * 解决新版Spring中,健康健康检查用到 sharding jdbc 时,该组件没有完全实现MySQL驱动导致的问题. + */ + @Bean + DataSourcePoolMetadataProvider dataSourcePoolMetadataProvider() { + return dataSource -> new NotAvailableDataSourcePoolMetadata(); + } + + /** + * 不可用的数据源池元数据. + */ + private static class NotAvailableDataSourcePoolMetadata implements DataSourcePoolMetadata { + @Override + public Float getUsage() { + return null; + } + + @Override + public Integer getActive() { + return null; + } + + @Override + public Integer getMax() { + return null; + } + + @Override + public Integer getMin() { + return null; + } + + @Override + public String getValidationQuery() { + // 该字符串是适用于MySQL的简单查询语句,用于检查检查,其他数据库可能需要更换 + return "select 1"; + } + + @Override + public Boolean getDefaultAutoCommit() { + return null; + } + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java index 21acbc3..ba53bc4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java @@ -86,5 +86,5 @@ * @param shopId * @return void */ - void sureMemberCoupon(@Param("memberCouponId")String memberCouponId,@Param("shopId")Long shopId); + void sureMemberCoupon(@Param("memberCouponId")Long memberCouponId,@Param("shopId")Long shopId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java index fee79df..ebc1868 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java @@ -31,13 +31,13 @@ import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteGoodsService; import com.ruoyi.system.api.service.RemoteShopService; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -432,7 +432,7 @@ coupon.setRelGoodsIds(relGoodsIds); } //判断是否指定用户 - List<Long> relUserIdList = null; + List<Long> relUserIdList; if(coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){ relUserIdList = mgtCouponEditDto.getRelUserIdList(); List<CouponRelUser> couponRelUserList = new ArrayList<>(); @@ -448,10 +448,12 @@ } couponRelUserService.saveBatch(couponRelUserList); coupon.setRelUserIds(userIdSj.toString()); + } else { + relUserIdList = null; } //处理优惠券发放 if(coupon.getSendFlag() == 0 && coupon.getSendType()==2&&coupon.getSendTimeType()==1){ - sendCoupon(coupon,relUserIdList); + CompletableFuture.runAsync(()->sendCoupon(coupon,relUserIdList)); coupon.setSendFlag(1); this.saveOrUpdate(coupon); }else{ @@ -467,7 +469,6 @@ * @param relUserIdList * @return void */ - @Async protected void sendCoupon(Coupon coupon, List<Long> relUserIdList){ //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 Date nowTime = new Date(); @@ -507,14 +508,11 @@ MemberCoupon memberCoupon; Integer sendTotal = 0; Integer sendPerson = 0; - String memberCouponId; Integer sendUserTotal; for(Long userId : userIdList){ if(coupon.getCouponFrom()==2){ for(int i=0;i<coupon.getLimitNumber();i++){ - memberCouponId = IdUtils.simpleUUID(); memberCoupon = new MemberCoupon(); - memberCoupon.setId(memberCouponId); memberCoupon.setDelFlag(0); memberCoupon.setCouponId(coupon.getCouponId()); memberCoupon.setUserId(userId); @@ -564,56 +562,56 @@ memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1); } }else{ - memberCouponId = IdUtils.simpleUUID(); - memberCoupon = new MemberCoupon(); - memberCoupon.setId(memberCouponId); - memberCoupon.setDelFlag(0); - memberCoupon.setCouponId(coupon.getCouponId()); - memberCoupon.setUserId(userId); - //memberCoupon.setShopId(coupon.getShopId()); - memberCoupon.setCouponType(coupon.getCouponType()); - if(coupon.getCouponType()==1){ - memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); - memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); - }else if(coupon.getCouponType()==2){ - memberCoupon.setDiscountPercent(coupon.getDiscountPercent()); - }else if(coupon.getCouponType()==3){ - memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); - }else{ - memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); - } - memberCoupon.setCouponStatus(coupon.getCouponStatus()); - memberCoupon.setCouponName(coupon.getCouponName()); - memberCoupon.setSendType(coupon.getSendType()); - memberCoupon.setSendTarget(coupon.getSendTarget()); - memberCoupon.setSendTimeType(coupon.getSendTimeType()); - memberCoupon.setSendTime(coupon.getSendTime()); - memberCoupon.setUseScope(coupon.getUseScope()); - if(memberCoupon.getUseScope()==2){ - memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); - } - memberCoupon.setValidTimeType(coupon.getValidTimeType()); - memberCoupon.setValidStartTime(coupon.getValidStartTime()); - memberCoupon.setValidEndTime(coupon.getValidEndTime()); - memberCoupon.setValidDay(coupon.getValidDay()); - memberCoupon.setCouponFrom(coupon.getCouponFrom()); - memberCoupon.setReceiveTime(nowTime); - //有效期处理1.时间段2.领取之日起 - if(coupon.getValidTimeType()==1){ - memberCoupon.setDeadlineTime(coupon.getValidEndTime()); - }else if(coupon.getValidTimeType()==2){ - memberCoupon.setDeadlineTime(DateUtils.addDays(nowTime,coupon.getValidDay())); - } - memberCouponList.add(memberCoupon); - sendTotal = sendTotal + 1; - if(coupon.getSendType()==1){ - sendUserTotal = memberCouponService.totalMemberCouponByUserAndCoupon(userId,coupon.getCouponId()); - if(sendUserTotal!=null&&sendUserTotal>0){ + for (Integer i = 0; i < coupon.getLimitNumber(); i++) { + memberCoupon = new MemberCoupon(); + memberCoupon.setDelFlag(0); + memberCoupon.setCouponId(coupon.getCouponId()); + memberCoupon.setUserId(userId); + //memberCoupon.setShopId(coupon.getShopId()); + memberCoupon.setCouponType(coupon.getCouponType()); + if(coupon.getCouponType()==1){ + memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); + memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); + }else if(coupon.getCouponType()==2){ + memberCoupon.setDiscountPercent(coupon.getDiscountPercent()); + }else if(coupon.getCouponType()==3){ + memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); }else{ - sendPerson = sendPerson + 1; + memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); } + memberCoupon.setCouponStatus(coupon.getCouponStatus()); + memberCoupon.setCouponName(coupon.getCouponName()); + memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTarget(coupon.getSendTarget()); + memberCoupon.setSendTimeType(coupon.getSendTimeType()); + memberCoupon.setSendTime(coupon.getSendTime()); + memberCoupon.setUseScope(coupon.getUseScope()); + if(memberCoupon.getUseScope()==2){ + memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); + } + memberCoupon.setValidTimeType(coupon.getValidTimeType()); + memberCoupon.setValidStartTime(coupon.getValidStartTime()); + memberCoupon.setValidEndTime(coupon.getValidEndTime()); + memberCoupon.setValidDay(coupon.getValidDay()); + memberCoupon.setCouponFrom(coupon.getCouponFrom()); + memberCoupon.setReceiveTime(nowTime); + //有效期处理1.时间段2.领取之日起 + if(coupon.getValidTimeType()==1){ + memberCoupon.setDeadlineTime(coupon.getValidEndTime()); + }else if(coupon.getValidTimeType()==2){ + memberCoupon.setDeadlineTime(DateUtils.addDays(nowTime,coupon.getValidDay())); + } + memberCouponList.add(memberCoupon); + sendTotal = sendTotal + 1; + if(coupon.getSendType()==1){ + sendUserTotal = memberCouponService.totalMemberCouponByUserAndCoupon(userId,coupon.getCouponId()); + if(sendUserTotal!=null&&sendUserTotal>0){ + }else{ + sendPerson = sendPerson + 1; + } + } + memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1); } - memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1); } } memberCouponService.saveBatch(memberCouponList); @@ -663,12 +661,9 @@ MemberCoupon memberCoupon; Integer sendTotal = 0; Integer sendPerson = 0; - String memberCouponId; Integer sendUserTotal; for(Long userId : userIdList){ - memberCouponId = IdUtils.simpleUUID(); memberCoupon = new MemberCoupon(); - memberCoupon.setId(memberCouponId); memberCoupon.setDelFlag(0); memberCoupon.setCouponId(coupon.getCouponId()); memberCoupon.setUserId(userId); @@ -1253,8 +1248,9 @@ // 根据优惠券数量生成会员优惠券列表 for(int i=0;i<birthdayGiftSendDto.getCouponNumber();i++){ memberCoupon = new MemberCoupon(); + //TODO memberCouponId = IdUtils.simpleUUID(); - memberCoupon.setId(memberCouponId); + //memberCoupon.setId(memberCouponId); memberCoupon.setDelFlag(0); memberCoupon.setCouponId(couponId); memberCoupon.setUserId(userId); @@ -1425,8 +1421,8 @@ } //生成用户优惠券 MemberCoupon memberCoupon = new MemberCoupon(); - String memberCouponId = IdUtils.simpleUUID(); - memberCoupon.setId(memberCouponId); + //String memberCouponId = IdUtils.simpleUUID(); + //memberCoupon.setId(memberCouponId); memberCoupon.setDelFlag(0); memberCoupon.setCouponId(couponId); memberCoupon.setUserId(userId); @@ -1466,8 +1462,8 @@ }else if(coupon.getValidTimeType()==2){ memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay())); } - memberCouponService.save(memberCoupon); memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1); + memberCouponService.insert(memberCoupon); } /** diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java index 5fbb003..c57f027 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.member.service.impl.member; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -42,6 +43,7 @@ * @since 2023-04-25 */ @Service +@DS("sharding") public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, MemberCoupon> implements MemberCouponService { @Resource @@ -356,7 +358,13 @@ * @return void */ @Override - public void sureMemberCoupon(String memberCouponId,Long shopId){ + public void sureMemberCoupon(Long memberCouponId, Long shopId){ memberCouponMapper.sureMemberCoupon(memberCouponId, shopId); } + + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + public void insert(MemberCoupon memberCoupon) { + this.baseMapper.insert(memberCoupon); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java index c2b7b28..b403ce4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java @@ -116,5 +116,7 @@ * @param shopId * @return void */ - void sureMemberCoupon(String memberCouponId,Long shopId); + void sureMemberCoupon(Long memberCouponId,Long shopId); + + void insert(MemberCoupon memberCoupon); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java index 7ef0330..3084569 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java @@ -135,7 +135,7 @@ * 用户优惠券id */ @TableField("member_coupon_id") - private String memberCouponId; + private Long memberCouponId; @TableField("sure_num") private Integer sureNum; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java index 03900a8..e1118d5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java @@ -28,7 +28,7 @@ private String userMobile; @ApiModelProperty(value = "优惠券id") - private String memberCouponId; + private Long memberCouponId; @ApiModelProperty(value = "优惠券名称") private String couponName; -- Gitblit v1.7.1