小程序积分操作

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

@ -113,6 +113,11 @@
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
</dependency> </dependency>
<!-- Hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </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; 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 * ID
* *
* @author flossom * @author flossom
*/ */
public class IdUtils public class IdUtils {
{
/** /**
* UUID * UUID
* *
* @return UUID * @return UUID
*/ */
public static String randomUUID() public static String randomUUID() {
{
return UUID.randomUUID().toString(); return UUID.randomUUID().toString();
} }
@ -22,8 +26,7 @@ public class IdUtils
* *
* @return UUID线 * @return UUID线
*/ */
public static String simpleUUID() public static String simpleUUID() {
{
return UUID.randomUUID().toString(true); return UUID.randomUUID().toString(true);
} }
@ -32,8 +35,7 @@ public class IdUtils
* *
* @return UUID * @return UUID
*/ */
public static String fastUUID() public static String fastUUID() {
{
return UUID.fastUUID().toString(); return UUID.fastUUID().toString();
} }
@ -42,8 +44,16 @@ public class IdUtils
* *
* @return UUID线 * @return UUID线
*/ */
public static String fastSimpleUUID() public static String fastSimpleUUID() {
{
return UUID.fastUUID().toString(true); 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> <scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar</systemPath> <systemPath>${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar</systemPath>
</dependency> </dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

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

@ -1,17 +1,22 @@
package com.flossom.miniProgram.service.impl; package com.flossom.miniProgram.service.impl;
import com.alibaba.fastjson.JSON; 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.entity.*;
import com.flossom.common.core.domain.ret.WxBindingInstrumentInfo; import com.flossom.common.core.domain.ret.WxBindingInstrumentInfo;
import com.flossom.common.core.domain.ret.WxModeRet; 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.enums.*;
import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.exception.ServiceReturnCodeException; import com.flossom.common.core.exception.ServiceReturnCodeException;
import com.flossom.common.core.mapper.*; import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils; 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.common.security.utils.SecurityUtils;
import com.flossom.miniProgram.service.IWxInstrumentService; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -27,6 +32,7 @@ import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField; import java.time.temporal.ChronoField;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -90,6 +96,9 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
@Autowired @Autowired
private WxModeGearMapper wxModeGearMapper; private WxModeGearMapper wxModeGearMapper;
@Autowired
private ShuYunConfig shuYunConfig;
@Override @Override
public List<WxInstrument> bindingInstrumentList() { public List<WxInstrument> bindingInstrumentList() {
/* 绑定了的仪器 不受 "可见小程序标签/可见外部标签" 影响, 去除仪器隐藏的 */ /* 绑定了的仪器 不受 "可见小程序标签/可见外部标签" 影响, 去除仪器隐藏的 */
@ -318,8 +327,12 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService {
logger.info("绑定成功,序列号:{}用户ID{},用户名:{}", serial, wxUserMember.getId(), wxUserMember.getNickname()); 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);
} }
} }
} }

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

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

Loading…
Cancel
Save