From 5c771bc90ab0ad629cc7d61fe6162603c8ce6e68 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 25 Jan 2021 18:06:54 +0800 Subject: [PATCH] qiandao --- ...50001__user_sign_update_wx_score_rules.sql | 8 ++ .../WxCUserBasicSignController.java | 82 ++++++++++++++++++- .../controller/WxUserGrantController.java | 2 +- .../java/com/iformall/common/ErrorCode.java | 1 + .../com/iformall/domain/po/WxScoreRules.java | 8 +- .../com/iformall/enums/EnumScoreType.java | 7 +- .../mapper/WxCreditHistoryMapper.java | 2 + .../service/WxCUserBasicSignService.java | 7 +- .../service/WxCreditHistoryService.java | 1 + .../impl/WxCUserBasicSignServiceImpl.java | 74 +++++++++++++++-- .../service/impl/WxCUserServiceImpl.java | 16 ++-- .../impl/WxCreditHistoryServiceImpl.java | 38 ++++++++- .../mapper/WxCreditHistoryMapper.xml | 12 +++ 13 files changed, 236 insertions(+), 22 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202101250001__user_sign_update_wx_score_rules.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101250001__user_sign_update_wx_score_rules.sql b/mallinkAdmin/src/main/resources/db/migration/V202101250001__user_sign_update_wx_score_rules.sql new file mode 100644 index 000000000..fa4bfb043 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101250001__user_sign_update_wx_score_rules.sql @@ -0,0 +1,8 @@ +update wx_score_rules set rules = concat(SUBSTRING(rules,1,char_length(rules)-1), +",{\"id\": 17, \"desc\": \"每日签到\", \"step\": 1, \"limit\": 1, \"score\": 0}", +",{\"id\": 18, \"desc\": \"连续签到7天\", \"step\": 1, \"limit\": 1, \"score\": 0}", +",{\"id\": 19, \"desc\": \"连续签到14天\", \"step\": 1, \"limit\": 1, \"score\": 0}", +",{\"id\": 20, \"desc\": \"连续签到28天\", \"step\": 1, \"limit\": 1, \"score\": 0}", +RIGHT(rules,1)) where type = 2 + +--type=2 积分规则,每日登陆去掉-- 缓存--缓存--缓存 \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java index ba7ca0a2c..9951397fd 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java @@ -4,8 +4,11 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUserBasicSign; +import com.iformall.domain.po.WxCreditHistory; +import com.iformall.enums.EnumScoreType; import com.iformall.exception.MallinkException; import com.iformall.service.WxCUserBasicSignService; +import com.iformall.service.WxCreditHistoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -15,6 +18,9 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; +import java.util.Map; + @RestController @RequestMapping("/api/userSign") @Api(description = "签到接口") @@ -41,7 +47,8 @@ public class WxCUserBasicSignController extends BaseController { } catch (MallinkException me) { return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } - wxCUserBasicSign.updateTenantInfo(getTenantInfo()); +// wxCUserBasicSign.updateTenantInfo(getTenantInfo()); + wxCUserBasicSign.setTenantId(getTenantInfo().getFinalTenantId()); wxCUserBasicSign.setUserId(memberId); final PageInfo page = wxCUserBasicSignService.listAsPage(wxCUserBasicSign, pageNum, pageSize); return new ResultData(page); @@ -50,7 +57,7 @@ public class WxCUserBasicSignController extends BaseController { @ApiOperation("签到") @PostMapping("signIn") @ApiImplicitParams({ - @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) + @ApiImplicitParam(name = "", value = "", dataType = "", paramType = "", required = true)}) public ResultData signIn(@RequestBody WxCUserBasicSign wxCUserBasicSign) { logger.debug("[" + getIpAddr() + "] WxCUserBasicSignController::signIn"); if (null == wxCUserBasicSign){ @@ -62,7 +69,8 @@ public class WxCUserBasicSignController extends BaseController { } catch (MallinkException me) { return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } - wxCUserBasicSign.updateTenantInfo(getTenantInfo()); +// wxCUserBasicSign.updateTenantInfo(getTenantInfo()); + wxCUserBasicSign.setTenantId(getTenantInfo().getFinalTenantId()); wxCUserBasicSign.setUserId(memberId); WxCUserBasicSign todaySign = wxCUserBasicSignService.getTodaySignIn(wxCUserBasicSign); @@ -82,4 +90,72 @@ public class WxCUserBasicSignController extends BaseController { } + @ApiOperation("签到状态") + @GetMapping("signInStatus") + @ApiImplicitParams({ + @ApiImplicitParam(name = "", value = "", dataType = "", paramType = "", required = true)}) + public ResultData signInStatus() { + logger.debug("[" + getIpAddr() + "] WxCUserBasicSignController::signIn"); + WxCUserBasicSign wxCUserBasicSign = new WxCUserBasicSign(); + Long memberId; + try { + memberId = getMemberId(); + } catch (MallinkException me) { + return new ResultData(ErrorCode.getByCode(me.getErrorCode())); + } +// wxCUserBasicSign.updateTenantInfo(getTenantInfo()); + wxCUserBasicSign.setTenantId(getTenantInfo().getFinalTenantId()); + wxCUserBasicSign.setUserId(memberId); + Map map = wxCUserBasicSignService.getLastSignIn(wxCUserBasicSign); + return new ResultData(map); + } + + @ApiOperation("签到领取") + @PostMapping("signInCredit") + @ApiImplicitParams({ + @ApiImplicitParam(name = "", value = "", dataType = "", paramType = "", required = true)}) + public ResultData signInCredit(@RequestBody WxCreditHistory wxCreditHistory) { + logger.debug("[" + getIpAddr() + "] WxCUserBasicSignController::signIn"); + if (null == wxCreditHistory){ + wxCreditHistory = new WxCreditHistory(); + } + Long memberId; + try { + memberId = getMemberId(); + } catch (MallinkException me) { + return new ResultData(ErrorCode.getByCode(me.getErrorCode())); + } + WxCUserBasicSign wxCUserBasicSign = new WxCUserBasicSign(); + wxCUserBasicSign.setTenantId(getFinalTenantId()); + wxCUserBasicSign.setUserId(memberId); + Map map = wxCUserBasicSignService.getLastSignIn(wxCUserBasicSign); + int continueMonthSign = map.get("continueMonthSign");//本月连续签到天数 + int signInSevenDay = map.get("signInSevenDay");//7日连续奖励 + int signInFTDay = map.get("signInFTDay");//14日连续奖励 + int signInTEDay = map.get("signInTEDay");//28日连续奖励 + + if(wxCreditHistory.getCreditType().equals(EnumScoreType.SIGN_IN_SEVENDAY.getCode())){ + if(continueMonthSign >= 7 && signInSevenDay == 0){ + wxCUserBasicSignService.signInCreditHistory(wxCUserBasicSign,EnumScoreType.SIGN_IN_SEVENDAY); + return new ResultData(); + } + return new ResultData(ErrorCode.MEM_MONTH_IS_USED); + }else if(wxCreditHistory.getCreditType().equals(EnumScoreType.SIGN_IN_FTDAY.getCode())){ + if(continueMonthSign >= 14 && signInFTDay == 0){ + wxCUserBasicSignService.signInCreditHistory(wxCUserBasicSign,EnumScoreType.SIGN_IN_FTDAY); + return new ResultData(); + } + return new ResultData(ErrorCode.MEM_MONTH_IS_USED); + }else if(wxCreditHistory.getCreditType().equals(EnumScoreType.SIGN_IN_TEDAY.getCode())){ + if(continueMonthSign >= 28 && signInTEDay == 0){ + wxCUserBasicSignService.signInCreditHistory(wxCUserBasicSign,EnumScoreType.SIGN_IN_TEDAY); + return new ResultData(); + } + return new ResultData(ErrorCode.MEM_MONTH_IS_USED); + }else{ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"creditType"); + } + + } + } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index a921fbf96..142382cc9 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -1014,7 +1014,7 @@ public class WxUserGrantController extends BaseController { wxCUserBasicInfoService.updateQrCode(wxCUserBasicInfo); } } - RedisCacheUtils.cache(objectCommonRedisTemplate, key, qrCode, Constant.S_D_EXPIRE); + RedisCacheUtils.cache(objectCommonRedisTemplate, key, qrCode, 0); } catch (Exception e) { logger.error("getUserinfoQrCode error.",e); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 10cb76379..9169a0fc8 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -397,6 +397,7 @@ public enum ErrorCode{ USER_NOT_MEMBER(13102, "该用户不是小程序会员"), OUT_OF_CREDIT(13103, "超出最大积分"), MEM_IS_SIGNIN(13104, "该用户已签到"), + MEM_MONTH_IS_USED(13105, "该用户本月已领取或未到领取条件"), /** diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java b/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java index 12515ae78..3b04c477a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java @@ -55,7 +55,7 @@ public class WxScoreRules extends BaseTenantEntity { @TableField(exist = false) private static final String creditDefaultRules = "[" + - "{\"id\":1,\"limit\":0,\"step\":1,\"score\":0 ,\"desc\":\"每日登陆\"}," + +// "{\"id\":1,\"limit\":0,\"step\":1,\"score\":0 ,\"desc\":\"每日登陆\"}," + "{\"id\":2,\"childs\":[" + " {\"businessId\":1,\"limit\":0,\"step\":1,\"score\":0 ,\"desc\":\"线上交易1元\"}," + " {\"businessId\":2,\"limit\":0,\"step\":1,\"score\":0 ,\"desc\":\"线上交易1元\"}," + @@ -71,7 +71,11 @@ public class WxScoreRules extends BaseTenantEntity { "]}," + "{\"id\":3,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"绑定车牌1个\"}," + "{\"id\":6,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"授权手机号\"}," + - "{\"id\":7,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"编辑个人信息\"}" + + "{\"id\":7,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"编辑个人信息\"}," + + "{\"id\": 17, \"desc\": \"每日签到\", \"step\": 1, \"limit\": 1, \"score\": 0},"+ + "{\"id\": 18, \"desc\": \"连续签到7天\", \"step\": 1, \"limit\": 1, \"score\": 0},"+ + "{\"id\": 19, \"desc\": \"连续签到14天\", \"step\": 1, \"limit\": 1, \"score\": 0},"+ + "{\"id\": 20, \"desc\": \"连续签到28天\", \"step\": 1, \"limit\": 1, \"score\": 0},"+ "]"; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java index 8544c22d5..8624cff4d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java @@ -20,7 +20,12 @@ public enum EnumScoreType { ACTIVITY_JOIN(13, "活动报名"), CLEAN_CREDIT(14, "积分清零计划"), GAME_LES_CREDIT(15, "游戏消耗积分"), - GAME_ADD_CREDIT(16, "游戏奖励积分"),; + GAME_ADD_CREDIT(16, "游戏奖励积分"), + + SIGN_IN_DAY(17, "每日签到"), + SIGN_IN_SEVENDAY(18, "连续签到7天"), + SIGN_IN_FTDAY(19, "连续签到14天"), + SIGN_IN_TEDAY(20, "连续签到28天"),; public static EnumScoreType getEnum(Integer code) { for (EnumScoreType value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java index 2fc4a298b..64a61dd62 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java @@ -41,4 +41,6 @@ public interface WxCreditHistoryMapper extends CommonMapper merchantCreditRanking(WxCreditHistory record); + + int monthCount(WxCreditHistory record); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java index cd49b9ea8..3b08a087e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java @@ -2,6 +2,9 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCUserBasicSign; +import com.iformall.enums.EnumScoreType; + +import java.util.Map; public interface WxCUserBasicSignService { @@ -19,5 +22,7 @@ public interface WxCUserBasicSignService { WxCUserBasicSign getTodaySignIn(WxCUserBasicSign record); - WxCUserBasicSign getLastSignIn(WxCUserBasicSign record); + Map getLastSignIn(WxCUserBasicSign record); + + void signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java index 678a118aa..60b3e1cb5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java @@ -85,4 +85,5 @@ public interface WxCreditHistoryService { Integer getLesCreditSummary(WxCreditHistory wxCreditHistory); PageInfo listAsPageMcrv(WxCreditHistory record, Integer pageIndex, Integer pageSize); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java index 2188c97bc..cbbef4e25 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java @@ -4,8 +4,13 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.domain.po.WxCUserBasicSign; +import com.iformall.domain.po.WxCreditHistory; +import com.iformall.enums.EnumScoreType; +import com.iformall.enums.EnumUserType; import com.iformall.mapper.WxCUserBasicSignMapper; +import com.iformall.mapper.WxCreditHistoryMapper; import com.iformall.service.WxCUserBasicSignService; +import com.iformall.service.WxCreditHistoryService; import com.iformall.utils.DateUtils; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; @@ -16,9 +21,7 @@ import org.springframework.transaction.annotation.Transactional; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; import static java.util.Calendar.DAY_OF_MONTH; @@ -31,6 +34,12 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { @Autowired WxCUserBasicSignMapper wxCUserBasicSignMapper; + @Autowired + WxCreditHistoryService wxCreditHistoryService; + + @Autowired + WxCreditHistoryMapper wxCreditHistoryMapper; + @Override public PageInfo listAsPage(WxCUserBasicSign record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserBasicSignMapper.findList(record)); @@ -65,6 +74,9 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { }else{ long daysL = DateUtils.startToEnd(lastSignIn.getSigninDate(), today); int daysI = new Long(daysL).intValue(); + if(daysI == 0){ + return lastSignIn; + } record.setCountSign(lastSignIn.getCountSign() + 1); if(daysI == 1){ @@ -99,6 +111,7 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { } wxCUserBasicSignMapper.insert(record); } + signInCreditHistory(record,EnumScoreType.SIGN_IN_DAY); return record; }else{ //补签 @@ -132,9 +145,60 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { } @Override - public WxCUserBasicSign getLastSignIn(WxCUserBasicSign record) { - return wxCUserBasicSignMapper.getLastSignIn(record); + public Map getLastSignIn(WxCUserBasicSign record) { + Map map = new HashMap<>(); + WxCUserBasicSign lastSignIn = wxCUserBasicSignMapper.getLastSignIn(record); + if(lastSignIn != null && DateUtils.isSameMonth(lastSignIn.getSigninDate(),new Date())){ + //本月连续签到天数 + map.put("continueMonthSign",lastSignIn.getContinueMonthSign()); + }else{ + map.put("continueMonthSign",0); + } + WxCreditHistory wxCreditHistory = new WxCreditHistory(); + wxCreditHistory.setTenantId(record.getFinalTenantId()); + wxCreditHistory.setCUserId(record.getUserId()); + wxCreditHistory.setCreditType(EnumScoreType.SIGN_IN_DAY.getCode()); + //每日签到 + if(wxCreditHistoryMapper.loginCount(wxCreditHistory) > 0){ + map.put("signInDay",1); + }else{ + map.put("signInDay",0); + } + //7日连续 + wxCreditHistory.setCreditType(EnumScoreType.SIGN_IN_SEVENDAY.getCode()); + if(wxCreditHistoryMapper.monthCount(wxCreditHistory) > 0 ){ + map.put("signInSevenDay",1); + }else{ + map.put("signInSevenDay",0); + } + //14日连续 + wxCreditHistory.setCreditType(EnumScoreType.SIGN_IN_FTDAY.getCode()); + if(wxCreditHistoryMapper.monthCount(wxCreditHistory) > 0 ){ + map.put("signInFTDay",1); + }else{ + map.put("signInFTDay",0); + } + //28日连续 + wxCreditHistory.setCreditType(EnumScoreType.SIGN_IN_TEDAY.getCode()); + if(wxCreditHistoryMapper.monthCount(wxCreditHistory) > 0 ){ + map.put("signInTEDay",1); + }else{ + map.put("signInTEDay",0); + } + return map; } + @Override + public void signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType){ + WxCreditHistory wxCreditHistory = new WxCreditHistory(); + wxCreditHistory.setCUserId(record.getUserId()); + wxCreditHistory.setTenantId(record.getFinalTenantId()); + wxCreditHistory.setCreateDate(new Date()); + wxCreditHistory.setCreditType(enumScoreType.getCode()); + wxCreditHistory.setChangePurpose(enumScoreType.getMessage()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); + wxCreditHistory.setOperatorId(record.getUserId()); + wxCreditHistoryService.saveOrUpdate(wxCreditHistory,null); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index d82d82346..9bbcd3857 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -273,14 +273,14 @@ public class WxCUserServiceImpl implements WxCUserService { logger.error("c_user 成长值 " + e.getMessage()); } // 积分 - try { - credit = addCredit(user, EnumScoreType.LOGIN); - logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit); - } catch (MallinkException e) { - logger.error("c_user 积分 " + e.getMessage()); - } catch (Exception e) { - logger.error("c_user 积分 " + e.getMessage()); - } +// try { +// credit = addCredit(user, EnumScoreType.LOGIN); +// logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit); +// } catch (MallinkException e) { +// logger.error("c_user 积分 " + e.getMessage()); +// } catch (Exception e) { +// logger.error("c_user 积分 " + e.getMessage()); +// } // 用户登陆后 更新最后一次活跃时间 if (user.getUserId() != null) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index c3c1ba78a..4dde0d3cb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -391,7 +391,8 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { private int creditIncrement(WxCreditHistory record) { //查找C端用户的成长值 if (record.getCreditType() == EnumScoreType.LOGIN.getCode()) { - return loginAddCredit(record); +// return loginAddCredit(record);//登陆加积分取消 + return 0; } if (record.getCreditType() == EnumScoreType.BIND_CAR.getCode()) { return bindCarAddCredit(record); @@ -430,6 +431,19 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { return record.getCreditNum(); } + if (record.getCreditType() == EnumScoreType.SIGN_IN_DAY.getCode()) { + return signinCredit(record); + } + if (record.getCreditType() == EnumScoreType.SIGN_IN_SEVENDAY.getCode()) { + return signinMonthCredit(record,EnumScoreType.SIGN_IN_SEVENDAY); + } + if (record.getCreditType() == EnumScoreType.SIGN_IN_FTDAY.getCode()) { + return signinMonthCredit(record,EnumScoreType.SIGN_IN_FTDAY); + } + if (record.getCreditType() == EnumScoreType.SIGN_IN_TEDAY.getCode()) { + return signinMonthCredit(record,EnumScoreType.SIGN_IN_TEDAY); + } + return 0; } @@ -449,6 +463,28 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { return wxScoreRules.getRule(EnumScoreType.LOGIN, WxScoreRules.SCORE); } + private int signinCredit(WxCreditHistory record) { + //如果当天已经登录过则跳过 + if (wxCreditHistoryMapper.loginCount(record) > 0) { + return 0; + } + // 1. 获取当前租户下积分的增加规则 + WxScoreRules wxScoreRules = wxScoreRulesService.getCreditRules(record.getTenantId()); + // 2. 增长的积分 + return wxScoreRules.getRule(EnumScoreType.SIGN_IN_DAY, WxScoreRules.SCORE); + } + + private int signinMonthCredit(WxCreditHistory record,EnumScoreType enumScoreType) { + // + if (wxCreditHistoryMapper.monthCount(record) > 0) { + return 0; + } + // 1. 获取当前租户下积分的增加规则 + WxScoreRules wxScoreRules = wxScoreRulesService.getCreditRules(record.getTenantId()); + // 2. 增长的积分 + return wxScoreRules.getRule(enumScoreType, WxScoreRules.SCORE); + } + private int bindCarAddCredit(WxCreditHistory record) { if (wxCreditHistoryMapper.countList(record) > 0) { return 0; diff --git a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml index c43c83900..b28c73bc9 100644 --- a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml @@ -184,6 +184,18 @@ and DATEDIFF(`create_date`,now())=0 + +