diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 1f53f247d..b4fba9dd5 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -41,6 +41,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_level_config", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "wx_credit_history", "wx_score_history", "wx_c_user_tags", @@ -73,6 +74,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_weapp_release_status", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "mem_coupon_from_dsp", "wx_msg_validationcode_model", "sys_notice", 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 index dc6736545..968e4f502 100644 --- 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 @@ -1,11 +1,11 @@ --type=2 积分规则,追加签到规则 update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 17, "desc": "每日签到", "step": 1, "limit": 1, "score": 0}' AS JSON)) where type = 2; -update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 18, "desc": "连续签到7天", "step": 1, "limit": 1, "score": 0}' AS JSON)) +update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 18, "desc": "连续签到7天奖励", "step": 1, "limit": 1, "score": 0}' AS JSON)) where type = 2; -update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 19, "desc": "连续签到14天", "step": 1, "limit": 1, "score": 0}' AS JSON)) +update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 19, "desc": "连续签到14天奖励", "step": 1, "limit": 1, "score": 0}' AS JSON)) where type = 2; -update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 20, "desc": "连续签到28天", "step": 1, "limit": 1, "score": 0}' AS JSON)) +update wx_score_rules set rules = JSON_ARRAY_APPEND(rules, '$',CAST('{"id": 20, "desc": "连续签到28天奖励", "step": 1, "limit": 1, "score": 0}' AS JSON)) where type = 2; --type=2 积分规则,每日登陆去掉-- 缓存--缓存--缓存 diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101280001__wx_miniapp_theme.sql b/mallinkAdmin/src/main/resources/db/migration/V202101280001__wx_miniapp_theme.sql new file mode 100644 index 000000000..42927ede8 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101280001__wx_miniapp_theme.sql @@ -0,0 +1,28 @@ +update wx_miniapp_theme_deploy set default_icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_kanjia.png" where id = 4444; +update wx_miniapp_theme_deploy set default_icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_pintuan.png" where id = 4455; +update wx_miniapp_theme_deploy set default_icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/zhibo.png" where id = 4466; +update wx_miniapp_theme_deploy set default_icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_xiaofeika.png" where id = 4477; +update wx_miniapp_theme_deploy set default_icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/jifen.png" where id = 4488; + +INSERT INTO `wx_miniapp_theme_deploy`(`id`, `name`, `remarks`, `theme_type`, `default_icon`, `default_style`) VALUES (4499, "sy_qd", "首页签到图标", 2, "https://formall.oss-accelerate.aliyuncs.com/cimg/qiandao.png", NULL); +INSERT INTO `wx_miniapp_theme_deploy`(`id`, `name`, `remarks`, `theme_type`, `default_icon`, `default_style`) VALUES (5500, "sy_hd", "首页活动图标", 2, "https://formall.oss-accelerate.aliyuncs.com/cimg/huodong.png", NULL); +INSERT INTO `wx_miniapp_theme_deploy`(`id`, `name`, `remarks`, `theme_type`, `default_icon`, `default_style`) VALUES (5511, "sy_yx", "首页游戏图标", 2, "https://formall.oss-accelerate.aliyuncs.com/cimg/youxi.png", NULL); + +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (1010, 2, 4499, NULL, NULL); +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (1020, 2, 5500, NULL, NULL); +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (1030, 2, 5511, NULL, NULL); + +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (3010, 3, 4499, NULL, NULL); +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (3020, 3, 5500, NULL, NULL); +INSERT INTO `wx_miniapp_theme_value`(`id`, `miniapp_theme_id`, `miniapp_deploy_id`, `icon`, `style_class`) VALUES (3030, 3, 5511, NULL, NULL); + + +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_kanjia_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4444; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_pintuan_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4455; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/zhibo_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4466; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/new_xiaofeika_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4477; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/jifen_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4488; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/qiandao_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 4499; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/huodong_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 5500; +update wx_miniapp_theme_value set icon = "https://formall.oss-accelerate.aliyuncs.com/cimg/youxi_red.png" where miniapp_theme_id = 3 and miniapp_deploy_id = 5511; + diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101290001__wx_activity_update.sql b/mallinkAdmin/src/main/resources/db/migration/V202101290001__wx_activity_update.sql new file mode 100644 index 000000000..8efb2d200 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101290001__wx_activity_update.sql @@ -0,0 +1,7 @@ +ALTER TABLE `wx_activity` +ADD COLUMN `activity_type` smallint(2) NOT NULL DEFAULT 1 COMMENT '活动类型(是否需要报名1是0否)' AFTER `html`, +ADD COLUMN `signup_examine` smallint(2) NOT NULL DEFAULT 1 COMMENT '报名审核 1是0否(activity_type=1时必填)' AFTER `person_limit`, +MODIFY COLUMN `person_limit` int(11) COMMENT '报名人数(activity_type=1时必填)' AFTER `activity_type`, +MODIFY COLUMN `start_time` datetime(0) COMMENT '活动报名开始时间(activity_type=1时必填)' AFTER `status`, +MODIFY COLUMN `end_time` datetime(0) COMMENT '活动报名结束时间(activity_type=1时必填)' AFTER `start_time`, +MODIFY COLUMN `question` json COMMENT '问题' AFTER `end_time`; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index c01d7beff..1afac3a93 100644 --- a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -36,6 +36,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_level_config", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "wx_credit_history", "wx_score_history", "wx_c_user_tags", @@ -50,6 +51,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_c_user", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "wx_c_user_car", "wx_c_user_from_b", "wx_c_user_tags", diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java index da01b2ae4..2b60c297a 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java @@ -45,7 +45,7 @@ public class WxActivityController extends BaseController { public ResultData list(@ModelAttribute WxActivity wxActivity, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxActivityController::list"); if (null == wxActivity) wxActivity = new WxActivity(); - wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINE.getCode()); + wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINES.getCode()); wxActivity.updateTenantInfo(getTenantInfo()); wxActivity.setSortColumns(BaseEntity.SortField.ActivityStartTime_DESC,BaseEntity.SortField.Id_DESC); final PageInfo page = wxActivityService.listAsPage(wxActivity, pageNum, pageSize); @@ -60,7 +60,7 @@ public class WxActivityController extends BaseController { public ResultData listStatus(@ModelAttribute WxActivity wxActivity) { logger.debug("[" + getIpAddr() + "] WxActivityController::list"); if (null == wxActivity) wxActivity = new WxActivity(); - wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINE.getCode()); + wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINES.getCode()); wxActivity.updateTenantInfo(getTenantInfo()); wxActivity.setSortColumns(BaseEntity.SortField.ActivityStartTime_DESC,BaseEntity.SortField.Id_DESC); if(wxActivity.getStartDate() == null || wxActivity.getEndDate() == null){ diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java index fb2c4e929..3de1356da 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMiniappThemeController.java @@ -1,18 +1,14 @@ package com.iformall.controller; -import com.github.pagehelper.PageInfo; import com.iformall.annotation.RedisCache; import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; -import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxMiniappTheme; import com.iformall.domain.po.WxMiniappThemeValue; import com.iformall.domain.po.WxThemeMall; import com.iformall.enums.EnumThemeType; import com.iformall.service.WxMiniappThemeService; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index b9360b06a..2ab65bf5f 100644 --- a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -36,6 +36,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_level_config", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "wx_credit_history", "wx_score_history", "wx_c_user_tags", @@ -50,6 +51,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_c_user", "wx_c_user_basic_info", "wx_c_user_basic_child", + "wx_c_user_basic_sign", "wx_c_user_car", "wx_c_user_from_b", "wx_c_user_tags", diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 607aac091..0ce1b674e 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -541,6 +541,14 @@ public enum ErrorCode{ ACTIVITY_WAIT_CONFIRMED(30006, "您报名的活动还在审核中"), ACTIVITY_EXPIRED(30007, "您报名的活动已过期"), ACTIVITY_SEND_ERROR_NOONLINE(30008, "活动投放到宣传页失败,活动未上线!"), + ACTIVITY_NOT_FOND(30009, "活动未找到!"), + ACTIVITY_JOIN_TIME_START(30010, "活动报名时间未开始!"), + ACTIVITY_JOIN_END_TIME_BEFORE(30011, "活动报名结束时间不能小于当前时间"), + ACTIVITY_END_TIME_BEFORE(30012, "活动结束时间不能小于当前时间"), + ACTIVITY_NOT_JOIN(30013, "该活动不需要报名!"), + ACTIVITY_JOIN_IS_SIGNIN(30014, "用户已签到!"), + ACTIVITY_JOIN_NOT_FOND(30015, "活动报名未找到!"), + ACTIVITY_NOT_UPDATE(30016, "下线状态,不允许修改!"), /** * 文件上传 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 3fb0ab51a..00ef12db9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxActivity.java @@ -35,6 +35,13 @@ public class WxActivity extends TenantEntity { private Integer personLimit; @io.swagger.annotations.ApiModelProperty(value = "活动正文", name = "detail") private String detail; + + @io.swagger.annotations.ApiModelProperty(value = "活动类型(是否需要报名1是0否)", name = "activityType") + private Integer activityType; + + @io.swagger.annotations.ApiModelProperty(value = "报名审核 1是0否(activity_type=1时必填)", name = "signupExamine") + private Integer signupExamine; + @io.swagger.annotations.ApiModelProperty(value = "活动开始报名时间", name = "startTime") private Date startTime; @io.swagger.annotations.ApiModelProperty(value = "活动结束报名时间", name = "endTime") @@ -115,5 +122,9 @@ public class WxActivity extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "常见问题选择", name = "selectques") private String selectques; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value = "报名状态", name = "joinStatus") + private Integer joinStatus; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicSign.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicSign.java index a4f5f553d..6acd8f893 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicSign.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicSign.java @@ -52,6 +52,7 @@ public class WxCUserBasicSign extends TenantEntity { private String mark; + @TableField(exist = false) private Date startDate; @@ -64,4 +65,7 @@ public class WxCUserBasicSign extends TenantEntity { @TableField(exist = false) private Integer limit; + @TableField(exist = false) + private Integer credit; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java index c2ee61380..2ed5a3d92 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java @@ -27,7 +27,7 @@ public class BaseTenantEntity extends BaseEntity { protected String finalTenantId; public String getFinalTenantId() { - if (!StringUtils.isBlank(parentTenantId)) { + if (StringUtils.isNotBlank(parentTenantId)) { return parentTenantId; } return tenantId; @@ -42,8 +42,8 @@ public class BaseTenantEntity extends BaseEntity { protected String shardFinalTableSuffix; public String getShardFinalTableSuffix(){ - if(StringUtils.isNotBlank(finalTenantId)){ - shardFinalTableSuffix = "_" + Integer.parseInt(finalTenantId)%100; + if(StringUtils.isNotBlank(getFinalTenantId())){ + shardFinalTableSuffix = "_" + Integer.parseInt(getFinalTenantId())%100; } return shardFinalTableSuffix; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumActivityStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumActivityStatus.java index a7f896a0f..2ec131ed5 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumActivityStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumActivityStatus.java @@ -9,7 +9,8 @@ public enum EnumActivityStatus { STATUS_THROW_IN(0, "已保存"), STATUS_TAKE_OFFF(1, "已下线"), INJECT_CAMPAIGN(2, "已投放"), - INJECT_ONLINE(3, "已上线"),; + INJECT_ONLINE(3, "已上线"), + INJECT_ONLINES(4, "上过线"),;//查询状态 public static EnumActivityStatus getEnum(Integer code) { for (EnumActivityStatus value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java index bd130e2dc..d12a0cbe5 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxActivityJoinMapper.java @@ -18,7 +18,7 @@ public interface WxActivityJoinMapper extends CommonMapper void updateSendMsg(Map param); - void updateStatus(List wxActivity); +// void updateStatus(List wxActivity); void activityExpired(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java index c3844e22c..036c10ec1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java @@ -25,7 +25,7 @@ public interface WxCUserBasicSignService { Map getLastSignIn(WxCUserBasicSign record); - void signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType); + int signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType); ResultData getListStatus(WxCUserBasicSign wxCUserBasicSign); } 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 7b5a07b15..cdfb9c8f1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityJoinServiceImpl.java @@ -73,6 +73,10 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { @Override public ResultData modifyStatus(WxActivityJoin wxActivityJoin) { + WxActivityJoin wxActivityJoin1 = wxActivityJoinMapper.selectById(wxActivityJoin.getId()); + if(wxActivityJoin1 == null){ + return new ResultData(ErrorCode.ACTIVITY_JOIN_NOT_FOND); + } if (wxActivityJoin.getStatus().equals(EnumActivityJoinStatus.CONFIRMED.getCode())) { WxActivity wxActivity = wxActivityMapper.selectById(wxActivityJoin.getActivityId()); Integer personLimit = wxActivity.getPersonLimit(); @@ -84,7 +88,12 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { if (personLimit.equals(count)) { return new ResultData(ErrorCode.ACTIVITY_PERSON_LIMITED, count); } + }else{ + if(wxActivityJoin1.getSignIn().equals(EnumActivityJoinSignStatus.YES.getCode())){ + return new ResultData(ErrorCode.ACTIVITY_JOIN_IS_SIGNIN); + } } + wxActivityJoinMapper.updateById(wxActivityJoin); return new ResultData(Result.SUCCESS, "操作成功"); } @@ -166,6 +175,24 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) @Override public ResultData join(WxActivityJoin wxActivityJoin) { + WxActivity wxActivity = wxActivityMapper.selectById(wxActivityJoin.getActivityId()); + if(wxActivity == null){ + return new ResultData(ErrorCode.ACTIVITY_NOT_FOND); + } + Date date = new Date(); + if(wxActivity.getActivityType().equals(EnumDelFlag.YES.getCode())){ + if(date.getTime() < wxActivity.getStartTime().getTime()){ + return new ResultData(ErrorCode.ACTIVITY_JOIN_TIME_START); + } + if(date.getTime() > wxActivity.getEndTime().getTime()){ + return new ResultData(ErrorCode.ACTIVITY_JOIN_TIME_END); + } + + }else{ + return new ResultData(ErrorCode.ACTIVITY_NOT_JOIN); + } + + WxActivityJoin joinQuery = new WxActivityJoin(); joinQuery.setUserId(wxActivityJoin.getUserId()); joinQuery.setActivityId(wxActivityJoin.getActivityId()); @@ -173,10 +200,22 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { if (count > 0) { return new ResultData(ErrorCode.ACTIVITY_JOINED); } + if(wxActivity.getSignupExamine().equals(EnumDelFlag.YES.getCode())){ + wxActivityJoin.setStatus(EnumActivityJoinStatus.NOT_CONFIRMED.getCode()); + }else{ + WxActivityJoin params = new WxActivityJoin(); + params.updateTenantInfo(wxActivity); + params.setActivityId(wxActivity.getId()); + params.setStatus(EnumActivityJoinStatus.CONFIRMED.getCode()); + int joinCount = wxActivityJoinMapper.selectCount(new QueryWrapper(params)); + if (joinCount >= wxActivity.getPersonLimit().intValue()) { + return new ResultData(ErrorCode.ACTIVITY_PERSON_LIMITED, joinCount); + } + wxActivityJoin.setStatus(EnumActivityJoinStatus.CONFIRMED.getCode()); + } + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(wxActivityJoin.getUserId(),wxActivityJoin.getFinalTenantId()); //查询是否消耗积分 - WxActivity wxActivity = wxActivityMapper.selectById(wxActivityJoin.getActivityId()); - Date date = new Date(); if (wxActivity.getUseCredit().equals(EnumActivityUseCreditStatus.YES.getCode())) { Integer credit = wxActivity.getCredit(); //积分历史 @@ -192,6 +231,7 @@ public class WxActivityJoinServiceImpl implements WxActivityJoinService { wxCreditHistory.setOperatorId(wxActivityJoin.getUserId()); wxCreditHistoryService.saveOrUpdate(wxCreditHistory,wxActivity.getTenantId()); } + //保存到报名表中 final IdWorker idWorker = IdWorker.get(); wxActivityJoin.setId(idWorker.nextId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java index ad9cf1b94..ea55ea653 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java @@ -93,23 +93,59 @@ public class WxActivityServiceImpl implements WxActivityService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "图文内容过大无法保存"); } } else { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"type"); } - wxActivity.setStatus(EnumActivityStatus.STATUS_THROW_IN.getCode()); - if (wxActivity.getEndTime().before(new Date())) { - throw new MallinkException(ErrorCode.ACTIVITY_JOIN_TIME_END); + + if(wxActivity.getActivityStartTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "活动开始时间不能为空"); + } + if(wxActivity.getActivityEndTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "活动结束时间不能为空"); } - if (wxActivity.getEndTime().after(wxActivity.getActivityEndTime())) { - throw new MallinkException(ErrorCode.ACTIVITY_TIME_ERROR); + + if(wxActivity.getActivityType() == null){ + wxActivity.setActivityType(EnumDelFlag.YES.getCode()); + } + if(wxActivity.getActivityType().equals(EnumDelFlag.YES.getCode())){ + if(wxActivity.getSignupExamine() == null){ + wxActivity.setSignupExamine(EnumDelFlag.YES.getCode()); + } + if(wxActivity.getPersonLimit() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "报名人数不能为空"); + } + if(wxActivity.getStartTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "报名开始时间不能为空"); + } + if(wxActivity.getEndTime() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "报名结束时间不能为空"); + } + if (wxActivity.getEndTime().before(new Date())) { + throw new MallinkException(ErrorCode.ACTIVITY_JOIN_END_TIME_BEFORE); + } + if (wxActivity.getEndTime().after(wxActivity.getActivityEndTime())) { + throw new MallinkException(ErrorCode.ACTIVITY_TIME_ERROR); + } + }else if(wxActivity.getActivityType().equals(EnumDelFlag.NO.getCode())){ + if (wxActivity.getActivityEndTime().before(new Date())) { + throw new MallinkException(ErrorCode.ACTIVITY_END_TIME_BEFORE); + } + }else{ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,"activityType"); } + + wxActivity.setStatus(EnumActivityStatus.STATUS_THROW_IN.getCode()); Date date = new Date(); - wxActivity.setCreateTime(date); wxActivity.setUpdateTime(date); if (wxActivity.getId() == null) { final IdWorker idWorker = IdWorker.get(); wxActivity.setId(idWorker.nextId()); + wxActivity.setCreateTime(date); wxActivityMapper.insert(wxActivity); } else { + WxActivity wxActivity1 = wxActivityMapper.selectById(wxActivity.getId()); + if(wxActivity1.getStatus().equals(EnumActivityStatus.STATUS_TAKE_OFFF.getCode())){ + return new ResultData(ErrorCode.ACTIVITY_NOT_UPDATE); + } wxActivityMapper.updateById(wxActivity); } return new ResultData(Result.SUCCESS, "操作成功"); @@ -226,7 +262,8 @@ public class WxActivityServiceImpl implements WxActivityService { return EnumActivityEnrollStatus.NOT_START.getCode(); } Date date = new Date(); - if (wxActivity.getStatus().equals(EnumActivityStatus.INJECT_CAMPAIGN.getCode())) { + if (wxActivity.getStatus().equals(EnumActivityStatus.INJECT_CAMPAIGN.getCode()) + || wxActivity.getStatus().equals(EnumActivityStatus.INJECT_ONLINE.getCode())) { //报名未开始 if (wxActivity.getStartTime().after(date)) { return EnumActivityEnrollStatus.NOT_START.getCode(); @@ -269,17 +306,21 @@ public class WxActivityServiceImpl implements WxActivityService { if(activityList != null){ for (WxActivity activity:activityList) { - Date start = activity.getActivityStartTime(); - Date end = activity.getActivityEndTime(); + Date start = DateUtils.getDateZero(activity.getActivityStartTime()); + Date end = DateUtils.getDateZero(activity.getActivityEndTime()); Calendar dd = Calendar.getInstance(); dd.setTime(start); - while (start.getTime() < end.getTime()) { - Map map = new HashMap<>(); - map.put("yyyy", DateUtils.getYear(start)); - map.put("mm", DateUtils.getMonth(start)); - map.put("dd", DateUtils.getMonthOfDate(start)); - list.add(map); + while (start.getTime() <= end.getTime()) { + if(start.getTime() >= wxActivity.getStartDate().getTime() + && start.getTime() <= wxActivity.getEndDate().getTime()){ + Map map = new HashMap<>(); + map.put("yyyy", DateUtils.getYear(start)); + map.put("mm", DateUtils.getMonth(start)); + map.put("dd", DateUtils.getMonthOfDate(start)); + list.add(map); + } + // 天数加上1 dd.add(Calendar.DAY_OF_MONTH, 1); start = dd.getTime(); 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 3df3ecb5e..1e90bb1c1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java @@ -113,8 +113,9 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { } wxCUserBasicSignMapper.insert(record); } - signInCreditHistory(record,EnumScoreType.SIGN_IN_DAY); - continueSignInAddCredit(record); + int inCredit = signInCreditHistory(record, EnumScoreType.SIGN_IN_DAY); + int continueIn = continueSignInAddCredit(record); + record.setCredit(inCredit + continueIn); return record; }else{ //补签 @@ -157,7 +158,11 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { long daysL = DateUtils.startToEnd(lastSignIn.getSigninDate(), new Date()); int daysI = new Long(daysL).intValue(); if(daysI == 0){ - map.put("continueSign",lastSignIn.getContinueSign()%28); + int i = lastSignIn.getContinueSign() % 28; + if(i == 0){ + i=28; + } + map.put("continueSign",i); map.put("signInDay",1);//今日已签到 }else if(daysI == 1){ map.put("continueSign",lastSignIn.getContinueSign()%28); @@ -213,7 +218,7 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { } @Override - public void signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType){ + public int signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType){ WxCreditHistory wxCreditHistory = new WxCreditHistory(); wxCreditHistory.setCUserId(record.getUserId()); wxCreditHistory.setTenantId(record.getFinalTenantId()); @@ -222,7 +227,11 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { wxCreditHistory.setChangePurpose(enumScoreType.getMessage()); wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setOperatorId(record.getUserId()); - wxCreditHistoryService.saveOrUpdate(wxCreditHistory,null); + WxCreditHistory wxCreditHistory1 = wxCreditHistoryService.saveOrUpdate(wxCreditHistory, null); + if(wxCreditHistory1.getCreditNum() == null){ + return 0; + } + return wxCreditHistory1.getCreditNum(); } @Override @@ -241,15 +250,16 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { return new ResultData(list); } - private void continueSignInAddCredit(WxCUserBasicSign record){ + private int continueSignInAddCredit(WxCUserBasicSign record){ int i = record.getContinueSign() % 28; if(record.getContinueSign() > 0 && i == 0){ - signInCreditHistory(record,EnumScoreType.SIGN_IN_TEDAY); + return signInCreditHistory(record, EnumScoreType.SIGN_IN_TEDAY); }else if(i == 7){ - signInCreditHistory(record,EnumScoreType.SIGN_IN_SEVENDAY); + return signInCreditHistory(record,EnumScoreType.SIGN_IN_SEVENDAY); }else if(i == 14){ - signInCreditHistory(record,EnumScoreType.SIGN_IN_FTDAY); + return signInCreditHistory(record,EnumScoreType.SIGN_IN_FTDAY); } + return 0; } } diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 18c8d2215..625872b0b 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1374,6 +1374,7 @@ public class DateUtils { cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); } diff --git a/mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml b/mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml index b22de08d0..bd3d00ad9 100644 --- a/mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxActivityJoinMapper.xml @@ -80,7 +80,7 @@ diff --git a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml index 3835011a3..48bcc777d 100644 --- a/mallinkService/src/main/resources/mapper/WxActivityMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxActivityMapper.xml @@ -17,6 +17,8 @@ + + @@ -31,7 +33,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`cover_img`,`title`,`sub_title`,`detail`,`html`,`person_limit`,`activity_start_time`,`activity_end_time`, + `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` @@ -65,14 +67,25 @@ and `type` = #{type} + + + and `activity_type` = #{activityType} + + + and `signup_examine` = #{signupExamine} + - + and `status` = #{status} and `status` >= 2 and `status` <= 3 + + + and `status` > 0 + and `create_time` = #{createTime} @@ -94,8 +107,10 @@ - and ((`activity_start_time` >= #{startDate} and `activity_start_time` <= #{endDate}) - or (`activity_end_time` >= #{startDate} and `activity_end_time` <= #{endDate})) + and not(`activity_end_time` < #{startDate, jdbcType=TIMESTAMP} or `activity_start_time` > #{endDate, jdbcType=TIMESTAMP}) +