Browse Source

活动扫码签到接口 init

1、活动列表(打卡中的活动)
2、获取活动签到码
3、获取活动签到记录
feature/syp_points
liuchuang 5 years ago
parent
commit
8d5465bb7b
  1. 75
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkActSignInController.java
  2. 39
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ActInfoFeignClient.java
  3. 20
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ActInfoFeignClientFallback.java
  4. 50
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ActSignInService.java
  5. 37
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ActSignInServiceImpl.java
  6. 81
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActSignInQrCodeDTO.java
  7. 27
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActSignInListFormDTO.java
  8. 34
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActSignInRecordFormDTO.java
  9. 39
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInListResultDTO.java
  10. 21
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInQrCodeResultDTO.java
  11. 44
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInRecordsDTO.java
  12. 25
      esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInRecordsResultDTO.java
  13. 84
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/ActSignInQrCodeController.java
  14. 18
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/AppActInfoController.java
  15. 62
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/AppActSignInQrCodeController.java
  16. 16
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java
  17. 33
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActSignInQrCodeDao.java
  18. 31
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserPointsLogDao.java
  19. 51
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/entity/ActSignInQrCodeEntity.java
  20. 12
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java
  21. 119
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActSignInQrCodeService.java
  22. 13
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActUserPointsLogService.java
  23. 14
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java
  24. 177
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActSignInQrCodeServiceImpl.java
  25. 22
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserPointsLogServiceImpl.java
  26. 41
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/OssFeignClient.java
  27. 28
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/OssFeignClientFallback.java
  28. 18
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml
  29. 19
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActSignInQrCodeDao.xml
  30. 37
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserPointsLogDao.xml

75
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkActSignInController.java

@ -0,0 +1,75 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInListResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.service.ActSignInService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 工作端-活动扫码签到
*
* @author Liuchuang
* @since 2021/2/24 13:39
*/
@RestController
@RequestMapping("work/actsignin")
public class ApiWorkActSignInController {
@Autowired
private ActSignInService actSignInService;
/**
* 活动列表打卡中的活动
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>>
* @author Liuchuang
* @since 2021/2/24 13:49
*/
@GetMapping("actlist")
public Result<List<ActSignInListResultDTO>> getSignInActList(ActSignInListFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return actSignInService.listOfSignInActs(formDto);
}
/**
* 获取活动签到码
*
* @param actId
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author Liuchuang
* @since 2021/2/24 14:22
*/
@GetMapping("getqrcode/{actId}")
public Result<ActSignInQrCodeResultDTO> getActSignInQrCode(@PathVariable("actId") String actId) {
return actSignInService.getActSignInQrCode(actId);
}
/**
* 获取活动签到记录
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>>
* @author Liuchuang
* @since 2021/2/24 15:20
*/
@GetMapping("getsigninlist")
public Result<ActSignInRecordsResultDTO> getSignInList(ActSignInRecordFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return actSignInService.listOfSignInRecords(formDto);
}
}

39
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/ActInfoFeignClient.java

