小程序积分操作

master
382696293@qq.com 2 years ago
parent 7064af0c7c
commit 9b1b06deab

@ -113,6 +113,11 @@
<artifactId>swagger-annotations</artifactId>
</dependency>
<!-- Hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,26 @@
package com.flossom.common.core.constant;
public class IntegralChangTextConstants {
// 完善用户信息
public static final String COMPLETE_INFORMATION = "完善信息,获得奖励积分";
// 绑定仪器
public static final String BINDING_INSTRUMENT = "绑定成功,获得奖励积分";
// 日常打卡
public static final String DAILY_CLOCK = "打卡成功,获得奖励积分";
// 打卡活动打卡
public static final String CLOCK_ACTIVITY_CLOCK = "完成,获得奖励积分";
// 问卷活动打卡
public static final String QUESTIONNAIRE_ACTIVITY_CLOCK = "完成,获得奖励积分";
// 共创活动打卡
public static final String TOGETHER_ACTIVITY_CLOCK = "完成,获得奖励积分";
// 护理计划
public static final String NURSING_ACTIVITY_CLOCK = "完成,获得奖励积分";
}

@ -1,12 +0,0 @@
package com.flossom.common.core.constant;
/**
*
*/
public class ShuYunConstants {
/**
*
*/
public static final String POINT_SERIAL_NUMBER_PREFIX = "hz_serial_number-";
}

