|
|
|
@ -6,10 +6,10 @@ import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
|
import com.baiye.exception.BadRequestException;
|
|
|
|
|
import com.baiye.http.CommonResponse;
|
|
|
|
|
import com.baiye.manager.UserTokenManager;
|
|
|
|
|
import com.baiye.model.enums.ResponseCode;
|
|
|
|
|
import com.baiye.modules.system.domain.Debt;
|
|
|
|
|
import com.baiye.modules.system.domain.FormUser;
|
|
|
|
|
import com.baiye.modules.system.repository.DebtFormRepository;
|
|
|
|
|
import com.baiye.modules.system.repository.FormUserRepository;
|
|
|
|
@ -32,6 +32,9 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.ServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -60,10 +63,14 @@ public class FormUserServiceImpl implements FormUserService {
|
|
|
|
|
private int workerId;
|
|
|
|
|
@Value("${snowflake.datacenterId}")
|
|
|
|
|
private int datacenterId;
|
|
|
|
|
@Value("${debt.qrcode}")
|
|
|
|
|
@Value("${debt.qrcodeUrl}")
|
|
|
|
|
String qrcodeUrl;
|
|
|
|
|
@Value("${debt.qrcodeLogo}")
|
|
|
|
|
String qrcodeLogo;
|
|
|
|
|
@Value("${debt.visitUrl}")
|
|
|
|
|
String visitUrl;
|
|
|
|
|
@Value("${debt.reqUrl}")
|
|
|
|
|
String reqUrl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -95,7 +102,7 @@ public class FormUserServiceImpl implements FormUserService {
|
|
|
|
|
FormUser formUser = formUserRepository.findByPhone(phone);
|
|
|
|
|
// 已存在用户
|
|
|
|
|
if (ObjectUtil.isNotNull(formUser)) {
|
|
|
|
|
if (formUser.getStatus() != DefaultNumberConstants.ONE_NUMBER){
|
|
|
|
|
if (!formUser.getStatus()){
|
|
|
|
|
return CommonResponse.createByErrorMessage(ResponseCode.ACCOUNT_DISABLED.getDesc());
|
|
|
|
|
}
|
|
|
|
|
formUser.setLastLoginTime(DateUtil.date());
|
|
|
|
@ -109,25 +116,37 @@ public class FormUserServiceImpl implements FormUserService {
|
|
|
|
|
Long formUserId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
|
|
|
|
|
formUser.setId(formUserId);
|
|
|
|
|
formUser.setPhone(phone);
|
|
|
|
|
formUser.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
|
|
|
|
formUser.setOptimisticVersion((long) DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
|
|
|
|
|
formUser.setInvitationNums(DefaultNumberConstants.ZERO_NUMBER);
|
|
|
|
|
// token
|
|
|
|
|
String userToken =
|
|
|
|
|
UserTokenManager.generateToken(formUserId);
|
|
|
|
|
String visit = visitUrl + userToken;
|
|
|
|
|
String visit = visitUrl + formUserId;
|
|
|
|
|
// 生成二维码图片
|
|
|
|
|
String qrcodeName = IdUtil.simpleUUID();
|
|
|
|
|
QRCodeUtil.encode
|
|
|
|
|
(visit, qrcodeUrl + "qrcode.jpg", qrcodeUrl, formUserId.toString(), Boolean.TRUE);
|
|
|
|
|
formUser.setQrCodePath(qrcodeUrl + userToken + ".jpg");
|
|
|
|
|
(visit, qrcodeLogo, qrcodeUrl, qrcodeName, Boolean.TRUE);
|
|
|
|
|
//放开文件权限
|
|
|
|
|
String os = System.getProperty("os.name");
|
|
|
|
|
if(!os.toLowerCase().startsWith("win")){
|
|
|
|
|
try {
|
|
|
|
|
Runtime.getRuntime().exec("chmod 644 -R " + qrcodeUrl + qrcodeName + ".jpg");
|
|
|
|
|
}catch (IOException e){
|
|
|
|
|
log.info("==================二维码开放权限失败====================");
|
|
|
|
|
throw new BadRequestException("失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
formUser.setQrCodePath(reqUrl + qrcodeName + ".jpg");
|
|
|
|
|
formUser.setLastLoginTime(DateUtil.date());
|
|
|
|
|
formUserRepository.save(formUser);
|
|
|
|
|
return CommonResponse.createBySuccess(userToken);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResponse<Map<String, Object>> getUserDetail(String userToken) {
|
|
|
|
|
public CommonResponse<Map<String, Object>> getUserDetail(ServletRequest servletRequest) {
|
|
|
|
|
Map<String, Object> map = new HashMap<>(DefaultNumberConstants.SIXTEEN_NUMBER);
|
|
|
|
|
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
|
|
|
|
|
String userToken = httpServletRequest.getHeader("userToken");
|
|
|
|
|
Long userId = UserTokenManager.getUserId(userToken);
|
|
|
|
|
Date now = DateUtil.date();
|
|
|
|
|
if (userId == null) {
|
|
|
|
@ -135,7 +154,8 @@ public class FormUserServiceImpl implements FormUserService {
|
|
|
|
|
}
|
|
|
|
|
FormUser formUser = findUserById(userId);
|
|
|
|
|
if (formUser == null || StringUtils.isBlank(formUser.getQrCodePath())) {
|
|
|
|
|
return CommonResponse.createByErrorMessage(ResponseCode.USER_INFORMATION_ERROR.getDesc());
|
|
|
|
|
return CommonResponse.createByErrorCodeMessage
|
|
|
|
|
(Integer.parseInt(ResponseCode.USER_INFORMATION_ERROR.getCode()),ResponseCode.USER_INFORMATION_ERROR.getDesc());
|
|
|
|
|
}
|
|
|
|
|
map.put("qrCode", formUser.getQrCodePath());
|
|
|
|
|
// 提前一周
|
|
|
|
@ -173,28 +193,14 @@ public class FormUserServiceImpl implements FormUserService {
|
|
|
|
|
public Map<String, Object> queryAll(FormUserQueryCriteria formUserQueryCriteria, Pageable pageable) {
|
|
|
|
|
Page<FormUser> debtPage = formUserRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, formUserQueryCriteria, criteriaBuilder), pageable);
|
|
|
|
|
Page<FormUserDto> map = debtPage.map(formUserMapper::toDto);
|
|
|
|
|
Map<Long, List<Debt>> listMap = debtFormRepository.findAll().stream().collect(Collectors.groupingBy(Debt::getUserId, Collectors.toList()));
|
|
|
|
|
for (FormUserDto formUserDto : map) {
|
|
|
|
|
List<Long> list = new ArrayList<>();
|
|
|
|
|
if (listMap.containsKey(formUserDto.getId())) {
|
|
|
|
|
List<Debt> debtList = listMap.get(formUserDto.getId());
|
|
|
|
|
for (Debt debt : debtList) {
|
|
|
|
|
list.add(debt.getCreateBy());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
|
List<FormUser> formUsersAll = formUserRepository.findAllById(list);
|
|
|
|
|
formUserDto.setUserList(formUsersAll);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return PageUtil.toPage(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void updateFormUserStatus(Integer status, Long id) {
|
|
|
|
|
public void updateFormUserStatus(Boolean status, Long id) {
|
|
|
|
|
formUserRepository.updateStatusById(status, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|