ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
@@ -54,6 +54,8 @@ @TableField("create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime createTime; @TableField(exist = false) private Integer continueDays; } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
@@ -91,6 +91,9 @@ @TableField(exist = false) private Integer type; @TableField(exist = false) private TVip vip; } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java
New file @@ -0,0 +1,156 @@ package com.ruoyi.account.api.model; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.web.domain.BasePojo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; /** * <p> * * </p> * * @author 无关风月 * @since 2024-08-06 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("t_vip") @ApiModel(value="TVip对象", description="") public class TVip extends BasePojo { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "会员名称") @TableField("name") private String name; @ApiModelProperty(value = "前端是否显示(0=否,1=是)") @TableField("reveal") private Integer reveal; @ApiModelProperty(value = "月卡价格") @TableField("monthly_card") private BigDecimal monthlyCard; @ApiModelProperty(value = "月卡显示(0=否,1=是)") @TableField("monthly_card_reveal") private Integer monthlyCardReveal; @ApiModelProperty(value = "月卡折扣") @TableField("monthly_card_discount") private BigDecimal monthlyCardDiscount; @ApiModelProperty(value = "月卡折扣开始时间") @TableField("monthly_card_discount_start") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime monthlyCardDiscountStart; @ApiModelProperty(value = "月卡折扣结束时间") @TableField("monthly_card_discount_end") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime monthlyCardDiscountEnd; @ApiModelProperty(value = "月卡折扣显示(0=否,1=是)") @TableField("monthly_card_discount_reveal") private Integer monthlyCardDiscountReveal; @ApiModelProperty(value = "季卡价格") @TableField("season_card") private BigDecimal seasonCard; @ApiModelProperty(value = "季卡显示(0=否,1=是)") @TableField("season_card_reveal") private Integer seasonCardReveal; @ApiModelProperty(value = "季卡折扣") @TableField("season_card_discount") private BigDecimal seasonCardDiscount; @ApiModelProperty(value = "季卡折扣开始时间") @TableField("season_card_discount_start") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime seasonCardDiscountStart; @ApiModelProperty(value = "季卡折扣结束时间") @TableField("season_card_discount_end") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime seasonCardDiscountEnd; @ApiModelProperty(value = "季卡折扣显示(0=否,1=是)") @TableField("season_card_discount_reveal") private Integer seasonCardDiscountReveal; @ApiModelProperty(value = "年卡价格") @TableField("annual_card") private BigDecimal annualCard; @ApiModelProperty(value = "年卡显示(0=否,1=是)") @TableField("annual_card_reveal") private Integer annualCardReveal; @ApiModelProperty(value = "年卡折扣") @TableField("annual_card_discount") private BigDecimal annualCardDiscount; @ApiModelProperty(value = "年卡折扣开始时间") @TableField("annual_card_discount_start") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime annualCardDiscountStart; @ApiModelProperty(value = "年卡折扣结束时间") @TableField("annual_card_discount_end") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime annualCardDiscountEnd; @ApiModelProperty(value = "年卡折扣显示(0=否,1=是)") @TableField("annual_card_discount_reveal") private Integer annualCardDiscountReveal; @ApiModelProperty(value = "折扣次数") @TableField("discount_times") private Integer discountTimes; @ApiModelProperty(value = "最高抵扣金额") @TableField("maximum_deduction") private BigDecimal maximumDeduction; @ApiModelProperty(value = "抵扣类型(1=服务费)") @TableField("deduction_type") private Integer deductionType; @ApiModelProperty(value = "优惠券[{\"id\":1,\"number\":1}]") @TableField("coupon") private String coupon; @ApiModelProperty(value = "双倍积分开关(0=否,1=是)") @TableField("double_integration") private Integer doubleIntegration; @ApiModelProperty(value = "商城专享价开关(0=否,1=是)") @TableField("mall_exclusive_price") private Integer mallExclusivePrice; @ApiModelProperty(value = "内部会员折扣") @TableField("discount") private BigDecimal discount; @ApiModelProperty(value = "添加的会员类型 1常规 2内部") @TableField("type") private Integer type; @ApiModelProperty(value = "优惠券名称和张数 后台列表展示使用") @TableField(exist = false) private String couponName; } ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
@@ -48,5 +48,5 @@ R<UploadRealTimeMonitoringPageData> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery); @PostMapping("/uploadRealTimeMonitoringData/delete") R delete(@RequestParam String id); R delete(@RequestParam("id") String id); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -40,6 +40,7 @@ import com.ruoyi.order.api.model.TGrantVip; import com.ruoyi.other.api.domain.*; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.OtherClient; @@ -705,7 +706,7 @@ @ApiOperation(value = "优惠卷详情(1可使用2不可用)", tags = {"小程序-个人中心"}) @GetMapping(value = "/user/coupon/getById") @PostMapping(value = "/user/coupon/getById") public R<TAppCoupon> couponGetById(@RequestParam("id")Long id) { TAppCoupon appCoupon = appCouponService.getById(id); appCoupon.setUid(id.toString()); @@ -964,6 +965,10 @@ .eq(TAppUserSign::getAppUserId, userId) .orderByDesc(TAppUserSign::getSignDay) .list(); for (TAppUserSign signRecord : signRecords) { int i = signDayUtil.calculateContinuousSignDays1(signRecord.getAppUserId(), signRecord.getSignDay()); signRecord.setContinueDays(i); } return R.ok(signRecords); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.account.api.dto.SendCouponDto; import com.ruoyi.account.api.model.TAppUserVipDetail; import com.ruoyi.account.api.model.TVip; import com.ruoyi.account.api.vo.GetAppUserVipDetail; import com.ruoyi.account.service.TAppUserVipDetailService; import com.ruoyi.account.util.VipInfoDto; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.dto.VipCouponDto; import com.ruoyi.other.api.feignClient.OtherClient; import com.ruoyi.other.api.feignClient.VipClient; @@ -67,6 +67,7 @@ // TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData(); tAppUserVipDetail.setVipName(tVip.getName()); tAppUserVipDetail.setType(tVip.getType()); tAppUserVipDetail.setVip(tVip); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
@@ -4,7 +4,9 @@ import cn.hutool.core.date.DateUtil; import com.ruoyi.account.api.model.TAppUserSign; import com.ruoyi.account.service.TAppUserSignService; import org.springframework.cglib.core.Local; import org.springframework.stereotype.Component; import sun.rmi.server.LoaderHandler; import javax.annotation.Resource; import java.time.LocalDate; @@ -48,6 +50,31 @@ return calculateMaxContinuousSignDays(signDays); } public int calculateContinuousSignDays1(Long userId, LocalDate date) { DateTime startOfMonth = DateUtil.beginOfMonth(new Date()); // DateTime endOfMonth = DateUtil.endOfMonth(new Date()); // 获取用户的所有签到记录 List<TAppUserSign> signRecords = signService.lambdaQuery() .between(TAppUserSign::getSignDay, startOfMonth, date) .eq(TAppUserSign::getAppUserId, userId) .orderByDesc(TAppUserSign::getSignDay) .list(); // 如果没有签到记录,则返回0 if (signRecords.isEmpty()) { return 0; } // 将签到日期转换为 LocalDate 列表,并按照日期排序 List<LocalDate> signDays = signRecords.stream() .map(TAppUserSign::getSignDay) .sorted() .collect(Collectors.toList()); // 计算连续签到的最大天数 return calculateMaxContinuousSignDays(signDays); } /** * 根据签到日期列表计算连续签到的最大天数 * @param signDays 签到日期列表 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -842,7 +842,7 @@ @ResponseBody @PostMapping(value = "/watch/delete") @GetMapping(value = "/watch/deletes") @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"}) public R watchChargingOrder(@RequestParam String id) { uploadRealTimeMonitoringDataClient.delete(id); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -351,7 +351,7 @@ //调起支付 PaymentOrder paymentOrder = new PaymentOrder(); paymentOrder.setCode(shopOrder.getCode()); paymentOrder.setAmount(exchangeDto.getOrderPrice()); paymentOrder.setAmount(exchangeDto.getPayPrice()); paymentOrder.setOpenId(user.getWxOpenid()); paymentOrder.setDescription("购买商品"); R<Map<String, Object>> mapR = wxPaymentClient.orderPay(paymentOrder);