Browse Source

设置(修改)签到时间

dev_shibei_match
yinzuomei 4 years ago
parent
commit
d362e9c756
  1. 39
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/SetSignTimeFormDTO.java
  2. 22
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/SetSignTimeResultDTO.java
  3. 23
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSignInRecordController.java
  4. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSignInCodeDao.java
  5. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSignInCodeService.java
  6. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSignInRecordService.java
  7. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSignInCodeServiceImpl.java
  8. 75
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSignInRecordServiceImpl.java
  9. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java
  10. 9
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSignInCodeDao.xml

39
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/SetSignTimeFormDTO.java

@ -0,0 +1,39 @@
package com.epmet.resi.group.dto.act.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 010设置修改签到时间,生成签到码
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/20 13:34
*/
@Data
public class SetSignTimeFormDTO implements Serializable {
private static final long serialVersionUID = 4134192208518833623L;
public interface AddUserInternalGroup {
}
/**
* 小组活动id
*/
@NotBlank(message = "groupActId不能为空",groups = AddUserInternalGroup.class)
private String groupActId;
/**
* 签到开始时间yyyy-MM-dd HH:mm
*/
@NotBlank(message = "开始时间不能为空",groups = AddUserInternalGroup.class)
private String signInStartTime;
/**
* 签到截止时间yyyy-MM-dd HH:mm
*/
@NotBlank(message = "截止时间不能为空",groups = AddUserInternalGroup.class)
private String signInEndTime;
@NotBlank(message = "tokenDto获取userId为空", groups = AddUserInternalGroup.class)
private String userId;
}

22
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/SetSignTimeResultDTO.java

@ -0,0 +1,22 @@
package com.epmet.resi.group.dto.act.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 010设置修改签到时间,生成签到码
*
* @author yinzuomei@elink-cn.com
* @date 2021/4/20 13:46
*/
@Data
public class SetSignTimeResultDTO implements Serializable {
private static final long serialVersionUID = -7444245554430563944L;
private String groupActId;
private Date signInStartTime;
private Date signInEndTime;
private String signInCodeUrl;
}

23
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSignInRecordController.java

@ -17,8 +17,16 @@
package com.epmet.modules.act.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.act.service.ActSignInRecordService;
import com.epmet.resi.group.dto.act.form.SetSignTimeFormDTO;
import com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -36,4 +44,19 @@ public class ActSignInRecordController {
@Autowired
private ActSignInRecordService actSignInRecordService;
/**
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO>
* @author yinzuomei
* @description 010设置修改签到时间,生成签到码
* @Date 2021/4/20 13:50
**/
@PostMapping("setsigntime")
public Result<SetSignTimeResultDTO> setSignTime(@LoginUser TokenDto tokenDto, @RequestBody SetSignTimeFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, SetSignTimeFormDTO.AddUserInternalGroup.class);
return new Result<SetSignTimeResultDTO>().ok(actSignInRecordService.setSignTime(formDTO));
}
}

9
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSignInCodeDao.java