@ -2,9 +2,10 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.activity.ActBannerDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.form.EpdcAppBannerFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.*;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.FeignRequestInterceptor;
@ -13,7 +14,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@ -87,4 +87,37 @@ public interface ActInfoFeignClient {
@GetMapping(value = "heart/epdc-app/actbanner/detail/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<ActBannerDTO> getBannerDetail(@PathVariable("id") String id);
/**
* 工作端-可生成签到码的活动
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>>
* @author Liuchuang
* @since 2021/2/24 13:53
*/
@GetMapping(value = "heart/appactinfo/signinactlist", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<ActSignInListResultDTO>> getSignInActList(ActSignInListFormDTO formDto);
/**
* 获取活动签到码
*
* @param actId
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author Liuchuang
* @since 2021/2/24 14:27
*/
@GetMapping(value ="heart/epdc-app/actsigninqrcode/getqrcode/{actId}", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<ActSignInQrCodeResultDTO> getActSignInQrCode(@PathVariable("actId") String actId);
/**
* 获取活动签到记录
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>>
* @author Liuchuang
* @since 2021/2/24 15:23
*/
@GetMapping(value ="heart/epdc-app/actsigninqrcode/getsigninlist", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<ActSignInRecordsResultDTO> getSignInList(ActSignInRecordFormDTO formDto);
}

20
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/ActInfoFeignClientFallback.java

@ -2,9 +2,10 @@ package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.activity.ActBannerDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.form.EpdcAppBannerFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.*;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -57,4 +58,19 @@ public class ActInfoFeignClientFallback implements ActInfoFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getBannerDetail", id);
}
@Override
public Result<List<ActSignInListResultDTO>> getSignInActList(ActSignInListFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getSignInActList", formDto);
}
@Override
public Result<ActSignInQrCodeResultDTO> getActSignInQrCode(String actId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getActSignInQrCode", actId);
}
@Override
public Result<ActSignInRecordsResultDTO> getSignInList(ActSignInRecordFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getSignInList", formDto);
}
}

50
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/ActSignInService.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInListResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import java.util.List;
/**
* 工作端-活动扫码签到
*
* @author Liuchuang
* @since 2021/2/24 13:39
*/
public interface ActSignInService {
/**
* 活动列表打卡中的活动
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>>
* @author Liuchuang
* @since 2021/2/24 13:51
*/
Result<List<ActSignInListResultDTO>> listOfSignInActs(ActSignInListFormDTO formDto);
/**
* 获取活动签到码
*
* @param actId
* @return com.elink.esua.epdc.commons.tools.utils.Result<ActSignInQrCodeResultDTO>
* @author Liuchuang
* @since 2021/2/24 14:24
*/
Result<ActSignInQrCodeResultDTO> getActSignInQrCode(String actId);
/**
* 获取活动签到记录
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>>
* @author Liuchuang
* @since 2021/2/24 15:22
*/
Result<ActSignInRecordsResultDTO> listOfSignInRecords(ActSignInRecordFormDTO formDto);
}

37
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/ActSignInServiceImpl.java

@ -0,0 +1,37 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInListResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.ActInfoFeignClient;
import com.elink.esua.epdc.service.ActSignInService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ActSignInServiceImpl implements ActSignInService {
@Autowired
private ActInfoFeignClient actInfoFeignClient;
@Override
public Result<List<ActSignInListResultDTO>> listOfSignInActs(ActSignInListFormDTO formDto) {
return actInfoFeignClient.getSignInActList(formDto);
}
@Override
public Result<ActSignInQrCodeResultDTO> getActSignInQrCode(String actId) {
return actInfoFeignClient.getActSignInQrCode(actId);
}
@Override
public Result<ActSignInRecordsResultDTO> listOfSignInRecords(ActSignInRecordFormDTO formDto) {
return actInfoFeignClient.getSignInList(formDto);
}
}

81
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/ActSignInQrCodeDTO.java

@ -0,0 +1,81 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.activity;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
@Data
public class ActSignInQrCodeDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 活动ID
*/
private String actId;
/**
* 二维码地址
*/
private String codeUrl;
/**
* 删除标记0-1-
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

27
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActSignInListFormDTO.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.activity.form;
import lombok.Data;
import javax.validation.constraints.Min;
import java.io.Serializable;
/**
* 活动列表-form
* @author Liuchuang
*/
@Data
public class ActSignInListFormDTO implements Serializable {
private static final long serialVersionUID = -2850925877613620284L;
/**
* 页码从1开始
*/
@Min(value = 1, message = "页码必须大于0")
private Integer pageIndex;
/**
* 页容量默认10页
*/
@Min(value = 1, message = "每页条数必须大于必须大于0")
private Integer pageSize = 10;
}

34
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/form/ActSignInRecordFormDTO.java

@ -0,0 +1,34 @@
package com.elink.esua.epdc.activity.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 签到记录-form
* @author Liuchuang
*/
@Data
public class ActSignInRecordFormDTO implements Serializable {
private static final long serialVersionUID = 1458931120619377019L;
/**
* 页码
*/
@NotNull(message = "页码不能为空")
private Integer pageIndex;
/**
* 页容量
*/
@NotNull(message = "分页数量不能为空")
private Integer pageSize;
/**
* 活动ID
*/
@NotBlank(message = "活动ID不能为空")
private String actId;
}

39
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInListResultDTO.java

@ -0,0 +1,39 @@
package com.elink.esua.epdc.activity.result;
import lombok.Data;
import java.io.Serializable;
/**
* 活动信息
* @author Liuchuang
*/
@Data
public class ActSignInListResultDTO implements Serializable {
private static final long serialVersionUID = 5597918895256848428L;
/**
* 活动ID
*/
private String id;
/**
* 标题
*/
private String title;
/**
* 活动头图
*/
private String headPic;
/**
* 打卡开始时间
*/
private String signinStartTime;
/**
* 打卡截止时间
*/
private String signinEndTime;
}

21
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInQrCodeResultDTO.java

@ -0,0 +1,21 @@
package com.elink.esua.epdc.activity.result;
import lombok.Data;
import java.io.Serializable;
/**
* 活动签到码
*
* @author Liuchuang
* @since 2021/2/24 14:51
*/
@Data
public class ActSignInQrCodeResultDTO implements Serializable {
private static final long serialVersionUID = 567506783648999124L;
/**
* 二维码地址
*/
private String codeUrl;
}

44
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInRecordsDTO.java

@ -0,0 +1,44 @@
package com.elink.esua.epdc.activity.result;
import lombok.Data;
import java.io.Serializable;
/**
* 签到记录-result
* @author Liuchuang
*/
@Data
public class ActSignInRecordsDTO implements Serializable {
private static final long serialVersionUID = 3786377690296637263L;
/**
* 记录ID
*/
private String id;
/**
* 用户昵称
*/
private String nickname;
/**
* 签到时间
*/
private String createdTime;
/**
* 操作积分类型 0-减积分1-加积分
*/
private String operationPointsType;
/**
* 操作积分值
*/
private Integer points;
/**
* 用户头像
*/
private String faceImg;
}

25
esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/activity/result/ActSignInRecordsResultDTO.java

@ -0,0 +1,25 @@
package com.elink.esua.epdc.activity.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 扫码签到记录
* @author Liuchuang
*/
@Data
public class ActSignInRecordsResultDTO implements Serializable {
private static final long serialVersionUID = -140813417697540322L;
/**
* 签到总人数
*/
private Integer signInTotal;
/**
* 签到记录
*/
private List<ActSignInRecordsDTO> signInList;
}

84
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/ActSignInQrCodeController.java

@ -0,0 +1,84 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.activity.controller;
import com.elink.esua.epdc.activity.ActSignInQrCodeDTO;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.modules.activity.service.ActSignInQrCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
@RestController
@RequestMapping("actsigninqrcode")
public class ActSignInQrCodeController {
@Autowired
private ActSignInQrCodeService actSignInQrCodeService;
@GetMapping("page")
public Result<PageData<ActSignInQrCodeDTO>> page(@RequestParam Map<String, Object> params){
PageData<ActSignInQrCodeDTO> page = actSignInQrCodeService.page(params);
return new Result<PageData<ActSignInQrCodeDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<ActSignInQrCodeDTO> get(@PathVariable("id") String id){
ActSignInQrCodeDTO data = actSignInQrCodeService.get(id);
return new Result<ActSignInQrCodeDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody ActSignInQrCodeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
actSignInQrCodeService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody ActSignInQrCodeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
actSignInQrCodeService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
actSignInQrCodeService.delete(ids);
return new Result();
}
}

18
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/AppActInfoController.java

@ -19,14 +19,17 @@ package com.elink.esua.epdc.modules.activity.controller;
import com.elink.esua.epdc.activity.ActInfoDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInListResultDTO;
import com.elink.esua.epdc.activity.result.AppActInfoDTO;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.modules.activity.service.ActInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -140,4 +143,19 @@ public class AppActInfoController {
return new Result<Integer>().ok(unreadCount);
}
/**
* 工作端-可生成签到码的活动
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>>
* @author Liuchuang
* @since 2021/2/24 13:56
*/
@GetMapping( "signinactlist")
public Result<List<ActSignInListResultDTO>> getSignInActList(@RequestBody ActSignInListFormDTO formDto) {
List<ActSignInListResultDTO> data = actInfoService.listOfSignInActs(formDto);
return new Result<List<ActSignInListResultDTO>>().ok(data);
}
}

62
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/AppActSignInQrCodeController.java

@ -0,0 +1,62 @@
package com.elink.esua.epdc.modules.activity.controller;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.modules.activity.service.ActSignInQrCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 签到码移动端接口
*
* @author Liuchuang
* @since 2021/2/24 14:29
*/
@RestController
@RequestMapping(Constant.EPDC_APP + "actsigninqrcode")
public class AppActSignInQrCodeController {
@Autowired
private ActSignInQrCodeService actSignInQrCodeService;
/**
* 获取活动签到码
*
* @param actId
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author Liuchuang
* @since 2021/2/24 14:31
*/
@GetMapping("getqrcode/{actId}")
public Result<ActSignInQrCodeResultDTO> getActSignInQrCode(@PathVariable("actId") String actId) {
ActSignInQrCodeResultDTO data = actSignInQrCodeService.getActSignInQrCode(actId);
return new Result<ActSignInQrCodeResultDTO>().ok(data);
}
/**
* 获取活动签到记录
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>>
* @author Liuchuang
* @since 2021/2/24 15:26
*/
@GetMapping("getsigninlist")
public Result<ActSignInRecordsResultDTO> getSignInList(ActSignInRecordFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
ActSignInRecordsResultDTO data = actSignInQrCodeService.listOfSignInRecords(formDto);
return new Result<ActSignInRecordsResultDTO>().ok(data);
}
}

16
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActInfoDao.java

@ -19,10 +19,8 @@ package com.elink.esua.epdc.modules.activity.dao;
import com.elink.esua.epdc.activity.ActInfoDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoResultDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.result.*;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.modules.activity.entity.ActInfoEntity;
import org.apache.ibatis.annotations.Mapper;
@ -133,4 +131,14 @@ public interface ActInfoDao extends BaseDao<ActInfoEntity> {
* @since 2020/10/26 13:40
*/
int selectCountUserUnreadSignUpAct(@Param("userId") String userId);
/**
* 活动列表打卡中的活动
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>
* @author Liuchuang
* @since 2021/2/24 14:07
*/
List<ActSignInListResultDTO> selectListSignInActs(ActSignInListFormDTO formDto);
}

33
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActSignInQrCodeDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.activity.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.modules.activity.entity.ActSignInQrCodeEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
@Mapper
public interface ActSignInQrCodeDao extends BaseDao<ActSignInQrCodeEntity> {
}

31
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserPointsLogDao.java

@ -17,17 +17,42 @@
package com.elink.esua.epdc.modules.activity.dao;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.modules.activity.entity.ActUserPointsLogEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-12-21
*/
@Mapper
public interface ActUserPointsLogDao extends BaseDao<ActUserPointsLogEntity> {
}
/**
* 获取活动签到记录
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>
* @author Liuchuang
* @since 2021/2/24 15:34
*/
List<ActSignInRecordsDTO> selectListOfSignInRecords(ActSignInRecordFormDTO formDto);
/**
* 活动已签到人数
*
* @param actId
* @return java.lang.Integer
* @author Liuchuang
* @since 2021/2/24 15:49
*/
Integer selectCountOfSignInRecords(@Param("actId") String actId);
}

51
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/entity/ActSignInQrCodeEntity.java

@ -0,0 +1,51 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.activity.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_act_sign_in_qr_code")
public class ActSignInQrCodeEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
/**
* 活动ID
*/
private String actId;
/**
* 二维码地址
*/
private String codeUrl;
}

