diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java
index 7cc697f27..d1971b58f 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java
@@ -14,6 +14,7 @@ import javax.persistence.Id;
@EqualsAndHashCode(callSuper = true)
public class WxLevelConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
+ @Transient
public static final int DEFAULT_SCALE = 10;
@Id
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 1b46e7207..f2771cb84 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxScoreRules.java
@@ -26,6 +26,9 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class WxScoreRules extends BaseEntity {
+ @Transient
+ public static final int DEFAULT_SCALE = 10;
+
@Transient
private static final String scoreDefaultRules =
"[" +
@@ -70,6 +73,7 @@ public class WxScoreRules extends BaseEntity {
"{\"id\":5,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"授权个人信息\"}," +
"{\"id\":6,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"授权手机号\"}," +
"{\"id\":7,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"编辑个人信息\"}" +
+ "{\"id\":8,\"limit\":1,\"step\":1,\"score\":0,\"desc\":\"编辑个人信息\"}" +
"]";
@Transient
@@ -105,6 +109,9 @@ public class WxScoreRules extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="清除前多少年积分",name="clearYear")
private Integer clearYear;
+ @io.swagger.annotations.ApiModelProperty(value="生日积分倍率",name="scale")
+ private Integer scale;
+
public static String getScoreDefaultRules() {
return scoreDefaultRules;
}
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 e505b5ea7..10bc72daf 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
@@ -213,19 +213,27 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService {
currentCreditAmount = wxCUserBasicInfo.getCredit();
}
- // 获取当前用户成长值:默认为1.0,
- int scale = 10;
+ // 获取等级积分倍率:默认为1.0,
+ int levelScale = WxLevelConfig.DEFAULT_SCALE;
Integer score = wxCUser.getScore();
if (Objects.nonNull(score)) {
Integer scaleFromDb = wxLevelConfigMapper.getScale(wxCUser.getTenantId(), wxCUser.getScore());
if (Objects.nonNull(scaleFromDb)) {
- scale = scaleFromDb;
+ levelScale = scaleFromDb;
+ }
+ }
+ // 获取等级积分倍率:
+ int scoreScale = WxScoreRules.DEFAULT_SCALE;
+ if(Objects.nonNull(wxCUserBasicInfo.getBirthdate())) {
+ WxScoreRules rules = wxScoreRulesService.getScoreRules(wxCUser.getTenantId()) ;
+ if(Objects.nonNull(rules)&&Objects.nonNull(rules.getScale())) {
+ scoreScale = rules.getScale() ;
}
}
//计算出需要新增或减少的积分
int creditChangeNumOrigin = creditIncrement(record);
- int creditChangeNum = new BigDecimal(creditChangeNumOrigin).multiply(new BigDecimal(scale)).divide(new BigDecimal(WxLevelConfig.DEFAULT_SCALE),BigDecimal.ROUND_HALF_UP).intValue();
+ int creditChangeNum = new BigDecimal(creditChangeNumOrigin).multiply(new BigDecimal(levelScale)).multiply(new BigDecimal(scoreScale)).divide(new BigDecimal(WxScoreRules.DEFAULT_SCALE)).divide(new BigDecimal(WxLevelConfig.DEFAULT_SCALE),BigDecimal.ROUND_HALF_UP).intValue();
if (creditChangeNum != 0) {
Long total = Long.valueOf(currentCreditAmount) + Long.valueOf(creditChangeNum);
diff --git a/mallinkService/src/main/resources/mapper/WxScoreRulesMapper.xml b/mallinkService/src/main/resources/mapper/WxScoreRulesMapper.xml
index 375ae8ae7..a3e24037a 100644
--- a/mallinkService/src/main/resources/mapper/WxScoreRulesMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxScoreRulesMapper.xml
@@ -9,10 +9,11 @@
+
- `id`,`tenant_id`,`rules`,`create_date`,`update_date`,`type`,`clear_year`
+ `id`,`tenant_id`,`rules`,`create_date`,`update_date`,`type`,`clear_year`,`scale`
@@ -38,6 +39,9 @@
and `clear_year` = #{clearYear}
+
+ and `scale` = #{scale}
+
and id in