| | |
| | | package com.yeshi.fanli.service.impl.hongbao;
|
| | |
|
| | | import java.io.Serializable;
|
| | | import java.text.SimpleDateFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Calendar;
|
| | |
| | |
|
| | | 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.Transactional;
|
| | | import org.yeshi.utils.NumberUtil;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
|
| | | import com.yeshi.fanli.dao.user.ThreeSaleDao;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | |
| | | public class ThreeSaleSerivceImpl implements ThreeSaleSerivce {
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleDao dao;
|
| | |
|
| | | @Resource
|
| | | private HongBaoManageService hongBaoManageService;
|
| | |
|
| | | @Resource
|
| | |
| | | private MsgInviteDetailService msgInviteDetailService;
|
| | |
|
| | | public UserInfo getBoss(final long uid) {
|
| | | return (UserInfo) dao.excute(new HibernateCallback<UserInfo>() {
|
| | | public UserInfo doInHibernate(Session session) throws HibernateException {
|
| | | Query query = session.createQuery("select ts.boss FROM ThreeSale ts where ts.worker.id = ?");
|
| | | query.setParameter(0, uid);
|
| | | List<UserInfo> list = query.list();
|
| | | if (list.size() > 0) {
|
| | | return list.get(0);
|
| | | }
|
| | | return null;
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | public int findInviteCount(final long id) {
|
| | |
|
| | | return (Integer) dao.excute(new HibernateCallback<Integer>() {
|
| | |
|
| | | public Integer doInHibernate(Session session) throws HibernateException {
|
| | | SQLQuery query = session.createSQLQuery(
|
| | | "SELECT COUNT(*) from `yeshi_ec_threesale` t1 RIGHT JOIN (SELECT t2.`worker_id` AS worker_id FROM `yeshi_ec_threesale` t2 WHERE t2.`boss_id`=? ) t3 ON t1.`boss_id`=t3.worker_id WHERE t1.`boss_id`=t3.worker_id ");
|
| | | query.setParameter(0, id);
|
| | | SQLQuery query2 = session
|
| | | .createSQLQuery("SELECT COUNT(*) from `yeshi_ec_threesale` t4 WHERE t4.`boss_id`=?");
|
| | | query2.setParameter(0, id);
|
| | | int int1 = Integer.parseInt(query.uniqueResult() + "");
|
| | | int int2 = Integer.parseInt(query2.uniqueResult() + "");
|
| | | return int1 + int2;
|
| | | }
|
| | | });
|
| | | return threeSaleMapper.selectBoss(uid);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | public void validateTwentyFour() {
|
| | | dao.excute(new HibernateCallback() {
|
| | | @Override
|
| | | public Object doInHibernate(Session session) throws HibernateException {
|
| | | long currentTimeMillis = System.currentTimeMillis();
|
| | | Query query = session
|
| | | .createQuery("delete from ThreeSale ts where ts.state = ? and (?-ts.createTime) > 86400000");
|
| | | query.setParameter(0, false);
|
| | | query.setParameter(1, currentTimeMillis);
|
| | | query.executeUpdate();
|
| | | return null;
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | public void validate365() {
|
| | | dao.excute(new HibernateCallback() {
|
| | | @Override
|
| | | public Object doInHibernate(Session session) throws HibernateException {
|
| | | long currentTimeMillis = System.currentTimeMillis();
|
| | | Query query = session.createQuery("delete from ThreeSale ts where (?-ts.createTime) > 31536000000");
|
| | | query.setParameter(0, currentTimeMillis);
|
| | | query.executeUpdate();
|
| | | return null;
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @SuppressWarnings("unchecked")
|
| | | @Override
|
| | | public List<UserInfo> getFirstUsers(Long uid, int page) {
|
| | | return (List<UserInfo>) dao.excute(new HibernateCallback<List<UserInfo>>() {
|
| | |
|
| | | @Override
|
| | | public List<UserInfo> doInHibernate(Session session) throws HibernateException {
|
| | | Query query = session
|
| | | .createSQLQuery(
|
| | | "SELECT u.* FROM `yeshi_ec_threesale` t LEFT JOIN `yeshi_ec_user` u ON u.`id`=t.`worker_id` WHERE t.`boss_id`=? ORDER BY t.`createtime` DESC")
|
| | | .addEntity(UserInfo.class);
|
| | | query.setParameter(0, uid);
|
| | | query.setFirstResult((page - 1) * Constant.PAGE_SIZE).setMaxResults(Constant.PAGE_SIZE);
|
| | | return query.list();
|
| | | }
|
| | | });
|
| | |
|
| | | }
|
| | |
|
| | | @SuppressWarnings("unchecked")
|
| | | @Override
|
| | | public List<UserInfo> getSecondUsers(Long uid, int page) {
|
| | | return (List<UserInfo>) dao.excute(new HibernateCallback<List<UserInfo>>() {
|
| | |
|
| | | @Override
|
| | | public List<UserInfo> doInHibernate(Session session) throws HibernateException {
|
| | | Query query = session
|
| | | .createSQLQuery(
|
| | | "SELECT u.* FROM `yeshi_ec_threesale` t LEFT JOIN yeshi_ec_threesale t1 ON t1.`boss_id`=t.`worker_id` LEFT JOIN `yeshi_ec_user` u ON u.`id`=t1.`worker_id` WHERE t.`boss_id`=? AND u.`id` IS NOT NULL GROUP BY u.`id` ORDER BY t.`createtime` DESC")
|
| | | .addEntity(UserInfo.class);
|
| | | query.setParameter(0, uid);
|
| | | query.setFirstResult((page - 1) * Constant.PAGE_SIZE).setMaxResults(Constant.PAGE_SIZE);
|
| | | return query.list();
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> getLastestThreeSaleList(int page, String key) {
|
| | | if (NumberUtil.isNumeric(key)) {
|
| | | Long uid = Long.parseLong(key);
|
| | | int start = (page - 1) * Constant.PAGE_SIZE;
|
| | | List<ThreeSale> list = dao.list(
|
| | | "from ThreeSale ts where ts.boss.nickName like ? or ts.boss.id = ? or ts.worker.nickName like ? or ts.worker.id = ? order by ts.createTime desc",
|
| | | start, Constant.PAGE_SIZE, new Serializable[] { "%" + key + "%", uid, "%" + key + "%", uid });
|
| | | return list;
|
| | | }
|
| | | int start = (page - 1) * Constant.PAGE_SIZE;
|
| | | List<ThreeSale> list = dao.list(
|
| | | "from ThreeSale ts where ts.boss.nickName like ? or ts.worker.nickName like ? order by ts.createTime desc",
|
| | | start, Constant.PAGE_SIZE, new Serializable[] { "%" + key + "%", "%" + key + "%" });
|
| | | return list;
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | public int getLastestThreeSaleCount(String key) {
|
| | | if (NumberUtil.isNumeric(key)) {
|
| | | long lk = Long.parseLong(key);
|
| | | return (int) dao.getCount(
|
| | | "select count(*) from ThreeSale ts where ts.boss.id = ? or ts.worker.id = ? or ts.boss.nickName like ? or ts.worker.nickName like ?",
|
| | | new Serializable[] { lk, lk, "%" + key + "%", "%" + key + "%" });
|
| | | }
|
| | | Long lcount = dao.getCount(
|
| | | "select count(*) from ThreeSale ts where ts.boss.nickName like ? or ts.worker.nickName like ?",
|
| | | new Serializable[] { "%" + key + "%", "%" + key + "%" });
|
| | | return lcount.intValue();
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long getFirstUsersCount(Long uid) {
|
| | | return (Long) dao.excute(new HibernateCallback<Long>() {
|
| | |
|
| | | @Override
|
| | | public Long doInHibernate(Session session) throws HibernateException {
|
| | | Query query = session.createSQLQuery(
|
| | | "SELECT count(u.id) FROM `yeshi_ec_threesale` t LEFT JOIN `yeshi_ec_user` u ON u.`id`=t.`worker_id` WHERE t.`boss_id`=?");
|
| | | query.setParameter(0, uid);
|
| | | Object count = query.uniqueResult();
|
| | | return Long.parseLong(count + "");
|
| | | }
|
| | | });
|
| | | return threeSaleMapper.countFirstTeam(uid, null);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long getSecondUsersCount(Long uid) {
|
| | | return (Long) dao.excute(new HibernateCallback<Long>() {
|
| | |
|
| | | @Override
|
| | | public Long doInHibernate(Session session) throws HibernateException {
|
| | | Query query = session.createSQLQuery(
|
| | | "SELECT count(1) FROM `yeshi_ec_threesale` t LEFT JOIN yeshi_ec_threesale t1 ON t1.`boss_id`=t.`worker_id` LEFT JOIN `yeshi_ec_user` u ON u.`id`=t1.`worker_id` WHERE t.`boss_id`=? AND u.`id` IS NOT NULL");
|
| | | query.setParameter(0, uid);
|
| | | Object count = query.uniqueResult();
|
| | | return Long.parseLong(count + "");
|
| | | }
|
| | | });
|
| | | return threeSaleMapper.countSecondTeam(uid, null);
|
| | | }
|
| | |
|
| | | @Override
|