12
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java

@ -20,9 +20,11 @@ package com.elink.esua.epdc.modules.activity.service;
import com.elink.esua.epdc.activity.ActInfoDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActInfoFormDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInListResultDTO;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -224,4 +226,14 @@ public interface ActInfoService extends BaseService<ActInfoEntity> {
* @since 2020/10/26 13:42
*/
int countUserUnreadSignUpAct(String userId);
/**
* 活动列表打卡中的活动
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.activity.result.ActSignInListResultDTO>
* @author Liuchuang
* @since 2021/2/24 14:04
*/
List<ActSignInListResultDTO> listOfSignInActs(ActSignInListFormDTO formDto);
}

119
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActSignInQrCodeService.java

@ -0,0 +1,119 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.activity.service;
import com.elink.esua.epdc.activity.ActSignInQrCodeDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.modules.activity.entity.ActSignInQrCodeEntity;
import java.util.List;
import java.util.Map;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
public interface ActSignInQrCodeService extends BaseService<ActSignInQrCodeEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<ActSignInQrCodeDTO>
* @author generator
* @date 2021-02-24
*/
PageData<ActSignInQrCodeDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<ActSignInQrCodeDTO>
* @author generator
* @date 2021-02-24
*/
List<ActSignInQrCodeDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return ActSignInQrCodeDTO
* @author generator
* @date 2021-02-24
*/
ActSignInQrCodeDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2021-02-24
*/
void save(ActSignInQrCodeDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2021-02-24
*/
void update(ActSignInQrCodeDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2021-02-24
*/
void delete(String[] ids);
/**
* 获取活动签到码
*
* @param actId
* @return com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO
* @author Liuchuang
* @since 2021/2/24 14:52
*/
ActSignInQrCodeResultDTO getActSignInQrCode(String actId);
/**
* 获取活动签到记录
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>
* @author Liuchuang
* @since 2021/2/24 15:27
*/
ActSignInRecordsResultDTO listOfSignInRecords(ActSignInRecordFormDTO formDto);
}

13
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActUserPointsLogService.java

@ -18,6 +18,9 @@
package com.elink.esua.epdc.modules.activity.service;
import com.elink.esua.epdc.activity.ActUserPointsLogDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.modules.activity.entity.ActUserPointsLogEntity;
@ -101,4 +104,14 @@ public interface ActUserPointsLogService extends BaseService<ActUserPointsLogEnt
* @Date 2020/2/6 16:47
**/
ActUserPointsLogEntity insertActUserPointsLogDTO(ActUserPointsLogDTO actUserPointsLogDTO);
/**
* 获取活动签到记录
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.activity.result.ActSignInRecordResultDTO>
* @author Liuchuang
* @since 2021/2/24 15:27
*/
ActSignInRecordsResultDTO listOfSignInRecords(ActSignInRecordFormDTO formDto);
}

