diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023053000001_activity.sql b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_activity.sql
new file mode 100644
index 000000000..a42727f8b
--- /dev/null
+++ b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_activity.sql
@@ -0,0 +1,4 @@
+ALTER TABLE `mallink`.`wx_activity` ADD COLUMN `is_gain_credit` Integer(1) NOT NULL DEFAULT 0 COMMENT '是否获得积分';
+ALTER TABLE `mallink`.`wx_activity` ADD COLUMN `gain_credit` Integer(11) NOT NULL DEFAULT 0 COMMENT '获得的积分';
+ALTER TABLE `mallink`.`wx_activity` ADD COLUMN `is_score` Integer(1) NOT NULL DEFAULT 0 COMMENT '是否获得成长值';
+ALTER TABLE `mallink`.`wx_activity` ADD COLUMN `score` Integer(11) NOT NULL DEFAULT 0 COMMENT '获得的成长值';
\ No newline at end of file
diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql
index 1b4f40bd6..976d2dc8f 100644
--- a/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql
+++ b/mallinkAdmin/src/main/resources/db/migration/V2023053000001_douyin.sql
@@ -1,3 +1,4 @@
+###自己后台要加上该配置####
CREATE TABLE `wx_mall_version` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID',
@@ -8,6 +9,8 @@ CREATE TABLE `wx_mall_version` (
###现有的抖音版本都要设置该表
+###自己后台要加上该配置####
create table tt_goods_category_new like tt_goods_category;
+###自己后台要加上该配置####
ALTER TABLE `mallink`.`wx_appinfo` ADD COLUMN `laike_id` varchar(30) COMMENT '来客ID';
\ No newline at end of file
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java
index 00ef12db9..8571b1e79 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java
@@ -125,6 +125,18 @@ public class WxActivity extends TenantEntity {
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "报名状态", name = "joinStatus")
private Integer joinStatus;
+
+ @io.swagger.annotations.ApiModelProperty(value = "是否获得积分EnumYesOrNo", name = "isGainCredit")
+ private Integer isGainCredit;
+
+ @io.swagger.annotations.ApiModelProperty(value = "获得的积分", name = "gainCredit")
+ private Integer gainCredit;
+
+ @io.swagger.annotations.ApiModelProperty(value = "是否获得成长值EnumYesOrNo", name = "isScore")
+ private Integer isScore;
+
+ @io.swagger.annotations.ApiModelProperty(value = "获得的成长值", name = "score")
+ private Integer score;
}
diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java
index 34c4333ed..98361a415 100644
--- a/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java
+++ b/mallinkService/src/main/java/com/iformall/enums/EnumScoreType.java
@@ -18,6 +18,7 @@ public enum EnumScoreType {
CHANGE_CREDIT(11, "积分兑换"),
REDUCE_CREDIT(12, "消费积分"),
ACTIVITY_JOIN(13, "活动报名"),
+ ACTIVITY_JOIN_ADD(27,"活动报名增加积分"),
CLEAN_CREDIT(14, "积分清零计划"),
GAME_LES_CREDIT(15, "游戏消耗积分"),
GAME_ADD_CREDIT(16, "游戏奖励积分"),
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java
index e90a8adba..fa5ec4002 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java
@@ -18,6 +18,8 @@ import com.iformall.mq.MqBaseProducer;
import com.iformall.service.ExcelService;
import com.iformall.service.WxActivityJoinService;
import com.iformall.service.WxCreditHistoryService;
+import com.iformall.service.WxScoreHistoryService;
+import com.iformall.service.WxScoreRulesService;
import com.iformall.utils.DateUtils;
import com.iformall.utils.RedisLock;
import org.apache.commons.lang3.StringUtils;
@@ -69,6 +71,9 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService {
@Autowired
WxCreditHistoryService wxCreditHistoryService;
+
+ @Autowired
+ WxScoreRulesService wxScoreRulesService;
@Override
@@ -223,9 +228,14 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService {
throw new MallinkException(ErrorCode.ACTIVITY_PERSON_LIMITED.getCode(),"活动报名人数已满!");
}
}
-
+ setCreditAndScore(wxActivity, wxActivityJoin,user);
+ return new ResultData();
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
+ public void setCreditAndScore(WxActivity wxActivity,WxActivityJoin wxActivityJoin,WxCUserBasicInfo user) {
//查询是否消耗积分
- if (wxActivity.getUseCredit().equals(EnumActivityUseCreditStatus.YES.getCode())) {
+ if (wxActivity.getUseCredit().equals(EnumActivityUseCreditStatus.YES.getCode()) && null != wxActivity.getCredit() && wxActivity.getCredit() > 0) {
Integer credit = wxActivity.getCredit();
//积分历史
WxCreditHistory wxCreditHistory = new WxCreditHistory();
@@ -240,8 +250,29 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService {
wxCreditHistory.setOperatorId(wxActivityJoin.getUserId());
wxCreditHistoryService.saveOrUpdate(wxCreditHistory,wxActivity);
}
-
- return new ResultData();
+
+ //查询是否获得积分
+ if (wxActivity.getIsGainCredit().equals(EnumYesOrNo.YES.getCode()) && null != wxActivity.getGainCredit() && wxActivity.getGainCredit() > 0 ) {
+ Integer gainCredit = wxActivity.getGainCredit();
+ //积分历史
+ WxCreditHistory wxCreditHistory = new WxCreditHistory();
+// wxCreditHistory.updateTenantInfo(wxActivity);
+ wxCreditHistory.setTenantId(wxActivity.getFinalTenantId());
+ wxCreditHistory.setFinalTenantId(wxActivity.getFinalTenantId());
+ wxCreditHistory.setCUserId(wxActivityJoin.getUserId());
+ wxCreditHistory.setCreditNum(gainCredit);
+ wxCreditHistory.setCreditType(EnumScoreType.ACTIVITY_JOIN_ADD.getCode());
+ wxCreditHistory.setChangePurpose(EnumScoreType.ACTIVITY_JOIN_ADD.getMessage()+"["+wxActivity.getTitle()+"]");
+ wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode());
+ wxCreditHistory.setOperatorId(wxActivityJoin.getUserId());
+ wxCreditHistoryService.saveOrUpdate(wxCreditHistory,wxActivity);
+ }
+
+ //查询是否获得成长值
+ if (wxActivity.getIsScore().equals(EnumYesOrNo.YES.getCode()) && null != wxActivity.getScore() && wxActivity.getScore() > 0 ) {
+ Integer score = wxActivity.getScore();
+ wxScoreRulesService.addScore2(wxActivity, EnumScoreType.ACTIVITY_JOIN_ADD, user, score);
+ }
}
@Override
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 4286a96c0..9e010e613 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java
@@ -865,6 +865,10 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService {
if (record.getCreditType() == EnumScoreType.ACTIVITY_JOIN.getCode()) {
return reduceCredit(record,tenantEntity);
}
+ if (record.getCreditType() == EnumScoreType.ACTIVITY_JOIN_ADD.getCode()) {
+ record.setRulesTenantId(tenantEntity.getTenantId());
+ return record.getCreditNum();
+ }
if (record.getCreditType() == EnumScoreType.GAME_LES_CREDIT.getCode()) {
return reduceCredit(record,tenantEntity);
}
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java
index 22aa3c566..ed4dac4d1 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java
@@ -400,6 +400,15 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
return addScoreNumber;
}
+
+
+ private int simpleAddScore(TenantEntity tenantEntity,Long userId, Integer score) {
+ // 5. 增长的成长值
+ updateScore(userId,tenantEntity, score);
+ // 6. 记录历史
+ recordSimpleAddScoreHistory(tenantEntity,EnumScoreType.ACTIVITY_JOIN_ADD,userId,score);
+ return score;
+ }
private int bindCarAddScore(TenantEntity tenantEntity,WxCUserBasicInfo user) {
@@ -559,6 +568,19 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
history.setScoreAmount(addScoreNumber);
wxScoreHistoryMapper.insert(history);
}
+
+ private void recordSimpleAddScoreHistory(TenantEntity tenantEntity,EnumScoreType scoreType,Long userId,int addScoreNumber) {
+ final IdWorker idWorker = IdWorker.get();
+ WxScoreHistory history = new WxScoreHistory();
+ history.setId(idWorker.nextId());
+ history.setTenantId(tenantEntity.getFinalTenantId());
+ history.setRulesTenantId(tenantEntity.getTenantId());
+ history.setCUserId(userId);
+ history.setCreateDate(new Date());
+ history.setScoreType(scoreType.getCode());
+ history.setScoreAmount(addScoreNumber);
+ wxScoreHistoryMapper.insert(history);
+ }
private void recordReduceScoreHistory(TenantEntity tenantEntity,int reduceScore, String reason, Long id, EnumScoreType wechatPhone) {
final IdWorker idWorker = IdWorker.get();
@@ -651,6 +673,10 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
boolean bHaveCUser = (boolean)(param2);
return memResetScore(tenantEntity,user, bHaveCUser);
}
+ case ACTIVITY_JOIN_ADD: {
+ Integer score = (Integer)(param2);
+ return simpleAddScore(tenantEntity,user.getId(), score);
+ }
default:
break;
}
diff --git a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml
index a00c4d9b4..878fce328 100644
--- a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml
@@ -29,13 +29,17 @@
-
+
+
+
+
+
`id`,`tenant_id`,`parent_tenant_id`,`cover_img`,`title`,`sub_title`,`detail`,`html`,`activity_type`,`signup_examine`,`person_limit`,`activity_start_time`,`activity_end_time`,
`use_credit`,`credit`,`type`,`status`,`start_time`,`end_time`,`question`,`is_expired`,`create_time`,`update_time`,`use_img`,
- `img_detail`,`send_msg`,`selectques`
+ `img_detail`,`send_msg`,`selectques`,`is_gain_credit`,`gain_credit`,`is_score`,`score`