phpcjl
2024-12-10 4ad0fc5f949708ee4dbd56c0db74673e8dc8040a
Merge remote-tracking branch 'origin/master'
6个文件已修改
71 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java
@@ -45,9 +45,9 @@
    @TableField("red_amount")
    private BigDecimal redAmount;
    @ApiModelProperty(value = "红包金额")
    @ApiModelProperty(value = "积分")
    @TableField("point")
    private BigDecimal point;
    private Integer point;
    @ApiModelProperty(value = "删除(0=否,1=是)")
    @TableField("del_flag")
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -322,6 +322,14 @@
    }
    @ResponseBody
    @PostMapping("/onlineRecord")
    @ApiOperation(value = "10分钟定时任务调用,记录用户在线时长", tags = {"小程序-个人中心首页"})
    public R onlineRecord(){
        appUserService.onlineRecord();
        return R.ok();
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
@@ -60,7 +60,7 @@
        if (pointSetting.getData() != null) {
            userSignRecord.setPoint(pointSetting.getData().getSignPoint());
        }else {
            userSignRecord.setPoint(BigDecimal.ZERO);
            userSignRecord.setPoint(0);
        }
        R<BigDecimal> bigDecimalR = systemConfigClient.redPackegeSet();
        userSignRecord.setRedAmount(bigDecimalR.getData());
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java
@@ -7,6 +7,6 @@
@Data
public class SignBackRDto {
    private BigDecimal point;
    private Integer point;
    private BigDecimal redAmount;
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
@@ -73,4 +73,10 @@
     * 解绑推广人
     */
    void unbindThePromoter();
    /**
     * 在线记录操作,用于赠送积分
     */
    void onlineRecord();
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -6,11 +6,13 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.AppUserShop;
import com.ruoyi.account.api.model.UserChangeLog;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.mapper.AppUserMapper;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.AppUserShopService;
import com.ruoyi.account.service.UserChangeLogService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.account.util.weChat.EnvVersion;
import com.ruoyi.account.util.weChat.WXCore;
import com.ruoyi.account.util.weChat.WeChatUtil;
@@ -36,6 +38,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation.ANONYMOUS.optional;
@@ -83,6 +86,12 @@
    
    @Value("${file.upload.accessPath}")
    private String accessPath;
    @Resource
    private PointSettingClient pointSettingClient;
    @Resource
    private UserPointService userPointService;
    
    
    
@@ -564,4 +573,44 @@
            this.updateById(appUser);
        }
    }
    /**
     * 在线记录操作,用于赠送积分
     */
    @Override
    public void onlineRecord() {
        Long userid = tokenService.getLoginUserApplet().getUserid();
        Object cacheObject = redisService.getCacheObject("ONLINE_" + userid);
        if(null == cacheObject){
            redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
        }else{
            Long duration = (Long) cacheObject;
            duration += 10;
            //满足一个小时,开始发放积分,计时归0
            if(60 >= duration){
                redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
                AppUser appUser = this.getById(userid);
                PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                if(null != pointSetting){
                    int hourPoint = pointSetting.getHourPoint().intValue();
                    Integer lavePoint = appUser.getLavePoint();
                    appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
                    appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
                    this.updateById(appUser);
                    //添加积分变动记录
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(9);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(hourPoint);
                    userPoint.setBalance(appUser.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser.getId());
                    userPointService.save(userPoint);
                }
            }else{
                redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES);
            }
        }
    }
}