@ -1,19 +1,23 @@
package com.flossom.common.core.utils.uuid;
import cn.hutool.core.util.RandomUtil;
import com.flossom.common.core.utils.DateUtils;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* ID
*
* @author flossom
*/
public class IdUtils
{
public class IdUtils {
/**
* UUID
*
* @return UUID
*/
public static String randomUUID()
{
public static String randomUUID() {
return UUID.randomUUID().toString();
}
@ -22,8 +26,7 @@ public class IdUtils
*
* @return UUID线
*/
public static String simpleUUID()
{
public static String simpleUUID() {
return UUID.randomUUID().toString(true);
}
@ -32,8 +35,7 @@ public class IdUtils
*
* @return UUID
*/
public static String fastUUID()
{
public static String fastUUID() {
return UUID.fastUUID().toString();
}
@ -42,8 +44,16 @@ public class IdUtils
*
* @return UUID线
*/
public static String fastSimpleUUID()
{
public static String fastSimpleUUID() {
return UUID.fastUUID().toString(true);
}
/**
*
*
* @return
*/
public static String generateSequence() {
return "hz_serial_number-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYYMMDDHHMMSSS)) + RandomUtil.randomInt(1000, 9999);
}
}

@ -110,11 +110,6 @@
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar</systemPath>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies>
<build>

@ -1,14 +1,20 @@
package com.flossom.miniProgram.service.impl;
import com.flossom.common.core.constant.IntegralChangTextConstants;
import com.flossom.common.core.domain.entity.*;
import com.flossom.common.core.domain.req.WxClockLogReq;
import com.flossom.common.core.domain.ret.WxClockLogRet;
import com.flossom.common.core.domain.shuyun.ShuYunPointChange;
import com.flossom.common.core.enums.IntegralChangeTypeEnum;
import com.flossom.common.core.enums.ShuYunPointSourceEnum;
import com.flossom.common.core.enums.Status;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.uuid.IdUtils;
import com.flossom.common.security.utils.SecurityUtils;
import com.flossom.miniProgram.service.IWxClockLogService;
import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils;
import com.flossom.miniProgram.utils.shuyun.ShuYunConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -23,6 +29,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@ -63,6 +70,9 @@ public class WxClockLogServiceImpl implements IWxClockLogService {
@Value("${rank.clock.redisKey}")
private String CLOCK_RANK_REDIS_KEY;
@Autowired
private ShuYunConfig shuYunConfig;
@Override
@Transactional
@ -77,10 +87,13 @@ public class WxClockLogServiceImpl implements IWxClockLogService {
queryClockLog.getParams().put("endTime", LocalDateTime.of(now.toLocalDate(), LocalTime.MAX));
List<WxClockLog> wxClockLogList = wxClockLogMapper.selectWxClockLogList(queryClockLog);
WxClockLog wxClockLog = new WxClockLog();
Boolean isFirstClock = false;
Integer firstClockCredit = 0;
if (wxClockLogList != null && wxClockLogList.size() == 1) {
// 打卡记录一天只有一条
wxClockLog.setId(wxClockLogList.get(0).getId());
} else {
isFirstClock = true;
IntegralClock integralClock = integralClockMapper.selectIntegralClockById(1L);
// 日常奖励加分
Long credit = integralClock.getDailyClockCredit();
@ -93,6 +106,7 @@ public class WxClockLogServiceImpl implements IWxClockLogService {
}
}
if (credit != null && credit != 0) {
firstClockCredit = credit.intValue();
// 增加积分
WxUserMember query = wxUserMemberMapper.selectWxUserMemberById(wxUserMember.getId());
WxUserMember updateEntity = new WxUserMember();
@ -113,11 +127,6 @@ public class WxClockLogServiceImpl implements IWxClockLogService {
wxUserIntegralLog.setCreateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname());
wxUserIntegralLog.setCreateTime(DateUtils.getNowDate());
wxUserIntegralLogMapper.insertWxUserIntegralLog(wxUserIntegralLog);
/**
* TODO
*/
}
}
wxClockLog.setClockContent(wxClockLogReq.getClockContent());
@ -200,6 +209,16 @@ public class WxClockLogServiceImpl implements IWxClockLogService {
wxClockImgMapper.insertWxClockImg(wxClockImg);
}
}
if (isFirstClock && firstClockCredit != null && firstClockCredit > 0) {
/**
* TODO
*/
ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(),
IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), firstClockCredit,
LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.DAILY_CLOCK);
ShuYunApiUtils.pointChange(shuYunPointChange);
}
}
@Override

@ -1,17 +1,22 @@
package com.flossom.miniProgram.service.impl;
import com.alibaba.fastjson.JSON;
import com.flossom.common.core.constant.IntegralChangTextConstants;
import com.flossom.common.core.domain.entity.*;
import com.flossom.common.core.domain.ret.WxBindingInstrumentInfo;
import com.flossom.common.core.domain.ret.WxModeRet;
import com.flossom.common.core.domain.shuyun.ShuYunPointChange;
import com.flossom.common.core.enums.*;
import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.exception.ServiceReturnCodeException;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils;
import com.flossom.common.core.utils.uuid.IdUtils;
import com.flossom.common.security.utils.SecurityUtils;
import com.flossom.miniProgram.service.IWxInstrumentService;
import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils;
import com.flossom.miniProgram.utils.shuyun.ShuYunConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -27,6 +32,7 @@ import java.time.Instant;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.util.*;
import java.util.stream.Collectors;
@ -90,6 +96,9 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
@Autowired
private WxModeGearMapper wxModeGearMapper;
@Autowired
private ShuYunConfig shuYunConfig;
@Override
public List<WxInstrument> bindingInstrumentList() {
/* 绑定了的仪器 不受 "可见小程序标签/可见外部标签" 影响, 去除仪器隐藏的 */
@ -318,8 +327,12 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
logger.info("绑定成功,序列号:{}用户ID{},用户名:{}", serial, wxUserMember.getId(), wxUserMember.getNickname());
/**
* TODO:
* TODO:
*/
ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(),
IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), wxInstrument.getBindingCredit(),
LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), wxInstrument.getName() + IntegralChangTextConstants.BINDING_INSTRUMENT);
ShuYunApiUtils.pointChange(shuYunPointChange);
}
}
}
@ -457,7 +470,7 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
BeanUtils.copyProperties(wxMode, wxModeRet);
if (wxMode.getInstrumentType() == 2) {
// IOT仪器才可以设置模式时长
if(wxMode.getModeTime() != null) {
if (wxMode.getModeTime() != null) {
wxModeRet.setModeTime(LocalTime.ofSecondOfDay(wxMode.getModeTime()));
}
}

@ -1,10 +1,9 @@
package com.flossom.miniProgram.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSON;
import com.flossom.common.core.constant.CacheConstants;
import com.flossom.common.core.constant.HttpStatus;
import com.flossom.common.core.constant.ShuYunConstants;
import com.flossom.common.core.constant.IntegralChangTextConstants;
import com.flossom.common.core.constant.UserConstants;
import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.entity.*;
@ -18,6 +17,7 @@ import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils;
import com.flossom.common.core.utils.uuid.IdUtils;
import com.flossom.common.redis.service.RedisService;
import com.flossom.common.security.utils.SecurityUtils;
import com.flossom.miniProgram.domain.vo.*;
@ -36,9 +36,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@ -265,10 +263,9 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
loginUserVo.setIntegralText("您已完善个人信息,获得" + integralGlobal.getIntegral().intValue() + "积分");
// TODO 3、首次完善通知数云增加积分 (已完成,未保存记录)
// 2、完善会员信息增加积分
String sequence = ShuYunConstants.POINT_SERIAL_NUMBER_PREFIX + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYYMMDDHHMMSSS)) + RandomUtil.randomInt(1000, 9999);
ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(),
sequence, ShuYunPointSourceEnum.OTHER.getSource(), integralGlobal.getIntegral().intValue(),
LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), "首次完善用户信息");
IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), integralGlobal.getIntegral().intValue(),
LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.COMPLETE_INFORMATION);
ShuYunApiUtils.pointChange(shuYunPointChange);
}
return loginUserVo;

@ -108,11 +108,6 @@
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar</systemPath>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies>
<build>

Loading…
Cancel
Save