14
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java

@ -25,10 +25,8 @@ import com.elink.esua.epdc.activity.ActUserReadDTO;
import com.elink.esua.epdc.activity.ActUserRelationDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActInfoFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailAppResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoDetailResultDTO;
import com.elink.esua.epdc.activity.result.ActInfoResultDTO;
import com.elink.esua.epdc.activity.form.ActSignInListFormDTO;
import com.elink.esua.epdc.activity.result.*;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
@ -736,4 +734,12 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
public int countUserUnreadSignUpAct(String userId) {
return baseDao.selectCountUserUnreadSignUpAct(userId);
}
@Override
public List<ActSignInListResultDTO> listOfSignInActs(ActSignInListFormDTO formDto) {
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
return baseDao.selectListSignInActs(formDto);
}
}

177
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActSignInQrCodeServiceImpl.java

@ -0,0 +1,177 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.activity.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.activity.ActInfoDTO;
import com.elink.esua.epdc.activity.ActSignInQrCodeDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInQrCodeResultDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.QrCodeUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.modules.activity.dao.ActSignInQrCodeDao;
import com.elink.esua.epdc.modules.activity.entity.ActSignInQrCodeEntity;
import com.elink.esua.epdc.modules.activity.service.ActInfoService;
import com.elink.esua.epdc.modules.activity.service.ActSignInQrCodeService;
import com.elink.esua.epdc.modules.activity.service.ActUserPointsLogService;
import com.elink.esua.epdc.modules.feign.OssFeignClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 活动签到二维码表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2021-02-24
*/
@Service
public class ActSignInQrCodeServiceImpl extends BaseServiceImpl<ActSignInQrCodeDao, ActSignInQrCodeEntity> implements ActSignInQrCodeService {
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private ActInfoService actInfoService;
@Autowired
private ActUserPointsLogService actUserPointsLogService;
@Override
public PageData<ActSignInQrCodeDTO> page(Map<String, Object> params) {
IPage<ActSignInQrCodeEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ActSignInQrCodeDTO.class);
}
@Override
public List<ActSignInQrCodeDTO> list(Map<String, Object> params) {
List<ActSignInQrCodeEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ActSignInQrCodeDTO.class);
}
private QueryWrapper<ActSignInQrCodeEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<ActSignInQrCodeEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ActSignInQrCodeDTO get(String id) {
ActSignInQrCodeEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ActSignInQrCodeDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ActSignInQrCodeDTO dto) {
ActSignInQrCodeEntity entity = ConvertUtils.sourceToTarget(dto, ActSignInQrCodeEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ActSignInQrCodeDTO dto) {
ActSignInQrCodeEntity entity = ConvertUtils.sourceToTarget(dto, ActSignInQrCodeEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public ActSignInQrCodeResultDTO getActSignInQrCode(String actId) {
if (StringUtils.isEmpty(actId)) {
throw new RenException("活动ID不能为空");
}
// 判断活动状态是否在打卡范围内
ActInfoDTO actInfoDto = actInfoService.get(actId);
if (!(System.currentTimeMillis() >= actInfoDto.getSigninStartTime().getTime()
&& System.currentTimeMillis() <= actInfoDto.getSigninEndTime().getTime())) {
throw new RenException("当前活动不在打卡时间范围内,不能生成签到码");
}
// 保存签到码信息
ActSignInQrCodeEntity entity = new ActSignInQrCodeEntity();
entity.setActId(actId);
insert(entity);
// 生成二维码
String codeUrl = generateQRCode(entity.getId());
entity.setCodeUrl(codeUrl);
// 更新二维码地址
updateById(entity);
ActSignInQrCodeResultDTO dto = new ActSignInQrCodeResultDTO();
dto.setCodeUrl(codeUrl);
return dto;
}
@Override
public ActSignInRecordsResultDTO listOfSignInRecords(ActSignInRecordFormDTO formDto) {
return actUserPointsLogService.listOfSignInRecords(formDto);
}
/**
* 生成二维码并上传 OSS
*
* @param param 二维码参数
* @return java.lang.String
* @author Liuchuang
* @since 2021/1/19 13:30
*/
private String generateQRCode(String param) {
UploadToOssDTO dto = new UploadToOssDTO();
dto.setFileByte(QrCodeUtils.encodeByByte(param, "", false));
dto.setFileName(param.concat(StrConstant.DOT).concat(StrConstant.SUFFIX_IMG_PNG));
Result<String> ossResult = ossFeignClient.uploadFile(dto);
if (null == ossResult || !ossResult.success() || null == ossResult.getData()) {
throw new RenException("签到码上传失败,请稍后重试");
}
return ossResult.getData();
}
}

22
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserPointsLogServiceImpl.java

@ -20,8 +20,12 @@ package com.elink.esua.epdc.modules.activity.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.activity.ActUserPointsLogDTO;
import com.elink.esua.epdc.activity.form.ActSignInRecordFormDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsDTO;
import com.elink.esua.epdc.activity.result.ActSignInRecordsResultDTO;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.modules.activity.dao.ActUserPointsLogDao;
@ -115,4 +119,22 @@ public class ActUserPointsLogServiceImpl extends BaseServiceImpl<ActUserPointsLo
return entity;
}
@Override
public ActSignInRecordsResultDTO listOfSignInRecords(ActSignInRecordFormDTO formDto) {
// 已签到人数
Integer signInTotal = baseDao.selectCountOfSignInRecords(formDto.getActId());
// 签到记录
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
List<ActSignInRecordsDTO> list = baseDao.selectListOfSignInRecords(formDto);
ActSignInRecordsResultDTO data = new ActSignInRecordsResultDTO();
data.setSignInTotal(signInTotal);
data.setSignInList(list);
return data;
}
}

