package com.ks.daylucky.service.impl.remote;
|
|
import com.beust.jcommander.ParameterException;
|
import com.ks.daylucky.exception.UserInfoException;
|
import com.ks.daylucky.mapper.UserInfoExtraMapper;
|
import com.ks.daylucky.mapper.UserInfoMapper;
|
import com.ks.daylucky.pojo.DO.UserInfo;
|
import com.ks.daylucky.pojo.DO.UserInfoExtra;
|
import com.ks.daylucky.pojo.VO.SimpleUser;
|
import com.ks.daylucky.query.UserInfoQuery;
|
import com.ks.daylucky.service.UserInfoExtraService;
|
import com.ks.daylucky.service.UserInfoService;
|
import com.ks.lucky.pojo.DO.BaseUser;
|
import org.springframework.stereotype.Service;
|
import org.springframework.validation.annotation.Validated;
|
|
import javax.annotation.Resource;
|
import javax.validation.Valid;
|
import java.util.*;
|
|
@Service
|
public class UserInfoServiceImpl implements UserInfoService {
|
|
@Resource
|
private UserInfoMapper userInfoMapper;
|
|
@Resource
|
private UserInfoExtraMapper userInfoExtraMapper;
|
|
@Resource
|
private UserInfoExtraService userInfoExtraService;
|
|
@Override
|
public UserInfo getUserInfo(Long appId, String identifyCode) {
|
UserInfoQuery query = new UserInfoQuery();
|
query.appId = appId;
|
query.identifyCode = identifyCode;
|
query.count = 1;
|
List<UserInfo> list = userInfoMapper.list(query);
|
if (list != null && list.size() > 0) {
|
return list.get(0);
|
}
|
return null;
|
}
|
|
@Validated
|
@Override
|
public Long addUserInfo(@Valid UserInfo userInfo) throws ParameterException, UserInfoException {
|
UserInfo old = getUserInfo(userInfo.getAppId(), userInfo.getIdentifyCode());
|
if (old != null) {
|
throw new UserInfoException(UserInfoException.CODE_EXIST, "用户已存在");
|
}
|
|
if (userInfo.getCreateTime() != null) {
|
userInfo.setCreateTime(new Date());
|
}
|
userInfoMapper.insertSelective(userInfo);
|
|
//初始化附加信息
|
userInfoExtraService.init(userInfo.getId(), userInfo.getType() == UserInfo.TYPE_NORMAL ? true : false);
|
return userInfo.getId();
|
}
|
|
|
@Override
|
public Map<Long, UserInfo> listUserInfoAsMap(BaseUser... users) {
|
List<UserInfo> list = userInfoMapper.listUserInfo(Arrays.asList(users));
|
Map<Long, UserInfo> map = new HashMap<>();
|
if (list != null) {
|
for (UserInfo userInfo : list) {
|
map.put(userInfo.getId(), userInfo);
|
}
|
}
|
return map;
|
}
|
|
@Override
|
public List<UserInfo> getUserList(UserInfoQuery query, int page, int pageSize) {
|
query.start = (page - 1) * pageSize;
|
query.count = pageSize;
|
return userInfoMapper.list(query);
|
}
|
|
@Override
|
public long countUser(UserInfoQuery query) {
|
return userInfoMapper.count(query);
|
}
|
|
@Override
|
public UserInfo getUserDetail(Long appId, String identifyCode) {
|
UserInfo userInfo = getUserInfo(appId, identifyCode);
|
if (userInfo == null) {
|
return null;
|
}
|
|
UserInfoExtra extra = userInfoExtraMapper.selectByPrimaryKey(userInfo.getId());
|
userInfo.setUserInfoExtra(extra);
|
return userInfo;
|
}
|
|
@Override
|
public UserInfo getUserDetail(Long id) {
|
UserInfo userInfo = userInfoMapper.selectByPrimaryKey(id);
|
if (userInfo == null) {
|
return null;
|
}
|
UserInfoExtra extra = userInfoExtraMapper.selectByPrimaryKey(userInfo.getId());
|
userInfo.setUserInfoExtra(extra);
|
return userInfo;
|
}
|
|
@Override
|
public void updateUserInfo(UserInfo userInfo) {
|
if (userInfo == null || userInfo.getId() == null) {
|
return;
|
}
|
userInfo.setUpdateTime(new Date());
|
userInfoMapper.updateByPrimaryKeySelective(userInfo);
|
}
|
|
@Override
|
public SimpleUser getSimpleUser(Long id) {
|
UserInfo user = userInfoMapper.selectByPrimaryKey(id);
|
if (user == null) {
|
return null;
|
}
|
return new SimpleUser(user.getId(), user.getNickName(), user.getPortrait());
|
}
|
}
|