ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPoint.java
@@ -44,6 +44,10 @@ @TableField("variable_point") private BigDecimal variablePoint; @ApiModelProperty(value = "变动后余额") @TableField("balance") private BigDecimal balance; @ApiModelProperty(value = "变动时间") @TableField("create_time") private LocalDateTime createTime; ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -6,6 +6,7 @@ import com.ruoyi.account.vo.UserPointVO; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.utils.SecurityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -18,6 +19,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; /** * <p> @@ -49,11 +51,13 @@ */ @GetMapping("/getUserPointDetail") @ApiOperation("获取变更明细") public R<UserPointDetailVO> getUserPointDetail(@ApiParam("指定日期") LocalDateTime date, @ApiParam("变动类型(1=消费积分,2=返佣积分,3=拉新人积分,4=兑换商品 " + public TableDataInfo getUserPointDetail(@ApiParam("指定日期") LocalDateTime date, @ApiParam("变动类型(1=消费积分,2=返佣积分,3=拉新人积分,4=兑换商品 " + "5 = 门店业绩积分 6 =门店返佣积分7=技师业绩积分8 =转赠积分 9 =做工积分 " + "10 =注册积分)") Integer type){ return R.ok(); startPage(); List<UserPointDetailVO> list = userPointService.getUserPointDetail(SecurityUtils.getUserId(), date, type); return getDataTable(list); } /** ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/PointChangeType.java
New file @@ -0,0 +1,34 @@ package com.ruoyi.account.enums; import lombok.Getter; @Getter public enum PointChangeType { CONSUME(1, "消费积分"), COMMISSION_RETURN(2, "返佣积分"), NEW_USER_REFERRAL(3, "拉新人积分"), EXCHANGE_GOODS(4, "兑换商品"), STORE_PERFORMANCE(5, "门店业绩积分"), STORE_COMMISSION_RETURN(6, "门店返佣积分"), TECHNICIAN_PERFORMANCE(7, "技师业绩积分"), TRANSFER_POINTS(8, "转赠积分"), WORK_PERFORMANCE(9, "做工积分"), REGISTRATION(10, "注册积分"); private final int code; private final String description; PointChangeType(int code, String description) { this.code = code; this.description = description; } public static PointChangeType fromCode(int code) { for (PointChangeType type : values()) { if (type.getCode() == code) { return type; } } throw new IllegalArgumentException("Invalid code: " + code); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/enums/WithdrawalAuditStatus.java
File was renamed from ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/WithdrawalAuditStatus.java @@ -1,4 +1,4 @@ package com.ruoyi.account; package com.ruoyi.account.enums; import lombok.Getter; ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java
@@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.account.api.model.UserPoint; import com.ruoyi.account.vo.UserPointDetailVO; import com.ruoyi.account.vo.UserPointVO; import java.time.LocalDateTime; import java.util.List; /** * <p> @@ -15,4 +19,7 @@ public interface UserPointService extends IService<UserPoint> { UserPointVO getUserPoint(Long userId); List<UserPointDetailVO> getUserPointDetail(Long userId, LocalDateTime date, Integer type); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -1,15 +1,29 @@ package com.ruoyi.account.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.mapper.UserPointMapper; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.UserPoint; import com.ruoyi.account.enums.PointChangeType; import com.ruoyi.account.mapper.UserPointMapper; import com.ruoyi.account.service.UserPointService; import com.ruoyi.account.vo.UserPointDetailVO; import com.ruoyi.account.vo.UserPointVO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * <p> * 服务实现类 * 服务实现类 * </p> * * @author luodangjia @@ -17,10 +31,42 @@ */ @Service public class UserPointServiceImpl extends ServiceImpl<UserPointMapper, UserPoint> implements UserPointService { @Resource private AppUserClient appUserClient; @Override public UserPointVO getUserPoint(Long userId) { // TODO 待实现 return null; AppUser appUser = appUserClient.getAppUserById(userId); List<UserPoint> userPointList = list(new LambdaQueryWrapper<UserPoint>() .eq(UserPoint::getAppUserId, userId)); Map<Integer, BigDecimal> userBalanceMap = userPointList.stream() .collect(Collectors.toMap(UserPoint::getType, UserPoint::getBalance)); BigDecimal lavePoint = appUser.getLavePoint(); UserPointVO userPointVO = new UserPointVO(); userPointVO.setTotalPoint(lavePoint); userPointVO.setShopPoint(userBalanceMap.get(PointChangeType.CONSUME.getCode())); userPointVO.setSharePoint(userBalanceMap.get(PointChangeType.COMMISSION_RETURN.getCode())); userPointVO.setPullNewPoint(userBalanceMap.get(PointChangeType.NEW_USER_REFERRAL.getCode())); userPointVO.setShopAchievementPoint(userBalanceMap.get(PointChangeType.STORE_PERFORMANCE.getCode())); userPointVO.setShopSharePoint(userBalanceMap.get(PointChangeType.STORE_COMMISSION_RETURN.getCode())); return userPointVO; } @Override public List<UserPointDetailVO> getUserPointDetail(Long userId, LocalDateTime date, Integer type) { List<UserPoint> userPointList = list(new LambdaQueryWrapper<UserPoint>() .eq(UserPoint::getAppUserId, userId)); if (CollectionUtil.isNotEmpty(userPointList)) { return userPointList.stream().map(p -> { UserPointDetailVO userPointDetailVO = new UserPointDetailVO(); userPointDetailVO.setType(p.getType()); userPointDetailVO.setVariablePoint(p.getVariablePoint()); userPointDetailVO.setCreateTime(p.getCreateTime()); return userPointDetailVO; }).collect(Collectors.toList()); } return Collections.emptyList(); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
@@ -1,7 +1,7 @@ package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.account.WithdrawalAuditStatus; import com.ruoyi.account.enums.WithdrawalAuditStatus; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.WithdrawalRequests; import com.ruoyi.account.service.AppUserService; ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointVO.java
@@ -12,7 +12,7 @@ public class UserPointVO { @ApiModelProperty(value = "总积分") private Integer totalPoint; private BigDecimal totalPoint; @ApiModelProperty(value = "消费积分数") private BigDecimal shopPoint; ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
@@ -21,4 +21,6 @@ OrderDetailVO getOrderDetail(Long orderId); boolean check(String orderNumber, Long shopId); void writeOff(String code); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -121,4 +121,9 @@ .eq(Order::getShopId, shopId)); return order != null; } @Override public void writeOff(String code) { } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -11,6 +11,8 @@ import com.ruoyi.other.api.vo.GetSeckillActivityInfo; import com.ruoyi.other.service.GoodsSeckillService; import com.ruoyi.other.service.SeckillActivityInfoService; import com.ruoyi.other.vo.SeckillActivityDetailVO; import com.ruoyi.other.vo.SeckillActivityVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @@ -49,10 +51,10 @@ */ @GetMapping("/list") @ApiOperation(value = "秒杀活动列表",tags = {"小程序-商城-首页-秒杀活动列表"}) public AjaxResult list(Goods goods) public R<List<SeckillActivityVO>> list(Goods goods) { startPage(); return AjaxResult.success(seckillActivityInfoService.listSeckillActivity(goods)); return R.ok(seckillActivityInfoService.listSeckillActivity(goods)); } /** @@ -60,16 +62,14 @@ */ @GetMapping("/detail/{id}") @ApiOperation(value = "秒杀活动详情", tags = {"小程序-商城-首页-秒杀活动列表-秒杀活动详情"}) public AjaxResult detail(@PathVariable("id") Integer id) public R<SeckillActivityDetailVO> detail(@PathVariable("id") Integer id) { return AjaxResult.success(seckillActivityInfoService.detail(id)); return R.ok(seckillActivityInfoService.detail(id)); } /** * 根据商品id和会员等级获取对应的秒杀活动 * @param info * @return */ @PostMapping("/getSeckillActivityInfo") public R<GoodsSeckill> getSeckillActivityInfo(@RequestBody GetSeckillActivityInfo info){