41
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/OssFeignClient.java

@ -0,0 +1,41 @@
package com.elink.esua.epdc.modules.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadFormDTO;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.feign.fallback.OssFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
/**
* 文件对象模块
* @Author LC
* @Date 2019/9/8 18:24
*/
@FeignClient(name = ServiceConstant.EPDC_OSS_SERVER, fallback = OssFeignClientFallback.class)
public interface OssFeignClient {
/**
* 图片上传
* @Params: [base64]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
* @Author: liuchuang
* @Date: 2019/9/11 17:17
*/
@PostMapping(value = "oss/file/uploadBase64")
Result<String> upload(UploadFormDTO formDTO);
/**
*
* 图片上传
*
* @params [file]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UploadDTO>
* @author liuchuang
* @since 2019/11/25 16:13
*/
@PostMapping(value = "oss/file/uploadFile", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> uploadFile(UploadToOssDTO uploadToOssDto);
}

28
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/OssFeignClientFallback.java

@ -0,0 +1,28 @@
package com.elink.esua.epdc.modules.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadFormDTO;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.modules.feign.OssFeignClient;
import org.springframework.stereotype.Component;
/**
* 文件对象模块
* @Author LC
* @Date 2019/9/8 18:25
*/
@Component
public class OssFeignClientFallback implements OssFeignClient {
@Override
public Result<String> upload(UploadFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "upload", formDTO);
}
@Override
public Result<String> uploadFile(UploadToOssDTO uploadToOssDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "uploadFile", uploadToOssDto);
}
}