@ -19,6 +19,7 @@ package com.epmet.modules.act.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.act.entity.ActSignInCodeEntity;
import com.epmet.resi.group.dto.act.ActSignInCodeDTO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -29,5 +30,11 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ActSignInCodeDao extends BaseDao<ActSignInCodeEntity> {
/**
* 获取最后一次生成的签到码
*
* @param groupActId
* @return com.epmet.resi.group.dto.act.ActSignInCodeDTO
*/
ActSignInCodeDTO selectLastRec(String groupActId);
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSignInCodeService.java

@ -19,6 +19,7 @@ package com.epmet.modules.act.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.modules.act.entity.ActSignInCodeEntity;
import com.epmet.resi.group.dto.act.ActSignInCodeDTO;
/**
* 组织活动签到码
@ -28,4 +29,11 @@ import com.epmet.modules.act.entity.ActSignInCodeEntity;
*/
public interface ActSignInCodeService extends BaseService<ActSignInCodeEntity> {
/**
* 获取最后一次生成的签到码
*
* @param groupActId
* @return com.epmet.resi.group.dto.act.ActSignInCodeDTO
*/
ActSignInCodeDTO selectLastRec(String groupActId);
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSignInRecordService.java

@ -19,6 +19,8 @@ package com.epmet.modules.act.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.modules.act.entity.ActSignInRecordEntity;
import com.epmet.resi.group.dto.act.form.SetSignTimeFormDTO;
import com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO;
/**
* 组织活动签到记录
@ -36,4 +38,12 @@ public interface ActSignInRecordService extends BaseService<ActSignInRecordEntit
* @return boolean
*/
boolean queryUserSignInRec(String groupActId, String currentUserId);
/**
* 010设置修改签到时间,生成签到码
*
* @param formDTO
* @return com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO
*/
SetSignTimeResultDTO setSignTime(SetSignTimeFormDTO formDTO);
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSignInCodeServiceImpl.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.modules.act.dao.ActSignInCodeDao;
import com.epmet.modules.act.entity.ActSignInCodeEntity;
import com.epmet.modules.act.service.ActSignInCodeService;
import com.epmet.resi.group.dto.act.ActSignInCodeDTO;
import org.springframework.stereotype.Service;
/**
@ -33,4 +34,14 @@ import org.springframework.stereotype.Service;
public class ActSignInCodeServiceImpl extends BaseServiceImpl<ActSignInCodeDao, ActSignInCodeEntity> implements ActSignInCodeService {
/**
* 获取最后一次生成的签到码
*
* @param groupActId
* @return com.epmet.resi.group.dto.act.ActSignInCodeDTO
*/
@Override
public ActSignInCodeDTO selectLastRec(String groupActId) {
return baseDao.selectLastRec(groupActId);
}
}

75
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSignInRecordServiceImpl.java

@ -18,10 +18,27 @@
package com.epmet.modules.act.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.modules.act.dao.ActSignInRecordDao;
import com.epmet.modules.act.dao.GroupActInfoDao;
import com.epmet.modules.act.entity.ActSignInRecordEntity;
import com.epmet.modules.act.entity.GroupActInfoEntity;
import com.epmet.modules.act.service.ActSignInCodeService;
import com.epmet.modules.act.service.ActSignInRecordService;
import com.epmet.modules.act.service.GroupActInfoService;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.resi.group.dto.act.ActSignInCodeDTO;
import com.epmet.resi.group.dto.act.GroupActInfoDTO;
import com.epmet.resi.group.dto.act.form.SetSignTimeFormDTO;
import com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 组织活动签到记录
@ -29,9 +46,17 @@ import org.springframework.stereotype.Service;
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-04-16
*/
@Slf4j
@Service
public class ActSignInRecordServiceImpl extends BaseServiceImpl<ActSignInRecordDao, ActSignInRecordEntity> implements ActSignInRecordService {
@Autowired
private GroupActInfoService groupActInfoService;
@Autowired
private ResiGroupMemberService resiGroupMemberService;
@Autowired
private GroupActInfoDao groupActInfoDao;
@Autowired
private ActSignInCodeService actSignInCodeService;
/**
* 查询当前用户是否签到
*
@ -46,4 +71,52 @@ public class ActSignInRecordServiceImpl extends BaseServiceImpl<ActSignInRecordD
}
return false;
}
/**
* 010设置修改签到时间,生成签到码
*
* @param formDTO
* @return com.epmet.resi.group.dto.act.result.SetSignTimeResultDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public SetSignTimeResultDTO setSignTime(SetSignTimeFormDTO formDTO) {
GroupActInfoDTO originalActInfo = groupActInfoService.getGroupActInfoDTO(formDTO.getGroupActId());
// 1、只有组长才可以设置签到码
ResiGroupMemberDTO groupMemberDTO = resiGroupMemberService.getLeaderMember(originalActInfo.getGroupId());
if (!formDTO.getUserId().equals(groupMemberDTO.getCustomerUserId())) {
throw new RenException(EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getCode(), EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getMsg());
}
//2、设置起止时间
GroupActInfoEntity groupActInfoEntity = ConvertUtils.sourceToTarget(originalActInfo, GroupActInfoEntity.class);
try {
String startTimeStr = formDTO.getSignInStartTime().concat(":00");
groupActInfoEntity.setSignInStartTime(DateUtils.parse(startTimeStr, DateUtils.DATE_TIME_PATTERN));
String endTimeStr = formDTO.getSignInEndTime().concat(":00");
groupActInfoEntity.setSignInStartTime(DateUtils.parse(endTimeStr, DateUtils.DATE_TIME_PATTERN));
} catch (Exception e) {
throw new RenException("签到起止时间格式错误");
}
groupActInfoDao.updateById(groupActInfoEntity);
SetSignTimeResultDTO result = new SetSignTimeResultDTO();
//3、如果签到时间修改了,重新生成签到码
result.setSignInCodeUrl(getSignInCodeUrl(groupActInfoEntity, originalActInfo));
result.setGroupActId(formDTO.getGroupActId());
result.setSignInStartTime(groupActInfoEntity.getSignInStartTime());
result.setSignInEndTime(groupActInfoEntity.getSignInEndTime());
return result;
}
private String getSignInCodeUrl(GroupActInfoEntity actInfoEntity, GroupActInfoDTO groupActInfoDTO) {
ActSignInCodeDTO actSignInCodeDTO = actSignInCodeService.selectLastRec(actInfoEntity.getId());
if (null != actSignInCodeDTO) {
if (actInfoEntity.getSignInStartTime().equals(groupActInfoDTO.getSignInStartTime())
&& actInfoEntity.getSignInEndTime().equals(groupActInfoDTO.getSignInEndTime())) {
log.info("签到开始时间、签到截止时间未变更,不需要重新生成签到码");
return actSignInCodeDTO.getUrl();
}
}
//todo
return "重新生成新的url";
}
}

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java

@ -541,8 +541,9 @@ public class GroupActInfoServiceImpl extends BaseServiceImpl<GroupActInfoDao, Gr
@Override
public GroupActIdDTO cancelAct(CancelActFormDTO formDTO) {
GroupActInfoEntity actInfoEntity=baseDao.selectById(formDTO.getGroupActId());
//1、只有活动发布人才可以取消
if(!actInfoEntity.getPublishUserId().equals(formDTO.getUserId())){
//1、只有组长才可以取消活动
ResiGroupMemberDTO groupMemberDTO = resiGroupMemberService.getLeaderMember(actInfoEntity.getGroupId());
if (!formDTO.getUserId().equals(groupMemberDTO.getCustomerUserId())) {
throw new RenException(EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getCode(), EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getMsg());
}
//2、活动已关闭,不能取消

9
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSignInCodeDao.xml

@ -2,7 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.modules.act.dao.ActSignInCodeDao">
<select id="selectLastRec" parameterType="java.lang.String" resultType="com.epmet.resi.group.dto.act.ActSignInCodeDTO">
select m.*
from act_sign_in_code m
where m.DEL_FLAG='0'
and m.GROUP_ACT_ID=#{groupActId}
order by m.CREATED_TIME desc
limit 1
</select>
</mapper>
Loading…
Cancel
Save