From d53c16a12e612a95dc8f6fb248e3669cbc441eb4 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 17 十二月 2024 16:48:41 +0800
Subject: [PATCH] 新增加商品特价接口
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 123 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 114 insertions(+), 9 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 2a8e295..a58ae1f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -3,14 +3,18 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
@@ -29,13 +33,16 @@
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import org.apache.logging.log4j.core.util.UuidUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
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,13 +90,13 @@
@Value("${file.upload.accessPath}")
private String accessPath;
-
-
-
-
-
-
-
+
+ @Resource
+ private UserPointService userPointService;
+ @Autowired
+ private AppUserMapper appUserMapper;
+
+
/**
* 小程序一键登录
* @param appletLogin
@@ -299,8 +306,14 @@
if (pointSetting == null){
throw new RuntimeException("积分设置不存在");
}
- appUser.setLavePoint(pointSetting.getGetRegisPoint());
- appUser.setTotalPoint(0);
+ Integer getRegisPoint = pointSetting.getGetRegisPoint();
+ Integer getRegisPoint1 = getRegisPoint;
+ //计算可用积分比例
+ if(1 == pointSetting.getGetRegisPointOpen()){
+ getRegisPoint1 = getRegisPoint1 * (100 - pointSetting.getGetRegisPoint());
+ }
+ appUser.setLavePoint(getRegisPoint1);
+ appUser.setTotalPoint(getRegisPoint);
//根据平台的配置未达标,则标注为可修改推广人
appUser.setChangePromoter(0);
appUser.setLongitude(registerAccount.getLongitude());
@@ -313,6 +326,18 @@
// appUser.setDistrict();
// appUser.setDistrictCode();
this.save(appUser);
+ //增加积分变动记录
+ if(getRegisPoint1 > 0){
+ //构建积分流水记录
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(10);
+ userPoint.setHistoricalPoint(0);
+ userPoint.setVariablePoint(getRegisPoint1);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(appUser.getId());
+ userPointService.save(userPoint);
+ }
//获取微信推广二维码
String fileName = UUID.randomUUID() + ".jpg";
weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.DEVELOP, filePath + fileName);
@@ -369,6 +394,28 @@
*/
public void vipUpgrade(Long id){
AppUser appUser = this.getById(id);
+ Integer lavePoint = appUser.getLavePoint();
+ //计算积分
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ Integer newPoint = pointSetting.getNewPoint();
+ Integer newPoint1 = newPoint;
+ if(null != pointSetting && 1 == pointSetting.getGetNewPointOpen()){
+ newPoint1 = newPoint1 * (100 - pointSetting.getGetNewPoint());
+ }
+ appUser.setLavePoint(appUser.getLavePoint() + newPoint1);
+ appUser.setTotalPoint(appUser.getTotalPoint() + newPoint);
+ //记录积分变动
+ if(newPoint1 > 0){
+ //构建积分流水记录
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(3);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(newPoint1);
+ userPoint.setBalance(appUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(appUser.getId());
+ userPointService.save(userPoint);
+ }
Integer vipId = appUser.getVipId();
//钻石会员
VipSetting vipSetting3 = vipSettingClient.getVipSetting(3).getData();
@@ -564,4 +611,62 @@
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();
+ int hourPoint1 = hourPoint;
+ if(1 == pointSetting.getWorkPointOpen()){
+ hourPoint1 = hourPoint1 * (100 - pointSetting.getWorkPoint());
+ }
+ Integer lavePoint = appUser.getLavePoint();
+ appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
+ appUser.setLavePoint(appUser.getLavePoint() + hourPoint1);
+ 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);
+ }
+ }
+ }
+
+ @Override
+ public IPage<AppUser> getAppuserPage(Integer pageNum, Integer pageSize, AppUser appUser) {
+ if (StringUtils.isNotEmpty(appUser.getShopName())){
+ R<Set<Integer>> shopR = shopClient.getShopIdByName(appUser.getShopName());
+ if (R.isSuccess(shopR)){
+ Set<Integer> shopIds = shopR.getData();
+ if (!CollectionUtils.isEmpty(shopIds)){
+ appUser.setShopIds(shopIds);
+ }
+ }
+ }
+ return appUserMapper.getAppuserPage(new Page<>(pageNum, pageSize), appUser);
+ }
}
--
Gitblit v1.7.1