package com.yeshi.location.app.service.impl.user;
|
|
import java.lang.Exception;
|
import javax.annotation.Resource;
|
|
import com.yeshi.location.app.entity.SystemEnum;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
|
import org.springframework.transaction.annotation.Transactional;
|
import org.yeshi.utils.StringUtil;
|
import org.yeshi.utils.bean.BeanUtil;
|
|
import java.util.List;
|
|
import com.yeshi.location.app.dao.user.WXUserInfoDao;
|
import com.yeshi.location.app.entity.user.WXUserInfo;
|
import com.yeshi.location.app.service.inter.user.WXUserInfoService;
|
import com.yeshi.location.app.service.query.user.WXUserInfoQuery;
|
import com.yeshi.location.app.dao.user.WXUserInfoDao.DaoQuery;
|
|
@Service
|
public class WXUserInfoServiceImpl implements WXUserInfoService {
|
|
@Resource
|
private WXUserInfoDao wXUserInfoMapper;
|
|
@Override
|
public List<WXUserInfo> list(WXUserInfoQuery wXUserInfoQuery, int page, int pageSize) {
|
DaoQuery daoQuery = new DaoQuery();
|
try {
|
BeanUtil.copyProperties(wXUserInfoQuery, daoQuery);
|
} catch (IllegalAccessException e) {
|
e.printStackTrace();
|
}
|
daoQuery.start = (page - 1) * pageSize;
|
daoQuery.count = pageSize;
|
return wXUserInfoMapper.list(daoQuery);
|
}
|
|
@Override
|
public long count(WXUserInfoQuery wXUserInfoQuery) {
|
DaoQuery daoQuery = new DaoQuery();
|
try {
|
BeanUtil.copyProperties(wXUserInfoQuery, daoQuery);
|
} catch (IllegalAccessException e) {
|
e.printStackTrace();
|
}
|
return wXUserInfoMapper.count(daoQuery);
|
}
|
|
@Override
|
public WXUserInfo get(Long id) {
|
return wXUserInfoMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public void add(WXUserInfo wXUserInfo) throws Exception {
|
if (wXUserInfo.getCreateTime() == null) {
|
wXUserInfo.setCreateTime(new Date());
|
}
|
//保存
|
wXUserInfoMapper.insertSelective(wXUserInfo);
|
}
|
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public WXUserInfo save(WXUserInfo wXUserInfo) throws Exception {
|
if (wXUserInfo == null || StringUtil.isNullOrEmpty(wXUserInfo.getUnionId()) || wXUserInfo.getSystem() == null) {
|
throw new Exception("信息不完整");
|
}
|
if (wXUserInfo.getCreateTime() == null) {
|
wXUserInfo.setCreateTime(new Date());
|
}
|
WXUserInfo userInfo = selectBySystemAndUnionId(wXUserInfo.getSystem(), wXUserInfo.getUnionId());
|
if (userInfo == null) {
|
add(wXUserInfo);
|
} else {
|
//更新
|
wXUserInfo.setId(userInfo.getId());
|
wXUserInfoMapper.updateByPrimaryKeySelective(wXUserInfo);
|
}
|
return wXUserInfo;
|
}
|
|
public void update(WXUserInfo wXUserInfo) {
|
if (wXUserInfo.getUpdateTime() == null) {
|
wXUserInfo.setUpdateTime(new Date());
|
}
|
//保存
|
wXUserInfoMapper.updateByPrimaryKey(wXUserInfo);
|
}
|
|
@Override
|
public void delete(List<Long> idList) {
|
for (Long id : idList) {
|
wXUserInfoMapper.deleteByPrimaryKey(id);
|
}
|
}
|
|
@Override
|
public WXUserInfo selectBySystemAndUnionId(SystemEnum system, String unionId) {
|
if (system == null || StringUtil.isNullOrEmpty(unionId)) {
|
return null;
|
}
|
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.system = system;
|
daoQuery.unionId = unionId;
|
daoQuery.count = 1;
|
List<WXUserInfo> list = wXUserInfoMapper.list(daoQuery);
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
return list.get(0);
|
}
|
|
|
}
|