|
|
@ -21,16 +21,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.modules.member.dao.GroupVisitRecordDao; |
|
|
|
import com.epmet.modules.member.dao.GroupVisitorDao; |
|
|
|
import com.epmet.modules.member.dao.ResiGroupMemberDao; |
|
|
|
import com.epmet.modules.member.entity.GroupVisitRecordEntity; |
|
|
|
import com.epmet.modules.member.entity.GroupVisitorEntity; |
|
|
|
import com.epmet.modules.member.service.GroupVisitorService; |
|
|
|
import com.epmet.resi.group.constant.GroupVisitConstant; |
|
|
|
import com.epmet.resi.group.dto.member.GroupVisitorDTO; |
|
|
|
import com.epmet.resi.group.dto.member.form.UserAndGroupRelFormDTO; |
|
|
|
import com.epmet.resi.group.dto.member.form.VisitFormDTO; |
|
|
|
import com.epmet.resi.group.dto.member.result.GroupInfoResultDTO; |
|
|
|
import com.epmet.resi.group.dto.member.result.UserAndGroupRelResultDTO; |
|
|
|
import com.epmet.resi.group.dto.member.result.VisitResultDTO; |
|
|
|
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.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
@ -43,6 +55,10 @@ import java.util.Map; |
|
|
|
@Service |
|
|
|
public class GroupVisitorServiceImpl extends BaseServiceImpl<GroupVisitorDao, GroupVisitorEntity> implements GroupVisitorService { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private GroupVisitRecordDao groupVisitRecordDao; |
|
|
|
@Autowired |
|
|
|
private ResiGroupMemberDao resiGroupMemberDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<GroupVisitorDTO> page(Map<String, Object> params) { |
|
|
@ -89,5 +105,64 @@ public class GroupVisitorServiceImpl extends BaseServiceImpl<GroupVisitorDao, Gr |
|
|
|
updateById(entity); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 参观小组(记录日志) |
|
|
|
* 推荐小组界面,点击参观按钮,调用此接口 如果开关开启的情况下,需要记录到 |
|
|
|
* @Param formDTO |
|
|
|
* @author zxc |
|
|
|
* @date 2021/4/7 上午10:58 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public VisitResultDTO visit(VisitFormDTO formDTO) { |
|
|
|
// 查询小组是否允许参观,open:允许,closed:不允许
|
|
|
|
GroupInfoResultDTO visitSwitch = baseDao.selectVisitSwitch(formDTO.getGroupId()); |
|
|
|
if (null == visitSwitch || (null != visitSwitch && StringUtils.isNotEmpty(visitSwitch.getVisitSwitch()) && visitSwitch.equals(GroupVisitConstant.VISIT_SWITCH_CLOSED))){ |
|
|
|
return new VisitResultDTO(visitSwitch.getVisitSwitch()); |
|
|
|
} |
|
|
|
Integer visitCount = baseDao.selectVisitCount(formDTO.getUserId(), formDTO.getGroupId()); |
|
|
|
if (visitCount > NumConstant.ZERO){ |
|
|
|
// 已存在记录,更新最近一次访问时间
|
|
|
|
baseDao.updateLatestTime(formDTO.getUserId(),formDTO.getGroupId()); |
|
|
|
}else { |
|
|
|
// 插入一条新纪录
|
|
|
|
GroupVisitorEntity entity = new GroupVisitorEntity(); |
|
|
|
entity.setLatestVisitTime(new Date()); |
|
|
|
entity.setCustomerId(formDTO.getCustomerId()); |
|
|
|
entity.setGridId(visitSwitch.getGridId()); |
|
|
|
entity.setGroupId(formDTO.getGroupId()); |
|
|
|
entity.setUserId(formDTO.getUserId()); |
|
|
|
baseDao.insert(entity); |
|
|
|
} |
|
|
|
GroupVisitRecordEntity groupVisitRecordEntity = new GroupVisitRecordEntity(); |
|
|
|
groupVisitRecordEntity.setCustomerId(formDTO.getCustomerId()); |
|
|
|
groupVisitRecordEntity.setGridId(visitSwitch.getGridId()); |
|
|
|
groupVisitRecordEntity.setGroupId(formDTO.getGroupId()); |
|
|
|
groupVisitRecordEntity.setUserId(formDTO.getUserId()); |
|
|
|
groupVisitRecordDao.insert(groupVisitRecordEntity); |
|
|
|
return new VisitResultDTO(visitSwitch.getVisitSwitch()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 获取当前在组模式(发话题、分享、评论时调用) |
|
|
|
* 发表话题、评论话题、分享话题按下,先调用此接口 |
|
|
|
* @Param formDTO |
|
|
|
* @author zxc |
|
|
|
* @date 2021/4/7 上午11:09 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public UserAndGroupRelResultDTO userAndGroupRel(UserAndGroupRelFormDTO formDTO) { |
|
|
|
Integer userInGroup = resiGroupMemberDao.checkUserInGroup(formDTO.getUserId(), formDTO.getGroupId()); |
|
|
|
UserAndGroupRelResultDTO result = new UserAndGroupRelResultDTO(); |
|
|
|
if (NumConstant.ZERO == userInGroup){ |
|
|
|
result.setPattern(GroupVisitConstant.VISIT); |
|
|
|
}else if (NumConstant.ZERO < userInGroup){ |
|
|
|
result.setPattern(GroupVisitConstant.VISIT_IN_GROUP); |
|
|
|
}else { |
|
|
|
result.setPattern(GroupVisitConstant.VISIT_UNKNOWN); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |