ruoyi-api/ruoyi-api-system/pom.xml
@@ -44,7 +44,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> </dependencies> ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -143,4 +143,6 @@ String COUPON_SENT_EDIT = "已发放优惠券不能编辑"; String COUPON_SENT_DEL = "已发放优惠券不能删除"; String ACTIVITY_ING_EDIT = "只能编辑未开始活动"; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/activity/ActivityGoods.java
@@ -55,6 +55,11 @@ @TableField("activity_price") private BigDecimal activityPrice; /** * 活动订金 */ @TableField("activity_subscription") private BigDecimal activitySubscription; /** * 活动销售数量 */ @TableField("activity_number") @@ -69,7 +74,16 @@ */ @TableField("activity_deadline") private Date activityDeadline; /** * 售罄标记 */ @TableField("sell_out_flag") private Integer sellOutFlag; /** * 售罄时间 */ @TableField("sell_out_time") private Date sellOutTime; @Override protected Serializable pkVal() { ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteActivityFallbackFactory.java
@@ -8,6 +8,8 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 活动服务 * @@ -29,6 +31,11 @@ public R<ActivityGoods> getActivityGoods(String goodsId) { return R.fail("获取活动商品失败:" + throwable.getMessage()); } @Override public R<List<Long>> listUserIdByActivityId(String activityId) { return R.fail("获取活动用户id列表失败:" + throwable.getMessage()); } }; } } ruoyi-modules/ruoyi-goods/pom.xml
@@ -99,7 +99,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java
New file @@ -0,0 +1,39 @@ package com.ruoyi.goods.controller.management; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.goods.domain.dto.MgtActivityEditDto; import com.ruoyi.goods.service.activity.ActivityService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /** * @ClassName MgtActivityController * @Description TODO * @Author jqs * @Date 2023/6/14 10:17 * @Version 1.0 */ @Api(value = "平台端活动相关接口", tags = "平台端活动相关接口", description = "平台端活动相关接口") @RestController @RequestMapping("/mgt/activity") public class MgtActivityController { @Resource private ActivityService activityService; @RequestMapping(value = "/editMgtActivity", method = RequestMethod.POST) @ApiOperation(value = "平台编辑活动") public R editMgtActivity(@RequestBody MgtActivityEditDto mgtActivityEditDto) { Long userId = SecurityUtils.getUserId(); mgtActivityEditDto.setUserId(userId); activityService.editMgtActivity(mgtActivityEditDto); return R.ok(); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityEditDto.java
New file @@ -0,0 +1,62 @@ package com.ruoyi.goods.domain.dto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; /** * @ClassName MgtActivityEditDto * @Description TODO * @Author jqs * @Date 2023/6/14 14:56 * @Version 1.0 */ @Data public class MgtActivityEditDto extends MgtBaseDto { @ApiModelProperty(value = "活动id 新增不传") private String activityId; @ApiModelProperty(value = "活动名称") private String activityName; @ApiModelProperty(value = "活动开始时间") private Date activityStartTime; @ApiModelProperty(value = "活动结束时间") private Date activityEndTime; @ApiModelProperty(value = "成团人数") private Integer groupBuyNumber; @ApiModelProperty(value = "限购标记0否1是") private Integer purchaseLimitationFlag; @ApiModelProperty(value = "限购数量") private Integer limitNumber; @ApiModelProperty(value = "宣传海报") private String propagandaPoster; @ApiModelProperty(value = "适用地区标记1全部2指定") private Integer areaFlag; @ApiModelProperty(value = "适用地区code集合 多个用,隔开") private String designatedArea; @ApiModelProperty(value = "适用店铺标记1全部2指定") private Integer shopFlag; @ApiModelProperty(value = "适用店铺 多个用,隔开") private String applicableShop; @ApiModelProperty(value = "推荐标记") private Integer recommendFlag; @ApiModelProperty(value = "活动商品列表") private List<MgtActivityGoodsEditDto> mgtActivityGoodsEditDtoList; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityGoodsEditDto.java
New file @@ -0,0 +1,30 @@ package com.ruoyi.goods.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @ClassName MgtActivityGoodsEditDto * @Description TODO * @Author jqs * @Date 2023/6/14 15:28 * @Version 1.0 */ @Data public class MgtActivityGoodsEditDto { @ApiModelProperty(value = "商品id") private String goodsId; @ApiModelProperty(value = "秒杀活动价") private BigDecimal activityPrice; @ApiModelProperty(value = "秒杀活动订金") private BigDecimal activitySubscription; @ApiModelProperty(value = "秒杀活动库存") private Integer activityNumber; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/Activity.java
@@ -1,15 +1,15 @@ package com.ruoyi.goods.domain.pojo.activity; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> @@ -70,6 +70,11 @@ /** * 限购数量 */ @TableField("limit_number") private Integer limitNumber; /** * 宣传海报 */ @TableField("propaganda_poster") private String propagandaPoster; /** @@ -96,7 +101,7 @@ * 创建用户id */ @TableField("create_user_id") private Integer createUserId; private Long createUserId; /** * 创建时间 */ @@ -106,13 +111,17 @@ * 更新用户id */ @TableField("update_user_id") private Integer updateUserId; private Long updateUserId; /** * 更新时间 */ @TableField("update_time") private Date updateTime; /** * 推荐标记 */ @TableField("recommend_flag") private Integer recommendFlag; @Override protected Serializable pkVal() { ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityTotal.java
New file @@ -0,0 +1,62 @@ package com.ruoyi.goods.domain.pojo.activity; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; /** * <p> * * </p> * * @author jqs * @since 2023-06-14 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_activity_total") public class ActivityTotal extends Model<ActivityTotal> { private static final long serialVersionUID = 1L; /** * 活动id */ @TableId("activity_id") private String activityId; /** * 订单数量统计 */ @TableField("order_total") private Integer orderTotal; /** * 订单人数统计 */ @TableField("person_total") private Integer personTotal; /** * 退款数量统计 */ @TableField("refund_total") private Integer refundTotal; /** * 订单金额统计 */ @TableField("order_money_total") private BigDecimal orderMoneyTotal; @Override protected Serializable pkVal() { return this.activityId; } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityTotalMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.goods.mapper.activity; import com.ruoyi.goods.domain.pojo.activity.ActivityTotal; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * Mapper 接口 * </p> * * @author jqs * @since 2023-06-14 */ public interface ActivityTotalMapper extends BaseMapper<ActivityTotal> { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java
@@ -20,4 +20,13 @@ * @return */ ActivityGoods getByGoodsId(String goodsId); /** * @description 通过活动id删除商品 * @author jqs * @date 2023/6/14 15:47 * @param activityId * @return void */ void deleteByActivityId(String activityId); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java
@@ -1,5 +1,6 @@ package com.ruoyi.goods.service.activity; import com.ruoyi.goods.domain.dto.MgtActivityEditDto; import com.ruoyi.goods.domain.pojo.activity.Activity; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +14,12 @@ */ public interface ActivityService extends IService<Activity> { /** * @description 平台编辑活动 * @author jqs * @date 2023/6/14 15:12 * @param mgtActivityEditDto * @return void */ void editMgtActivity(MgtActivityEditDto mgtActivityEditDto); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityTotalService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.goods.service.activity; import com.ruoyi.goods.domain.pojo.activity.ActivityTotal; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 服务类 * </p> * * @author jqs * @since 2023-06-14 */ public interface ActivityTotalService extends IService<ActivityTotal> { } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.goods.service.impl.activity; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.goods.mapper.activity.ActivityGoodsMapper; @@ -33,4 +34,20 @@ ActivityGoods activityGoods = this.getOne(queryWrapper,false); return activityGoods; } /** * @description 通过活动id删除商品 * @author jqs * @date 2023/6/14 15:47 * @param activityId * @return void */ @Override public void deleteByActivityId(String activityId){ LambdaUpdateWrapper<ActivityGoods> wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(ActivityGoods::getActivityId, activityId); wrapper.eq(ActivityGoods::getDelFlag, 0); wrapper.set(ActivityGoods::getDelFlag, 1); this.update(wrapper); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -1,10 +1,26 @@ package com.ruoyi.goods.service.impl.activity; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.goods.domain.dto.MgtActivityEditDto; import com.ruoyi.goods.domain.dto.MgtActivityGoodsEditDto; import com.ruoyi.goods.domain.pojo.activity.Activity; import com.ruoyi.goods.domain.pojo.activity.ActivityTotal; import com.ruoyi.goods.mapper.activity.ActivityMapper; import com.ruoyi.goods.service.activity.ActivityGoodsService; import com.ruoyi.goods.service.activity.ActivityService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.goods.service.activity.ActivityTotalService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -17,4 +33,99 @@ @Service public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements ActivityService { @Resource private ActivityGoodsService activityGoodsService; @Resource private ActivityTotalService activityTotalService; /** * @param mgtActivityEditDto * @return void * @description 平台编辑活动 * @author jqs * @date 2023/6/14 15:12 */ @Override public void editMgtActivity(MgtActivityEditDto mgtActivityEditDto) { Activity activity; // 获取当前时间 Date nowTime = new Date(); // 如果活动ID不为空,则表示修改活动信息 if (StringUtils.isNotBlank(mgtActivityEditDto.getActivityId())) { // 获取活动信息 activity = this.getById(mgtActivityEditDto.getActivityId()); // 如果活动状态不为0,则表示活动正在进行中,不能修改 if (activity.getActivityStatus() != 0) { throw new ServiceException(AppErrorConstant.ACTIVITY_ING_EDIT); } // 删除活动商品信息 activityGoodsService.deleteByActivityId(activity.getActivityId()); } else { // 如果活动ID为空,则表示新增活动信息 activity = new Activity(); // 生成活动ID String activityId = IdUtils.simpleUUID(); activity.setActivityId(activityId); activity.setDelFlag(0); activity.setCreateUserId(mgtActivityEditDto.getUserId()); activity.setCreateTime(nowTime); ActivityTotal activityTotal = new ActivityTotal(); activityTotal.setActivityId(activityId); activityTotal.setOrderTotal(0); activityTotal.setPersonTotal(0); activityTotal.setRefundTotal(0); activityTotal.setOrderMoneyTotal(BigDecimal.ZERO); activityTotalService.save(activityTotal); } // 获取活动开始时间和结束时间 Date activityStartTime = mgtActivityEditDto.getActivityStartTime(); Date activityEndTime = mgtActivityEditDto.getActivityEndTime(); // 根据当前时间和活动时间判断活动状态 if (nowTime.compareTo(activityStartTime) < 0) { activity.setActivityStatus(0); } else if (nowTime.compareTo(activityStartTime) >= 0 && nowTime.compareTo(activityEndTime) <= 0) { activity.setActivityStatus(1); } else if (nowTime.compareTo(activityEndTime) > 0) { activity.setActivityStatus(2); } // 设置活动信息 activity.setActivityName(mgtActivityEditDto.getActivityName()); activity.setActivityStartTime(activityStartTime); activity.setActivityEndTime(activityEndTime); activity.setGroupBuyNumber(mgtActivityEditDto.getGroupBuyNumber()); activity.setPurchaseLimitationFlag(mgtActivityEditDto.getPurchaseLimitationFlag()); activity.setLimitNumber(mgtActivityEditDto.getLimitNumber()); activity.setPropagandaPoster(mgtActivityEditDto.getPropagandaPoster()); activity.setAreaFlag(mgtActivityEditDto.getAreaFlag()); activity.setDesignatedArea(mgtActivityEditDto.getDesignatedArea()); activity.setShopFlag(mgtActivityEditDto.getShopFlag()); activity.setApplicableShop(mgtActivityEditDto.getApplicableShop()); activity.setUpdateUserId(mgtActivityEditDto.getUserId()); activity.setUpdateTime(nowTime); activity.setRecommendFlag(mgtActivityEditDto.getRecommendFlag()); this.saveOrUpdate(activity); // 获取活动商品信息 List<MgtActivityGoodsEditDto> mgtActivityGoodsEditDtoList = mgtActivityEditDto.getMgtActivityGoodsEditDtoList(); // 如果活动商品信息不为空,则保存活动商品信息 if (!mgtActivityGoodsEditDtoList.isEmpty()) { List<ActivityGoods> activityGoodsList = mgtActivityGoodsEditDtoList.stream().map( dto -> { ActivityGoods activityGoods = new ActivityGoods(); activityGoods.setDelFlag(0); activityGoods.setGoodsId(dto.getGoodsId()); activityGoods.setActivityId(activity.getActivityId()); activityGoods.setActivityPrice(dto.getActivityPrice()); activityGoods.setActivitySubscription(dto.getActivitySubscription()); activityGoods.setActivityNumber(dto.getActivityNumber()); activityGoods.setActivityDeadline(activity.getActivityEndTime()); activityGoods.setSellOutFlag(0); return activityGoods; } ).collect(Collectors.toList()); if (!activityGoodsList.isEmpty()) { activityGoodsService.saveBatch(activityGoodsList); } } } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityTotalServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.goods.service.impl.activity; import com.ruoyi.goods.domain.pojo.activity.ActivityTotal; import com.ruoyi.goods.mapper.activity.ActivityTotalMapper; import com.ruoyi.goods.service.activity.ActivityTotalService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author jqs * @since 2023-06-14 */ @Service public class ActivityTotalServiceImpl extends ServiceImpl<ActivityTotalMapper, ActivityTotal> implements ActivityTotalService { } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityTotalMapper.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.goods.mapper.activity.ActivityTotalMapper"> </mapper> ruoyi-modules/ruoyi-member/pom.xml
@@ -100,7 +100,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> <!-- 小程序统一服务 --> ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
@@ -66,6 +66,9 @@ @ApiModelProperty(value = "关联类型1.用户管理筛选2.活动管理筛选") private Integer relationType; @ApiModelProperty(value = "关联活动类型1秒杀活动") private Integer relationActivityType; @ApiModelProperty(value = "关联活动id") private String relationActivityId; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
@@ -154,6 +154,12 @@ private Integer relationType; /** * 关联活动类型1.秒杀活动 */ @TableField("relation_activity_type") private Integer relationActivityType; /** * 关联活动id */ @TableField("relation_activity_id") ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java
@@ -1,9 +1,9 @@ package com.ruoyi.member.scheduler; import com.ruoyi.common.security.utils.SchedulerUtils; import com.ruoyi.member.service.coupon.CouponService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -15,7 +15,7 @@ public class MemberrScheduler { @Resource @Autowired private SchedulerUtils schedulerUtils; @Resource @@ -25,10 +25,11 @@ /** * 优惠券定时发送 */ @Scheduled(cron="0 0/5 * * * ?") @Scheduled(cron="0 0 0 * * ?") private void autoCheckNoPayOrder(){ if(schedulerUtils.getSchedulerRun()) { log.info("check no pay order scheduler task is running "); log.info("优惠券定时发放任务开始执行"); couponService.timingSendCoupon(); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/SchedulerUtils.java
File was renamed from ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SchedulerUtils.java @@ -1,4 +1,4 @@ package com.ruoyi.common.security.utils; package com.ruoyi.member.scheduler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -58,4 +58,13 @@ * @return void */ void deleteMgtCoupon(MgtBaseGetDto mgtBaseGetDto); /** * @description 定时发送优惠券 * @author jqs * @date 2023/6/14 9:40 * @param * @return void */ void timingSendCoupon(); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.member.service.impl.coupon; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; @@ -30,6 +31,7 @@ import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.service.RemoteActivityService; import com.ruoyi.system.api.service.RemoteGoodsService; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -246,6 +248,7 @@ coupon.setUpdateTime(new Date()); coupon.setUpdateUserId(mgtCouponEditDto.getUserId()); coupon.setRelationType(mgtCouponEditDto.getRelationType()); coupon.setRelationActivityType(mgtCouponEditDto.getRelationActivityType()); coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId()); //判断是否指定商品 if(coupon.getUseScope()==2&&!mgtCouponEditDto.getRelGoodsIdList().isEmpty()){ @@ -293,7 +296,8 @@ * @param relUserIdList * @return void */ private void sendCoupon(Coupon coupon,List<Long> relUserIdList){ @Async protected void sendCoupon(Coupon coupon, List<Long> relUserIdList){ //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 Date nowTime = new Date(); Integer sendType = coupon.getSendType(); @@ -302,9 +306,17 @@ userIdList = memberService.listIdBySendType(sendType); }else if(sendType == 5){ //关联类型1.用户管理筛选2.活动管理筛选 if(coupon.getRelationType()==1){ userIdList = remoteActivityService.listUserIdByActivityId(coupon.getRelationActivityId()).getData(); }else if(coupon.getRelationType()==2){ if(coupon.getRelationType()==2){ Integer relationActivityType = coupon.getRelationActivityType(); //关联活动类型1秒杀活动 switch(relationActivityType){ case 1: userIdList = remoteActivityService.listUserIdByActivityId(coupon.getRelationActivityId()).getData(); break; default: break; } }else if(coupon.getRelationType()==1){ userIdList = relUserIdList; } } @@ -373,4 +385,40 @@ coupon.setUpdateTime(new Date()); this.saveOrUpdate(coupon); } /** * @description 定时发送优惠券 * @author jqs * @date 2023/6/14 9:40 * @param * @return void */ @Override public void timingSendCoupon(){ LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Coupon::getDelFlag,0); queryWrapper.eq(Coupon::getCouponStatus,1); queryWrapper.eq(Coupon::getSendTimeType,2); queryWrapper.eq(Coupon::getAuditStatus,2); queryWrapper.eq(Coupon::getSendTime,new Date()); List<Coupon> couponList = couponMapper.selectList(queryWrapper); if(couponList!=null&&!couponList.isEmpty()){ List<CouponRelUser> couponRelUserList; List<Long> userIdList = new ArrayList<>(); for(Coupon coupon : couponList){ if(coupon.getSendType()==5&&coupon.getRelationType()==1){ couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId())); if(couponRelUserList!=null&&!couponRelUserList.isEmpty()){ userIdList = couponRelUserList.stream() .map(CouponRelUser::getUserId) .collect(Collectors.toList()); }else{ userIdList = new ArrayList<>(); } } //发送优惠券 sendCoupon(coupon, userIdList); } } } } ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -25,3 +25,4 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ruoyi-modules/ruoyi-order/pom.xml
@@ -99,7 +99,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> <dependency> <groupId>com.github.wechatpay-apiv3</groupId> ruoyi-modules/ruoyi-shop/pom.xml
@@ -99,7 +99,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowMemberTaskDto.java
@@ -4,7 +4,6 @@ import com.ruoyi.system.api.domain.dto.MerBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -28,7 +27,6 @@ private String callPhone; @ApiModelProperty("电话时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") private Date callTime; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtChangeCoopDto.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author jqs34 * @ClassName MGTChangeCooperDto @@ -18,9 +20,9 @@ private Long shopId; @ApiModelProperty("合作开始时间") private String coopStartTime; private Date coopStartTime; @ApiModelProperty("合作结束时间") private String coopEndTime; private Date coopEndTime; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFollowShopTaskDto.java
@@ -1,12 +1,8 @@ package com.ruoyi.shop.domain.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.system.api.domain.dto.MerBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** * @author jqs34 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -33,8 +33,6 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; @@ -275,28 +273,24 @@ @Override public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){ Shop shop = this.getById(mgtChangeCoopDto.getShopId()); String coopStartTime = mgtChangeCoopDto.getCoopStartTime(); String coopEndTime = mgtChangeCoopDto.getCoopEndTime(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date coopStartDate = simpleDateFormat.parse(coopStartTime); Date coopEndDate = simpleDateFormat.parse(coopEndTime); Date nowTime = new Date(); shop.setCooperationStartTime(coopStartDate); shop.setCooperationEndTime(coopEndDate); Boolean inTime = false; if(coopStartDate.compareTo(nowTime)<0&&coopEndDate.compareTo(nowTime)>0){ inTime = true; } if(shop.getShopStatus()==2&&inTime){ shop.setShopStatus(1); } shop.setUpdateTime(nowTime); shop.setUpdateUserId(mgtChangeCoopDto.getUserId()); this.saveOrUpdate(shop); } catch (ParseException e) { e.printStackTrace(); Date coopStartDate = mgtChangeCoopDto.getCoopStartTime(); Date coopEndDate = mgtChangeCoopDto.getCoopEndTime(); Date nowTime = new Date(); shop.setCooperationStartTime(coopStartDate); shop.setCooperationEndTime(coopEndDate); Boolean inTime = false; if(coopStartDate.compareTo(nowTime)<=0&&coopEndDate.compareTo(nowTime)>=0){ inTime = true; shop.setCooperativeFlag(1); }else{ shop.setCooperativeFlag(0); } if(shop.getShopStatus()==2&&inTime){ shop.setShopStatus(1); } shop.setUpdateTime(nowTime); shop.setUpdateUserId(mgtChangeCoopDto.getUserId()); this.saveOrUpdate(shop); } /** ruoyi-modules/ruoyi-system/pom.xml
@@ -99,7 +99,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generate</artifactId> <version>2.3</version> <version>2.3.3</version> </dependency> <dependency> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
@@ -44,7 +44,7 @@ DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL); dataSourceConfig.setTypeConvert(new MySqlTypeConvert()); dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_sys?tinyInt1isBit=false"); dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_goods?tinyInt1isBit=false"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("hrt123456"); @@ -53,7 +53,7 @@ // 包名配置 PackageConfig packageConfig = new PackageConfig(); // 父包和子包名分开处理 packageConfig.setParent("com.ruoyi.system"); packageConfig.setParent("com.ruoyi.goods"); packageConfig.setController("app"); packageConfig.setEntity("domain.pojo"); packageConfig.setMapper("mapper"); @@ -74,7 +74,7 @@ strategy.setControllerMappingHyphenStyle(true); //表和前缀处理 String[] table = { "t_sys_staff" "t_activity_total" }; strategy.setInclude(table); String[] tablePre = new String[]{"t_"}; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java
@@ -95,7 +95,6 @@ public void deleteMgtPop(MgtBaseGetDto mgtBaseGetDto){ Pop pop = this.getById(Long.valueOf(mgtBaseGetDto.getId())); pop.setDelFlag(1); pop.insertOrUpdate(); this.saveOrUpdate(pop); } } ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -25,3 +25,4 @@ # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}