18
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActInfoDao.xml

@ -530,4 +530,22 @@
AND ai.SIGNUP_END_TIME > NOW()
AND ai.ID NOT IN ( SELECT t.ACT_ID FROM ( SELECT ACT_ID FROM epdc_act_user_read WHERE DEL_FLAG = '0' AND USER_ID = #{userId} ) t );
</select>
<select id="selectListSignInActs" resultType="com.elink.esua.epdc.activity.result.ActSignInListResultDTO">
SELECT
t.ID,
t.TITLE,
t.HEAD_PIC,
t.SIGNIN_START_TIME,
t.SIGNIN_END_TIME
FROM
epdc_act_info t
WHERE
t.DEL_FLAG = '0'
AND t.ACT_STATUS = '1'
AND DATE_FORMAT( NOW(), '%Y-%m-%d %H:%i:%s' ) BETWEEN t.SIGNIN_START_TIME
AND t.SIGNIN_END_TIME
ORDER BY t.SIGNIN_START_TIME DESC
LIMIT #{formDto.pageIndex}, #{formDto.pageSize}
</select>
</mapper>

19
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActSignInQrCodeDao.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.modules.activity.dao.ActSignInQrCodeDao">
<resultMap type="com.elink.esua.epdc.modules.activity.entity.ActSignInQrCodeEntity" id="actSignInQrCodeMap">
<result property="id" column="ID"/>
<result property="actId" column="ACT_ID"/>
<result property="codeUrl" column="CODE_URL"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

37
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserPointsLogDao.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.dao.ActUserPointsLogDao">
<mapper namespace="com.elink.esua.epdc.modules.activity.dao.ActUserPointsLogDao">
<resultMap type="com.elink.esua.epdc.modules.activity.entity.ActUserPointsLogEntity" id="actUserPointsLogMap">
<result property="id" column="ID"/>
@ -18,5 +18,38 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectListOfSignInRecords" resultType="com.elink.esua.epdc.activity.result.ActSignInRecordsDTO">
SELECT
t.ID,
r.NICKNAME,
r.FACE_IMG,
t.CREATED_TIME,
t.OPERATION_POINTS_TYPE,
t.POINTS
FROM
epdc_act_user_points_log t
LEFT JOIN epdc_act_user_relation r ON r.ID = t.ACT_USER_ID
AND r.DEL_FLAG = '0'
WHERE
t.DEL_FLAG = '0'
AND t.OPERATION_TYPE = '9'
AND r.ACT_ID = #{formDto.actId}
ORDER BY
t.CREATED_TIME DESC
LIMIT #{formDto.pageIndex}, #{formDto.pageSize}
</select>
</mapper>
<select id="selectCountOfSignInRecords" resultType="integer">
SELECT
COUNT(t.ID)
FROM
epdc_act_user_points_log t
LEFT JOIN epdc_act_user_relation r ON r.ID = t.ACT_USER_ID
AND r.DEL_FLAG = '0'
WHERE
t.DEL_FLAG = '0'
AND t.OPERATION_TYPE = '9'
AND r.ACT_ID = #{formDto.actId}
</select>
</mapper>

Loading…
Cancel
Save