package com.yeshi.fanli.service.impl.user; import java.io.InputStream; import java.io.Serializable; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.NumberUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.BindingAccountMapper; import com.yeshi.fanli.dao.mybatis.PayInfoMapper; import com.yeshi.fanli.dao.mybatis.ScanHistoryMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper; import com.yeshi.fanli.dao.mybatis.share.ShareMapper; import com.yeshi.fanli.dao.user.UserInfoDao; import com.yeshi.fanli.entity.admin.UserInfoAdmin; import com.yeshi.fanli.entity.bus.user.BindingAccount; import com.yeshi.fanli.entity.bus.user.InviteUser; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.WeiXinUser; import com.yeshi.fanli.entity.system.System; import com.yeshi.fanli.exception.ThreeSaleException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.hongbao.HongBaoService; import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.Utils; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.util.wx.WXLoginUtil; @Service public class UserInfoServiceImpl implements UserInfoService { @Resource private UserInfoDao userInfoDao; @Resource private UserInfoService userInfoService; @Resource private HongBaoService hongBaoService; @Resource private ConfigService configService; @Resource private ThreeSaleSerivce threeSaleSerivce; @Resource private UserInfoMapper userInfoMapper; @Resource private BindingAccountMapper bindingAccountMapper; @Resource private PayInfoMapper payInfoMapper; @Resource private UserShareGoodsHistoryMapper userShareGoodsHistoryMapper; @Resource private ScanHistoryMapper scanHistoryMapper; @Resource private ShareMapper shareMapper; @Resource private HongBaoV2CountService hongBaoV2CountService; public UserInfo getUserByLoginTypeAndOpenId(int loginType, String openid, String appid) { List list = null; if (loginType == 1) { list = userInfoDao.list("from UserInfo u where u.openid=? and u.appId = ? ", new Serializable[] { openid, appid }); } else { list = userInfoDao.list("from UserInfo u where u.wxUnionId=? and u.appId = ? ", new Serializable[] { openid, appid }); } if (list != null && list.size() > 0) { return list.get(0); } return null; } // // public UserInfo getUserByLoginTypeAndOpenIdByMybatis(int loginType, // String openid, String appid) { // List list = null; // if (loginType == 1) { // list = userInfoDao.list("from UserInfo u where u.openid=? and u.appId = ? // ", // new Serializable[] { openid, appid }); // } else { // list = userInfoDao.list("from UserInfo u where u.wxUnionId=? and u.appId // = ? ", // new Serializable[] { openid, appid }); // } // if (list != null && list.size() > 0) { // return list.get(0); // } // return null; // } @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) public UserInfo addUser(UserInfo form, String appid) { try { LogHelper.test("用户的注册信息:" + new Gson().toJson(form)); form.setCreatetime(new Date().getTime()); form.setRank(0); String openId = form.getLoginType() == Constant.TAOBAO ? form.getOpenid() : form.getWxUnionId(); UserInfo find = getUserByLoginTypeAndOpenId(form.getLoginType(), openId, Constant.APPID); if (find != null) { return find; } boolean create = createUser(form, appid); if (!create) { return null; } int loginType = form.getLoginType(); // 建的假用户。。 if (loginType == -1) { return form; } if (form.getSystem().getId() != 7) hongBaoService.setNewUserHongBao(form, 1); LogHelper.userInfo("添加用户:" + form); if (form.getLoginType() == Constant.WEIXIN) { // final UserInfo temp = form; ThreadUtil.run(new Runnable() { public void run() { UserInfo temp = userInfoDao.find(UserInfo.class, form.getId()); COSManager cosManager = COSManager.getInstance(); InputStream inputStream = HttpUtil.getAsInputStream(temp.getPortrait()); String uploadFile = cosManager.uploadFile(inputStream, UUID.randomUUID().toString()).getUrl(); temp.setPortrait(uploadFile); userInfoDao.update(temp); } }); } } catch (Exception e) { try { LogHelper.errorDetailInfo(e); } catch (Exception e1) { e1.printStackTrace(); } return null; } return form; } public boolean createUser(UserInfo form, String appid) { Long id = (Long) userInfoDao.excute(new HibernateCallback() { public Long doInHibernate(Session session) throws HibernateException { SQLQuery query = session.createSQLQuery("SELECT IFNULL(MAX(id),100000) FROM yeshi_ec_user "); List list = query.list(); long dd = (long) (Math.random() * 100); if (dd == 0) { dd = 1; } long bid = Long.parseLong(list.get(0) + ""); return bid + dd; } }); form.setId(id); form.setAppId(appid); userInfoDao.save(form); return true; } public UserInfo getUserById(long uid) { UserInfo user = userInfoDao.find(UserInfo.class, uid); if (user.getState() != null && user.getState() != UserInfo.STATE_NORMAL) return null; if (user != null) { user.setRankIcon(UserUtil.getRankIcon(user.getRank())); user.setRankNamePicture(UserUtil.getRankNamePicture(user.getRank())); } return user; } @Transactional public void update(UserInfo user) { userInfoDao.update(user); } public long getUserCount() { return userInfoDao.getCount("select count(*) from UserInfo"); } public List getUserList(int index, String key) { int start = index * Constant.PAGE_SIZE; if (NumberUtil.isNumeric(key)) { long l = Long.parseLong(key); return userInfoDao.list("from UserInfo u where u.id = ? or u.nickName like ? order by u.id desc", start, Constant.PAGE_SIZE, new Serializable[] { l, "%" + key + "%" }); } return userInfoDao.list("from UserInfo u where u.nickName like ? order by u.id desc ", start, Constant.PAGE_SIZE, new Serializable[] { "%" + key + "%" }); } public int getUserCount(String key) { if (NumberUtil.isNumeric(key)) { long lk = Long.parseLong(key); return (int) userInfoDao.getCount("select count(u.id) from UserInfo u where u.id = ? or u.nickName like ? ", new Serializable[] { lk, "%" + key + "%" }); } Long lcount = userInfoDao.getCount("select count(u.id) from UserInfo u where u.nickName like ? ", new Serializable[] { "%" + key + "%" }); return lcount.intValue(); } @SuppressWarnings("unchecked") public Map getnewUserByDate(final int days, Date date) { final Map map = new HashMap(); long timestampms = date.getTime(); final long timestamps = timestampms / 1000; List list = TimeUtil.getEmupDate(days, timestampms); for (String dataStr : list) { map.put(dataStr, 0); } return (Map) userInfoDao.excute(new HibernateCallback>() { public Map doInHibernate(Session session) throws HibernateException { SQLQuery sqlQuery = session.createSQLQuery( "SELECT DATE(FROM_UNIXTIME(createtime/1000)) c,COUNT(*) FROM yeshi_ec_user WHERE DATE_SUB(FROM_UNIXTIME(?), INTERVAL ? DAY) <= DATE(FROM_UNIXTIME(createtime/1000)) AND DATE(FROM_UNIXTIME(createtime/1000)) <= FROM_UNIXTIME(?) GROUP BY c"); sqlQuery.setParameter(0, timestamps); sqlQuery.setParameter(1, days); sqlQuery.setParameter(2, timestamps); List list = sqlQuery.list(); for (Object[] objArr : list) { map.put(TimeUtil.getSimpleDate((Date) objArr[0]), ((BigInteger) objArr[1]).intValue()); } return map; } }); } @SuppressWarnings("unchecked") public Map getnewUserByMonth(final int months, final Date endDate) { List monthList = Utils.getDateMonthList(months, endDate); final Map map = new HashMap(); for (String monthStr : monthList) { map.put(monthStr, 0); } return (Map) userInfoDao.excute(new HibernateCallback>() { public Map doInHibernate(Session session) throws HibernateException { Calendar calendar = Calendar.getInstance(); calendar.setTime(endDate); calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 1); calendar.set(Calendar.DAY_OF_MONTH, 1); long curTime = (calendar.getTime().getTime()) / 1000; SQLQuery sqlQuery = session.createSQLQuery( "SELECT DATE_FORMAT(FROM_UNIXTIME(createtime/1000),'%Y-%m') months,COUNT(*) FROM yeshi_ec_user WHERE DATE(FROM_UNIXTIME(createtime/1000)) >= DATE_SUB(FROM_UNIXTIME(?),INTERVAL ? MONTH) AND DATE(FROM_UNIXTIME(createtime/1000)) < FROM_UNIXTIME(?) GROUP BY months"); sqlQuery.setParameter(0, curTime); sqlQuery.setParameter(1, months); sqlQuery.setParameter(2, curTime); List list = sqlQuery.list(); for (Object[] objArr : list) { map.put((String) objArr[0], ((BigInteger) objArr[1]).intValue()); } return map; } }); } @SuppressWarnings("unchecked") public Map getUserTotalByDate(final int days, Date date) { final Map map = new HashMap(); long timestampms = date.getTime(); final List list = TimeUtil.getEmupDate(days, timestampms); for (String dataStr : list) { map.put(dataStr, 0); } return (Map) userInfoDao.excute(new HibernateCallback>() { public Map doInHibernate(Session session) throws HibernateException { StringBuffer sb = new StringBuffer(); int ii = 0; for (String day : list) { if (ii == 0) { sb.append("SELECT '" + day + "' AS t,IFNULL(SUM(a.s),0) FROM yeshi_ec_user_day a WHERE a.c<= '" + day + "' "); } else { sb.append("UNION ALL SELECT '" + day + "' AS t,IFNULL(SUM(a.s),0) FROM yeshi_ec_user_day a WHERE a.c<= '" + day + "' "); } ii++; } SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); List list = sqlQuery.list(); for (Object[] objArr : list) { map.put(String.valueOf(objArr[0]), ((BigDecimal) objArr[1]).intValue()); } return map; } }); } @SuppressWarnings("unchecked") public Map getUserTotalByMonth(int months, Date date) { final List monthList = Utils.getDateMonthList(months, date); final Map map = new HashMap(); for (String monthStr : monthList) { map.put(monthStr, 0); } return (Map) userInfoDao.excute(new HibernateCallback>() { public Map doInHibernate(Session session) throws HibernateException { StringBuffer sb = new StringBuffer(); int ii = 0; for (String month : monthList) { if (ii == 0) { sb.append("SELECT '" + month + "' AS t,IFNULL(SUM(a.s),0) FROM yeshi_ec_user_month a WHERE a.months<= '" + month + "' "); } else { sb.append("UNION ALL SELECT '" + month + "' AS t,IFNULL(SUM(a.s),0) FROM yeshi_ec_user_month a WHERE a.months<= '" + month + "' "); } ii++; } SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); List list = sqlQuery.list(); for (Object[] objArr : list) { map.put((String) objArr[0], ((BigDecimal) objArr[1]).intValue()); } return map; } }); } public List getUserListByUid(long uid) { List list = userInfoDao.list("from UserInfo u where u.id = ? ", new Serializable[] { uid }); return list; } public double getFreezeAssets(final double min) { return (Double) userInfoDao.excute(new HibernateCallback() { public Double doInHibernate(Session session) throws HibernateException { Query query = session.createSQLQuery( "select IFNULL(sum(u.my_hongBao),0) from yeshi_ec_user u where u.my_hongBao < ? "); query.setParameter(0, min); Double result = Double.parseDouble(query.uniqueResult() + ""); return result.doubleValue(); } }); } public double getCanAssets(final double min) { return (Double) userInfoDao.excute(new HibernateCallback() { public Double doInHibernate(Session session) throws HibernateException { Query query = session.createSQLQuery( "select IFNULL(sum(u.my_hongBao),0) from yeshi_ec_user u where u.my_hongBao >= ? "); query.setParameter(0, min); Double result = Double.parseDouble(query.uniqueResult() + ""); return result.doubleValue(); } }); } public long getRandomShamUser() { return (Long) userInfoDao.excute(new HibernateCallback() { public Long doInHibernate(Session session) throws HibernateException { SQLQuery sqlQuery = session .createSQLQuery("SELECT id FROM yeshi_ec_user WHERE login_type=-1 ORDER BY RAND() LIMIT 1"); List list = sqlQuery.list(); if (list.size() > 0) { long id = Long.parseLong(list.get(0) + ""); return id; } return (long) 0; } }); } @Transactional public boolean inviteWXUserInfo(String code, UserInfo inviter) { WeiXinUser weiXinUser = WXLoginUtil.getWeiXinWYUser(code); if (weiXinUser == null) { return false; } String wxUnionId = weiXinUser.getUnionid(); UserInfo find = getUserByLoginTypeAndOpenId(Constant.WEIXIN, wxUnionId, Constant.APPID); if (find == null) { find = new UserInfo(); find.setAppId(Constant.APPID); find.setWxUnionId(weiXinUser.getUnionid()); String wxHeadImg = COSManager.getInstance() .uploadFile(HttpUtil.getAsInputStream(weiXinUser.getHeadimgurl()), Constant.WXHEADURL + UUID.randomUUID().toString()) .getUrl(); find.setPortrait(wxHeadImg); find.setWxPic(wxHeadImg); find.setNickName(weiXinUser.getNickname()); find.setWxName(weiXinUser.getNickname()); find.setLoginType(Constant.WEIXIN); find.setRank(0); find.setWxOpenId(weiXinUser.getOpenid()); System system = new System(Constant.FANLI); system.setPlatform(1); find.setSystem(system); } try { threeSaleSerivce.bind(find, inviter); return true; } catch (ThreeSaleException e) { e.printStackTrace(); return false; } } @Transactional public void unBindUserInfo(UserInfo user, int type) { if (type == Constant.TAOBAO) { user.setOpenid(""); user.setTbName(""); user.setTbPic(""); if (!StringUtil.isNullOrEmpty(user.getWxOpenId())) { user.setLoginType(Constant.WEIXIN); user.setNickName(user.getWxName()); user.setPortrait(user.getWxPic()); } } else if (type == Constant.WEIXIN) { user.setWxName(""); user.setWxOpenId(""); user.setWxUnionId(""); user.setWxPic(""); if (!StringUtil.isNullOrEmpty(user.getOpenid())) { user.setLoginType(Constant.TAOBAO); user.setNickName(user.getTbName()); user.setPortrait(user.getTbPic()); } } userInfoDao.update(user); } @Transactional public void addMoney(UserInfo userInfo, BigDecimal money) { userInfoDao.excute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException { Query query = session.createQuery("update UserInfo u set u.myHongBao = u.myHongBao + ? where u.id = ?"); query.setParameter(0, money); query.setParameter(1, userInfo.getId()); query.executeUpdate(); return null; } }); } @SuppressWarnings("unchecked") @Override public List findFriends(long id, int type) { List list; if (type == 1) { list = userInfoDao.list("select ts.worker from ThreeSale ts where ts.boss.id = ?", new Serializable[] { id }); } else { list = (List) userInfoDao.excute(new HibernateCallback>() { @Override public List doInHibernate(Session session) throws HibernateException { SQLQuery query = session.createSQLQuery( "select uu.* from yeshi_ec_user uu left join (SELECT trw.`worker_id` as id FROM yeshi_ec_threesale trw RIGHT JOIN " + "(SELECT tr.`worker_id` AS id FROM `yeshi_ec_threesale` tr LEFT JOIN `yeshi_ec_user` u ON tr.`boss_id`=u.`id` WHERE tr.`boss_id`=?) nu ON nu.id = trw.`boss_id`" + "WHERE nu.id = trw.`boss_id`) u on uu.id=u.id where uu.id=u.id"); query.setParameter(0, id); query.addEntity(UserInfo.class); return query.list(); } }); } return list; } @Override public int findFriendsCount(long id, int type) { if (type == 1) { return (int) userInfoDao.getCount("select count(*) from ThreeSale ts where ts.boss.id = ? and ts.state=1", new Serializable[] { id }); } else { return (int) userInfoDao.getCountSQL(" from yeshi_ec_threesale trw RIGHT JOIN " + "(SELECT tr.`worker_id` AS id FROM `yeshi_ec_threesale` tr LEFT JOIN `yeshi_ec_user` u ON tr.`boss_id`=u.`id` WHERE tr.`boss_id`=? and tr.state=1) nu ON nu.id = trw.`boss_id`" + "WHERE nu.id = trw.`boss_id` and trw.state=1", new Serializable[] { id }); } } @Override public void updateLoginInfo(UserInfo user) { userInfoDao.excute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException { SQLQuery query = session .createSQLQuery("update yeshi_ec_user u set u.loginip=?,u.last_logintime=? where u.id = ?"); query.setParameter(0, user.getLastLoginIp()); query.setParameter(1, user.getLastLoginTime()); query.setParameter(2, user.getId()); return query.executeUpdate(); } }); } @Override public List getFriendsList(final long id, int type, int page, int pageSize) { List list = null; if (type == 1) { list = userInfoDao.getHibernateTemplate().execute(new HibernateCallback>() { @Override public List doInHibernate(Session session) throws HibernateException { List list = session .createSQLQuery( "SELECT u.id,u.`nick_name`,u.`portrait`,uu.state FROM (SELECT t.* FROM `yeshi_ec_threesale` t " + "WHERE t.`boss_id`=? AND (t.expire = 0 OR t.expire IS NULL) ORDER BY t.createTime DESC) uu LEFT JOIN yeshi_ec_user u ON u.`id`=uu.worker_id") .setParameter(0, id).setFirstResult((page - 1) * pageSize).setMaxResults(pageSize).list(); return covertToInviteUserList(list); } }); } else { list = userInfoDao.getHibernateTemplate().execute(new HibernateCallback>() { @Override public List doInHibernate(Session session) throws HibernateException { List list = session .createSQLQuery( "SELECT u.id,u.`nick_name`,u.`portrait`,uu.state FROM (SELECT tt.* FROM `yeshi_ec_threesale` t LEFT JOIN yeshi_ec_threesale tt ON tt.`boss_id`=t.`worker_id` " + " WHERE t.`boss_id`=? AND tt.`id` IS NOT NULL AND (tt.expire = 0 OR tt.expire IS NULL) ORDER BY tt.createTime DESC) uu LEFT JOIN yeshi_ec_user u ON u.`id`=uu.worker_id") .setParameter(0, id).setFirstResult((page - 1) * pageSize).setMaxResults(pageSize).list(); return covertToInviteUserList(list); } }); } return list; } private List covertToInviteUserList(List list) { List ilist = new ArrayList<>(); if (list != null) for (int i = 0; i < list.size(); i++) { Object[] objs = (Object[]) list.get(i); InviteUser inviteUser = new InviteUser(); UserInfo user = new UserInfo(); user.setId(Long.parseLong(objs[0] + "")); user.setNickName(objs[1] + ""); user.setPortrait(objs[2] + ""); inviteUser.setUserInfo(user); inviteUser.setValid(Boolean.parseBoolean(objs[3] + "")); ilist.add(inviteUser); } return ilist; } @Override public void cleanPassword(long id) { userInfoMapper.cleanPassword(id); } @Override public long getFriendsListCount(long id, int type) { if (type == 1) return userInfoDao.getCountSQL("SELECT COUNT(t.`id`) FROM `yeshi_ec_threesale` t WHERE t.`boss_id`= " + id + " AND (t.expire = 0 OR t.expire IS NULL)"); else return userInfoDao.getCountSQL( "SELECT COUNT(tt.id) FROM `yeshi_ec_threesale` t LEFT JOIN yeshi_ec_threesale tt ON tt.`boss_id`=t.`worker_id` WHERE t.`boss_id`=" + id + " AND tt.`id` IS NOT NULL AND (tt.expire = 0 OR tt.expire IS NULL)"); } @Override public BigDecimal getNewPeopleHB(Long id) { return userInfoMapper.getNewPeopleHB(id); } @Override public BigDecimal getMyHB(Long id) { return userInfoMapper.getMyHB(id); } @Override public UserInfo getUserByIdWithMybatis(long uid) { UserInfo user = userInfoMapper.selectByPrimaryKey(uid); return UserUtil.filterForClientUser(user); } @Override public List query(long start, int count, String key, Integer userType, Integer days, String startTime, String endTime, Integer orderField, Integer orderMode) { List adminList = new ArrayList(); List userList = userInfoMapper.query(start, count, key, userType, days, startTime, endTime, orderField, orderMode); if (userList == null || userList.size() == 0) { return null; } for (UserInfo userInfo : userList) { UserInfoAdmin userInfoAdmin = new UserInfoAdmin(); Long lastLoginTime = userInfo.getLastLoginTime(); if (lastLoginTime == null) { userInfo.setLastLoginTime(0L); } userInfoAdmin.setUserInfo(userInfo); String wxName = userInfo.getWxName(); if (StringUtil.isNullOrEmpty(wxName)) { userInfoAdmin.setWxNameState(1); } else { userInfoAdmin.setWxNameState(2); } String phone = userInfo.getPhone(); if (StringUtil.isNullOrEmpty(phone)) { userInfoAdmin.setPhoneState(1); } else { userInfoAdmin.setPhoneState(2); } String tbName = userInfo.getTbName(); if (StringUtil.isNullOrEmpty(tbName)) { userInfoAdmin.setTbNameState(1); } else { userInfoAdmin.setTbNameState(2); } Long uid = userInfo.getId(); /* 绑定账号信息 */ List account = bindingAccountMapper.selectByUid(uid); if (account != null && account.size() > 0) { BindingAccount bindingAccount = account.get(0); Integer type = bindingAccount.getType(); if (type != null && type == 1) { // 支付宝 userInfoAdmin.setAccountAlipay(bindingAccount.getAccount()); userInfoAdmin.setAccountName(bindingAccount.getName()); userInfoAdmin.setAccountBindId(bindingAccount.getId()); } else if (type != null && type == 2) { // 微信 userInfoAdmin.setAccountWX(bindingAccount.getAccount()); userInfoAdmin.setAccountNameWX(bindingAccount.getName()); userInfoAdmin.setAccountBindIdWX(bindingAccount.getId()); } } // 最后一次下单时间 Date lastOrderTime = hongBaoV2CountService.getLastHongBaoTime(uid); if (lastOrderTime == null) { userInfoAdmin.setLastOrderTime(0); } else { userInfoAdmin.setLastOrderTime(lastOrderTime.getTime()); } // 历史总订单 long totalOrder = hongBaoV2CountService.countValidNumberByUid(uid, null); // 今日总订单 long todayOrder = hongBaoV2CountService.countValidNumberByUid(uid, 1); // 本月总订单 long monthOrder = hongBaoV2CountService.countValidNumberByUid(uid, 2); userInfoAdmin.setTotalOrder(totalOrder); userInfoAdmin.setTodayOrder(todayOrder); userInfoAdmin.setMonthOrder(monthOrder); // 未领取红包 待入账金额 BigDecimal unaccountedMoney = hongBaoV2CountService.countWillGetMoneyByUid(uid); if (unaccountedMoney ==null) { unaccountedMoney = new BigDecimal(0); } userInfoAdmin.setUnaccountedMoney(unaccountedMoney.toString()); // 历史总收益 BigDecimal totalMoneyHistory = hongBaoV2CountService.countMoneyByUidAndState(uid,3); if (totalMoneyHistory ==null) { totalMoneyHistory = new BigDecimal(0); } userInfoAdmin.setTotalMoneyHistory(totalMoneyHistory.toString()); // 支付宝账号 累计转账总金额 double totalMoney = payInfoMapper.sumMoneyByUid(uid); userInfoAdmin.setTotalMoney(totalMoney); // 累计提现 (暂未计入微信) userInfoAdmin.setTotalExtract(totalMoney); // 统计分享个数 long countUserShares = userShareGoodsHistoryMapper.countUserShares(uid); userInfoAdmin.setCountUserShares(countUserShares); // 统计浏览足迹 long countScanHistory = scanHistoryMapper.countUserScanHistory(uid); userInfoAdmin.setCountScanHistory(countScanHistory); // 一度队员数量 int firstTeamCount = shareMapper.myFirstTeamCount(uid + ""); userInfoAdmin.setCountLevelOne(firstTeamCount); // 二度队员数量 int secondTeamCount = shareMapper.mySecondTeamCount(uid + ""); userInfoAdmin.setCountLevelTwo(secondTeamCount); adminList.add(userInfoAdmin); } return adminList; } @Override public long queryCount(String key, Integer userType, Integer days, String startTime, String endTime) { return userInfoMapper.queryCount(key, userType, days, startTime, endTime); } @Override public double querySumMoney(String key, Integer userType, Integer days, String startTime, String endTime) { return userInfoMapper.querySumMoney(key, userType, days, startTime, endTime); } @Override public UserInfo selectByPKey(Long id) { return userInfoMapper.selectByPKey(id); } @Override public int updateByPrimaryKeySelective(UserInfo record) { return userInfoMapper.updateByPrimaryKeySelective(record); } @Override @Transactional public void deleteBindInfo(UserInfo user, int type) { if (type == 1) { user.setOpenid(""); user.setTbName(""); user.setTbPic(""); if (!StringUtil.isNullOrEmpty(user.getWxOpenId())) { user.setLoginType(Constant.WEIXIN); user.setNickName(user.getWxName()); user.setPortrait(user.getWxPic()); } } else if (type == 2) { user.setWxName(""); user.setWxOpenId(""); user.setWxUnionId(""); user.setWxPic(""); if (!StringUtil.isNullOrEmpty(user.getOpenid())) { user.setLoginType(Constant.TAOBAO); user.setNickName(user.getTbName()); user.setPortrait(user.getTbPic()); } } else if (type == 3) { user.setPhone(""); } userInfoMapper.updateByPrimaryKeySelective(user); } @Override public List longTimeNoLogin(int daysNum, List list) { return userInfoMapper.longTimeNoLogin(daysNum, list); } /** * 根据电话号码、邀请码获取邀请用户 * @param phone * @param inviteCode * @return */ @Override public UserInfo getInfoByPhoneOrInviteCode(String phone, String inviteCode) { return userInfoMapper.getInfoByPhoneOrInviteCode(phone, inviteCode); } }