package com.ks.app.service.impl.user; import java.lang.Exception; import javax.annotation.Resource; import com.ks.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.ks.app.dao.user.WXUserInfoMapper; import com.ks.app.entity.user.WXUserInfo; import com.ks.app.service.inter.user.WXUserInfoService; import com.ks.app.service.query.user.WXUserInfoQuery; import com.ks.app.dao.user.WXUserInfoMapper.DaoQuery; @Service public class WXUserInfoServiceImpl implements WXUserInfoService { @Resource private WXUserInfoMapper wXUserInfoMapper; @Override public List 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 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 list = wXUserInfoMapper.list(daoQuery); if (list == null || list.size() == 0) { return null; } return list.get(0); } }