diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java index 36261a2ab..e1c05d925 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxActivityController.java @@ -7,6 +7,7 @@ import com.iformall.domain.po.WxActivity; import com.iformall.domain.po.base.BaseEntity; import com.iformall.enums.EnumActivityStatus; import com.iformall.service.WxActivityService; +import com.iformall.utils.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -45,11 +47,29 @@ public class WxActivityController extends BaseController { if (null == wxActivity) wxActivity = new WxActivity(); wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINE.getCode()); wxActivity.updateTenantInfo(getTenantInfo()); - wxActivity.setSortColumns(BaseEntity.SortField.CreateTime_DESC,BaseEntity.SortField.Id_DESC); + wxActivity.setSortColumns(BaseEntity.SortField.ActivityStartTime_DESC,BaseEntity.SortField.Id_DESC); final PageInfo page = wxActivityService.listAsPage(wxActivity, pageNum, pageSize); return new ResultData(page); } + @ApiOperation("") + @GetMapping("listStatus") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData listStatus(@ModelAttribute WxActivity wxActivity) { + logger.debug("[" + getIpAddr() + "] WxActivityController::list"); + if (null == wxActivity) wxActivity = new WxActivity(); + wxActivity.setStatus(EnumActivityStatus.INJECT_ONLINE.getCode()); + wxActivity.updateTenantInfo(getTenantInfo()); + wxActivity.setSortColumns(BaseEntity.SortField.ActivityStartTime_DESC,BaseEntity.SortField.Id_DESC); + if(wxActivity.getStarttime() == null || wxActivity.getEndtime() == null){ + wxActivity.setStarttime(DateUtils.getFirstDayForCurrMonth()); + wxActivity.setEndtime(DateUtils.getLastDayForMonth(new Date())); + } + return wxActivityService.getListStatus(wxActivity); + } + @ApiOperation("查询活动状态") @GetMapping("/queryStatus") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java index 76524e9de..d64ae7dc8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCUserBasicSignController.java @@ -8,7 +8,7 @@ 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 com.iformall.utils.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -18,7 +18,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; +import java.util.Date; import java.util.Map; @RestController @@ -54,6 +54,33 @@ public class WxCUserBasicSignController extends BaseController { return new ResultData(page); } + @ApiOperation("") + @GetMapping("listStatus") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData listStatus(@ModelAttribute WxCUserBasicSign wxCUserBasicSign) { + logger.debug("[" + getIpAddr() + "] WxActivityController::list"); + if (null == 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); + + if(wxCUserBasicSign.getStartDate() == null || wxCUserBasicSign.getEndDate() == null){ + wxCUserBasicSign.setStartDate(DateUtils.getFirstDayForCurrMonth()); + wxCUserBasicSign.setEndDate(DateUtils.getLastDayForMonth(new Date())); + } + return wxCUserBasicSignService.getListStatus(wxCUserBasicSign); + } + @ApiOperation("签到") @PostMapping("signIn") @ApiImplicitParams({ diff --git a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseEntity.java index 67e94f9f0..9220fad65 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseEntity.java @@ -205,6 +205,10 @@ public class BaseEntity implements Serializable { ReportDate_ASC("`report_date` ASC"), ReportDate_DESC("`report_date` DESC"), + + ActivityStartTime_ASC("`activity_start_time` ASC"), + ActivityStartTime_DESC("`activity_start_time` DESC"), + ; private String value; diff --git a/mallinkService/src/main/java/com/iformall/service/WxActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxActivityService.java index 09239f594..74bf4a6f2 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxActivityService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxActivityService.java @@ -47,4 +47,6 @@ public interface WxActivityService { Integer queryStatus(Long id, Long userId); ResultData offLineCampaign(WxActivity wxActivity); + + ResultData getListStatus(WxActivity wxActivity); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java index 3b08a087e..c3844e22c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicSignService.java @@ -1,6 +1,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUserBasicSign; import com.iformall.enums.EnumScoreType; @@ -25,4 +26,6 @@ public interface WxCUserBasicSignService { Map getLastSignIn(WxCUserBasicSign record); void signInCreditHistory(WxCUserBasicSign record, EnumScoreType enumScoreType); + + ResultData getListStatus(WxCUserBasicSign wxCUserBasicSign); } 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 90b1991b4..ad9cf1b94 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxActivityServiceImpl.java @@ -17,6 +17,7 @@ import com.iformall.mapper.WxActivityMapper; import com.iformall.mapper.WxCampaignMapper; import com.iformall.service.WxActivityService; import com.iformall.service.WxCampaignService; +import com.iformall.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +31,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; -import java.util.Date; +import java.util.*; /** * @author gongbiao @@ -121,6 +122,10 @@ public class WxActivityServiceImpl implements WxActivityService { if (activity == null) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } + if (wxActivity.getStatus().equals(EnumActivityStatus.INJECT_ONLINE.getCode()) + && activity.getEndTime().before(new Date())) { + return new ResultData(ErrorCode.ACTIVITY_JOIN_TIME_END); + } wxActivity.setUpdateTime(new Date()); wxActivityMapper.updateById(wxActivity); if (wxActivity.getStatus().equals(EnumActivityStatus.STATUS_TAKE_OFFF.getCode())) { @@ -257,5 +262,37 @@ public class WxActivityServiceImpl implements WxActivityService { return new ResultData(Result.SUCCESS, "操作成功"); } + @Override + public ResultData getListStatus(WxActivity wxActivity) { + List list = new ArrayList(); + List activityList = wxActivityMapper.findList(wxActivity); + if(activityList != null){ + for (WxActivity activity:activityList) { + + Date start = activity.getActivityStartTime(); + Date end = 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); + // 天数加上1 + dd.add(Calendar.DAY_OF_MONTH, 1); + start = dd.getTime(); + } + } + } + if(list.size() > 0){ + HashSet h = new HashSet(list); + list.clear(); + list.addAll(h); + } + return new ResultData(list); + } + } 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 432aaa302..381fb8f2a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicSignServiceImpl.java @@ -3,6 +3,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUserBasicSign; import com.iformall.domain.po.WxCreditHistory; import com.iformall.enums.EnumScoreType; @@ -212,6 +213,22 @@ public class WxCUserBasicSignServiceImpl implements WxCUserBasicSignService { wxCreditHistoryService.saveOrUpdate(wxCreditHistory,null); } + @Override + public ResultData getListStatus(WxCUserBasicSign record) { + List list = new ArrayList(); + List recordList = wxCUserBasicSignMapper.findList(record); + if(recordList != null){ + for (WxCUserBasicSign sign:recordList) { + Map map = new HashMap<>(); + map.put("yyyy", DateUtils.getYear(sign.getSigninDate())); + map.put("mm", DateUtils.getMonth(sign.getSigninDate())); + map.put("dd", DateUtils.getMonthOfDate(sign.getSigninDate())); + list.add(map); + } + } + return new ResultData(list); + } + private void continueSignInAddCredit(WxCUserBasicSign record){ int i = record.getContinueSign() % 28; if(record.getContinueSign() > 0 && i == 0){