package com.xzx.gc.user.service;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.xzx.gc.common.exception.RestException;
|
import com.xzx.gc.common.utils.StringUtils;
|
import com.xzx.gc.entity.*;
|
import com.xzx.gc.user.dto.*;
|
import com.xzx.gc.user.mapper.AccountMapper;
|
import com.xzx.gc.user.mapper.JhyInfoMapper;
|
import com.xzx.gc.user.mapper.UserLoginInfoMapper;
|
import com.xzx.gc.user.mapper.UserMapper;
|
import com.xzx.gc.user.vo.GetScoreNumVo;
|
import com.xzx.gc.user.vo.JhyInfoListVo;
|
import com.xzx.gc.user.vo.ViewJhyInfoVo;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import tk.mybatis.mapper.entity.Example;
|
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@Service
|
@Transactional
|
public class JhyInfoService {
|
|
@Autowired
|
private JhyInfoMapper jhyInfoMapper;
|
|
@Autowired
|
private UserMapper userMapper;
|
|
@Autowired
|
private UserLoginInfoMapper userLoginInfoMapper;
|
@Autowired
|
private AccountMapper accountMapper;
|
|
public void applyJhy(JhyApplyDto applyDto) {
|
JhyInfo mobileIsExist = jhyInfoMapper.selectExistJhyByIndeityOrMobile(applyDto.getMobile(), applyDto.getIdentity());
|
if (mobileIsExist != null) {
|
if (applyDto.getUserId().equals(mobileIsExist.getUserId())) {
|
throw new RestException(-3, "审核中或审核成功, 请勿重复提交");
|
}
|
|
throw new RestException(-3, "手机号/身份证号已注册集物员");
|
}
|
|
jhyInfoMapper.deleteByUserId(applyDto.getUserId());
|
|
log.info("图片地址:{}", applyDto.getCardPos());
|
JhyInfo jhyInfo = new JhyInfo();
|
BeanUtil.copyProperties(applyDto, jhyInfo);
|
jhyInfo.setCreatedTime(new Date());
|
jhyInfo.setIsJhy(JhyInfo.IS_JHY_N);
|
jhyInfo.setCardPos(applyDto.getCardPos());
|
jhyInfo.setStatus(JhyInfo.CHECK_WAIT);
|
jhyInfoMapper.insert(jhyInfo);
|
}
|
|
public int applyStatus(String userId) {
|
JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(userId);
|
if (jhyInfo == null) {
|
return 0;
|
}
|
|
return jhyInfo.getStatus();
|
}
|
|
public int isJhy(String userId) {
|
JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(userId);
|
if (jhyInfo == null) {
|
return 0;
|
}
|
|
if (JhyInfo.CHECK_REFUSE.equals(jhyInfo.getStatus())) {
|
return 0;
|
}
|
|
if (JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
|
return 1;
|
} else {
|
return 2;
|
}
|
}
|
|
public Map<String, Object> queryList(JhyInfoListDto jhyInfoListDto) {
|
PageHelper.startPage(jhyInfoListDto.getPage(), jhyInfoListDto.getLimit());
|
List<JhyInfoListVo> jhyInfoListVos = jhyInfoMapper.selectJhyInfoList(jhyInfoListDto);
|
if(CollUtil.isNotEmpty(jhyInfoListVos)){
|
for(JhyInfoListVo jhyInfoListVo : jhyInfoListVos){
|
String userId = jhyInfoListVo.getUserId();
|
if(StrUtil.isNotEmpty(userId)){
|
AccountInfo accountInfo = accountMapper.selectOneByUserId(userId);
|
if(ObjectUtil.isNotEmpty(accountInfo)){
|
String collectScore = StrUtil.isEmpty(accountInfo.getCollectScore()) ? "0" : accountInfo.getCollectScore();
|
jhyInfoListVo.setScore(new BigDecimal(collectScore).setScale( 2, BigDecimal.ROUND_DOWN ));
|
}
|
|
Example example = new Example(UserLoginInfo.class);
|
Example.Criteria criteria = example.createCriteria();
|
criteria.andEqualTo("userId", userId);
|
example.setOrderByClause("login_time desc");
|
List<UserLoginInfo> userLoginInfos = userLoginInfoMapper.selectByExample(example);
|
if (CollUtil.isNotEmpty(userLoginInfos)) {
|
jhyInfoListVo.setLastLogintime(CollUtil.getFirst(userLoginInfos).getLoginTime());
|
}
|
}
|
}
|
}
|
PageInfo<JhyInfoListVo> pageInfo = new PageInfo<>(jhyInfoListVos);
|
|
Map<String, Object> data = new HashMap<>();
|
int count = Convert.toInt(pageInfo.getTotal());
|
data.put("data", jhyInfoListVos);
|
data.put("count", count);
|
data.put("code", 0);
|
return data;
|
}
|
|
public void examineJwy(ExamineJwyDto model) {
|
long id = model.getId();
|
JhyInfo jhyInfo = jhyInfoMapper.selectByPrimaryKey(id);
|
Integer type = model.getType();
|
if(1 == type){
|
jhyInfo.setStatus(2);
|
jhyInfo.setIsJhy(1+"");
|
}else if(2 == type){
|
jhyInfo.setStatus(3);
|
jhyInfo.setIsJhy(2+"");
|
}
|
jhyInfoMapper.updateByPrimaryKey(jhyInfo);
|
}
|
|
public void addScoreNum(AddScoreNumDto model) {
|
Example exampleAccount = new Example(AccountInfo.class);
|
Example.Criteria criteriaAccount = exampleAccount.createCriteria();
|
criteriaAccount.andEqualTo("userId",model.getUserId());
|
List<AccountInfo> accountInfos = accountMapper.selectByExample(exampleAccount);
|
if(CollUtil.isNotEmpty(accountInfos)){
|
AccountInfo accountInfo = accountInfos.get(0);
|
String collectScore = StrUtil.isEmpty(accountInfo.getCollectScore())?"0":accountInfo.getCollectScore();
|
// collectScore = collectScore + model.getScore();
|
accountInfo.setCollectScore(model.getScore().toString());
|
accountMapper.updateByPrimaryKey(accountInfo);
|
|
ScoreDetails scoreDetailsRet = new ScoreDetails();
|
scoreDetailsRet.setUserId(model.getUserId());
|
scoreDetailsRet.setType(ScoreDetails.SCORE_TYPE_ADMIN_RECHARGE);
|
scoreDetailsRet.setOriginalScore(new BigDecimal(collectScore).setScale( 0, BigDecimal.ROUND_DOWN ));
|
scoreDetailsRet.setCurrentScore(new BigDecimal(model.getScore()).setScale( 0, BigDecimal.ROUND_DOWN ));
|
scoreDetailsRet.setChangeScore(new BigDecimal(model.getScore()).setScale( 0, BigDecimal.ROUND_DOWN ));
|
scoreDetailsRet.setCreatedTime(new Date());
|
accountMapper.insertScoreDetailsRet(scoreDetailsRet);
|
}
|
}
|
|
public GetScoreNumVo getScoreNum(GetScoreNumDto model) {
|
GetScoreNumVo getScoreNumVo = new GetScoreNumVo();
|
Example exampleAccount = new Example(AccountInfo.class);
|
Example.Criteria criteriaAccount = exampleAccount.createCriteria();
|
criteriaAccount.andEqualTo("userId",model.getUserId());
|
List<AccountInfo> accountInfos = accountMapper.selectByExample(exampleAccount);
|
if(CollUtil.isNotEmpty(accountInfos)){
|
AccountInfo accountInfo = accountInfos.get(0);
|
getScoreNumVo.setScore(new BigDecimal(StrUtil.isEmpty(accountInfo.getCollectScore())?"0":accountInfo.getCollectScore()).setScale( 0, BigDecimal.ROUND_DOWN ));
|
}
|
return getScoreNumVo;
|
}
|
|
public ViewJhyInfoVo viewJhyInfo(Long id) {
|
JhyInfo jhyInfo = jhyInfoMapper.selectByPrimaryKey(id);
|
ViewJhyInfoVo viewJhyInfoVo = new ViewJhyInfoVo();
|
viewJhyInfoVo.setIsJhy(jhyInfo.getIsJhy());
|
viewJhyInfoVo.setUsername(jhyInfo.getUsername());
|
viewJhyInfoVo.setMobile(jhyInfo.getMobile());
|
viewJhyInfoVo.setIdCard(jhyInfo.getIdentity());
|
viewJhyInfoVo.setIdCardImg(jhyInfo.getCardPos());
|
viewJhyInfoVo.setAddress(jhyInfo.getAddress());
|
String userId = jhyInfo.getUserId();
|
AccountInfo accountInfo = accountMapper.selectOneByUserId(userId);
|
String collectScore = accountInfo.getCollectScore();
|
BigDecimal bigDecimal = new BigDecimal(StrUtil.isEmpty(collectScore) ? "0" : collectScore).setScale( 2, BigDecimal.ROUND_DOWN );
|
viewJhyInfoVo.setScore(bigDecimal);
|
viewJhyInfoVo.setCreateTime(jhyInfo.getCreatedTime().toString());
|
|
UserInfo userInfo = userMapper.selectByPrimaryKey(userId);
|
String nickName = userInfo.getNickName();
|
if(StrUtil.isNotEmpty(nickName)){
|
String decode = StringUtils.decode(nickName);
|
viewJhyInfoVo.setNickname(decode);
|
}
|
|
List<UserLoginInfo> userLoginInfos = userLoginInfoMapper.selectOneByUserId(userId);
|
if(CollUtil.isNotEmpty(userLoginInfos)){
|
String loginTime = userLoginInfos.get(0).getLoginTime();
|
viewJhyInfoVo.setLoginTime(loginTime);
|
}
|
return viewJhyInfoVo;
|
}
|
|
public void updateJhyInfo(UpdateJhyInfoDto model) {
|
JhyInfo jhyInfo = jhyInfoMapper.selectByPrimaryKey(model.getId());
|
String mobile = model.getMobile();
|
String isJhy = model.getIsJhy();
|
jhyInfo.setIsJhy(isJhy);
|
jhyInfo.setMobile(mobile);
|
jhyInfoMapper.updateByPrimaryKey(jhyInfo);
|
}
|
}
|