admin
2020-05-12 b8140437f67e171a909f1d693bd3a155a15a3338
添加邀请详情
5个文件已修改
4个文件已添加
418 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/ThreeSaleMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/user/invite/ThreeSaleDetailDao.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/ThreeSaleDetail.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/ThreeSaleRank.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/ThreeSaleMapper.xml 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleDetailSerivceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/ThreeSaleDetailService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/ThreeSaleSerivce.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/ThreeSaleMapper.java
@@ -225,6 +225,18 @@
     * @return
     */
    List<ThreeSale> getValidWorkerIdsByTime(@Param("uid") Long uid,@Param("limitTime") long limitTime);
    /**
     * 查询所有列表
     * @Title: listAll
     * @Description:
     * @param start
     * @param count
     * @return
     * List<ThreeSale> 返回类型
     * @throws
     */
    List<ThreeSale> listAll(@Param("start")long start,@Param("count")int count);
    
    
}
fanli/src/main/java/com/yeshi/fanli/dao/user/invite/ThreeSaleDetailDao.java
New file
@@ -0,0 +1,71 @@
package com.yeshi.fanli.dao.user.invite;
import java.util.List;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import com.yeshi.fanli.dao.MongodbBaseDao;
import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
@Repository
public class ThreeSaleDetailDao extends MongodbBaseDao<ThreeSaleDetail> {
    /**
     * 根据上级ID与队员层级查询队员
     * @Title: listByBossUidAndLevel
     * @Description:
     * @param bossUid
     * @param level
     * @param start
     * @param count
     * @return
     * List<ThreeSaleDetail> 返回类型
     * @throws
     */
    public List<ThreeSaleDetail> listByBossUidAndLevel(Long bossUid, int level, int start, int count) {
        Query query = new Query();
        query.skip(start);
        query.limit(count);
        query.addCriteria(
                new Criteria().andOperator(Criteria.where("bossUid").is(bossUid), Criteria.where("level").is(level)));
        return findList(query);
    }
    public long countByBossUidAndLevel(Long bossUid, int level) {
        Query query = new Query();
        query.addCriteria(
                new Criteria().andOperator(Criteria.where("bossUid").is(bossUid), Criteria.where("level").is(level)));
        return count(query);
    }
    /**
     * 根据上级ID与最小队员层级查询队员
     * @Title: listByBossUidAndMinLevel
     * @Description:
     * @param bossUid
     * @param minLevel
     * @param start
     * @param count
     * @return
     * List<ThreeSaleDetail> 返回类型
     * @throws
     */
    public List<ThreeSaleDetail> listByBossUidAndMinLevel(Long bossUid, int minLevel, int start, int count) {
        Query query = new Query();
        query.skip(start);
        query.limit(count);
        query.addCriteria(new Criteria().andOperator(Criteria.where("bossUid").is(bossUid),
                Criteria.where("level").gte(minLevel)));
        return findList(query);
    }
    public long countByBossUidAndMinLevel(Long bossUid, int minLevel) {
        Query query = new Query();
        query.addCriteria(new Criteria().andOperator(Criteria.where("bossUid").is(bossUid),
                Criteria.where("level").gte(minLevel)));
        return count(query);
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/ThreeSaleDetail.java
New file
@@ -0,0 +1,70 @@
package com.yeshi.fanli.entity.bus.user;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
 * 详情关系详细记录
 * @author Administrator
 *
 */
@Document(collection = "threeSaleDetail")
public class ThreeSaleDetail {
    @Id
    private String id;
    @Indexed
    @Field
    private Long bossUid;
    @Indexed
    @Field
    private Long workUid;
    @Field
    private Integer level;// 第几级队员
    @Field
    private Date createTime;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public Long getBossUid() {
        return bossUid;
    }
    public void setBossUid(Long bossUid) {
        this.bossUid = bossUid;
    }
    public Long getWorkUid() {
        return workUid;
    }
    public void setWorkUid(Long workUid) {
        this.workUid = workUid;
    }
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/ThreeSaleRank.java
@@ -1,6 +1,5 @@
package com.yeshi.fanli.entity.bus.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
fanli/src/main/java/com/yeshi/fanli/mapping/ThreeSaleMapper.xml
@@ -53,7 +53,9 @@
    <select id="selectBoss"    resultMap="com.yeshi.fanli.dao.mybatis.UserInfoMapper.BaseResultMap" parameterType="java.lang.Long">
    <select id="selectBoss"
        resultMap="com.yeshi.fanli.dao.mybatis.UserInfoMapper.BaseResultMap"
        parameterType="java.lang.Long">
        select u.* from yeshi_ec_threeSale s 
        left join yeshi_ec_user u on u.id=s.boss_id 
        where s.state = 1  AND s.worker_id = #{0}
@@ -72,15 +74,19 @@
    <!-- 根据邀请者ID查询关系 -->
    <select id="getByWorkerId" resultMap="BaseResultMap" parameterType="java.lang.Long">
        select <include refid="Base_Column_List" /> from yeshi_ec_threeSale
    <select id="getByWorkerId" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_threeSale
        where worker_id = #{0}
    </select>
    
    <select id="selectLatestByWorkerIdAndState" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_threeSale s where worker_id = #{workerId} and state=#{state}
        from yeshi_ec_threeSale s where worker_id = #{workerId} and
        state=#{state}
    </select>
    
@@ -155,7 +161,9 @@
    <select id="listFirstTeamQuery" resultMap="BaseResultMap">
        SELECT t.*,d.`tvr_type` AS validState  FROM `yeshi_ec_threesale` t
        LEFT JOIN `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = t.`boss_id` AND d.`tvr_worker_id` = t.`worker_id`)
        LEFT
        JOIN `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` =
        t.`boss_id` AND d.`tvr_worker_id` = t.`worker_id`)
        WHERE 1=1
        <if test="uid != null">
            AND  t.`boss_id` = #{uid}
@@ -181,7 +189,9 @@
    <select id="countFirstTeamQuery" resultType="java.lang.Long">
        SELECT count(t.id) FROM `yeshi_ec_threesale` t
        LEFT JOIN `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = t.`boss_id` AND d.`tvr_worker_id` = t.`worker_id`)
        LEFT JOIN
        `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = t.`boss_id`
        AND d.`tvr_worker_id` = t.`worker_id`)
        WHERE 1=1
        <if test="uid != null">
            AND  t.`boss_id` = #{uid}
@@ -205,8 +215,10 @@
    <select id="listSecondTeamQuery" resultMap="BaseResultMap">
        SELECT yet.*,d.`tvr_type` AS validState  FROM (SELECT DISTINCT(ts.`id`) AS id FROM    `yeshi_ec_threesale` ts
                          LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id` WHERE 1=1  AND tf.`state` = 1
        SELECT yet.*,d.`tvr_type` AS validState FROM (SELECT DISTINCT(ts.`id`)
        AS id FROM `yeshi_ec_threesale` ts
        LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id` WHERE 1=1
        AND tf.`state` = 1
        <if test="uid != null">
            AND tf.`boss_id` = #{uid}
        </if>
@@ -220,7 +232,9 @@
              <![CDATA[AND FROM_UNIXTIME(ts.createTime/1000) <= #{endTime}]]>
        </if>
        )A LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
        LEFT JOIN `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = yet.`boss_id` AND d.`tvr_worker_id` = yet.`worker_id`)
        LEFT JOIN
        `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = yet.`boss_id`
        AND d.`tvr_worker_id` = yet.`worker_id`)
        where 1=1 
        <if test="validState == 1">
            AND d.`tvr_type` = 1
@@ -233,7 +247,8 @@
    </select>
    <select id="countSecondTeamQuery" resultType="java.lang.Long">
        SELECT COUNT(A.id) FROM (SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
        SELECT COUNT(A.id) FROM (SELECT DISTINCT(ts.`id`) AS id FROM
        `yeshi_ec_threesale` ts
        LEFT JOIN yeshi_ec_threesale tf ON
        ts.`boss_id`=tf.`worker_id`
        WHERE 1=1 AND tf.`state` = 1
@@ -251,7 +266,9 @@
        </if>
        )A
        LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
        LEFT JOIN `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = yet.`boss_id` AND d.`tvr_worker_id` = yet.`worker_id`)
        LEFT JOIN
        `yeshi_ec_user_invite_valid_record` d ON (d.`tvr_uid` = yet.`boss_id`
        AND d.`tvr_worker_id` = yet.`worker_id`)
        where 1=1 
        <if test="validState == 0">
            AND d.`tvr_type` is null
@@ -296,15 +313,19 @@
    <select id="listFirstTeam" resultMap="AllResultMap">
        SELECT * FROM `yeshi_ec_threesale` ts
        LEFT JOIN `yeshi_ec_threesale_extra_info` ff ON (ts.`boss_id` = ff.`tf_boss_id` AND ts.`worker_id`=ff.`tf_worker_id`)
        SELECT * FROM
        `yeshi_ec_threesale` ts
        LEFT JOIN `yeshi_ec_threesale_extra_info` ff ON
        (ts.`boss_id` = ff.`tf_boss_id` AND ts.`worker_id`=ff.`tf_worker_id`)
        WHERE ts.`boss_id` = #{uid}
        ORDER BY ts.createTime DESC
        LIMIT ${start},${count}
        LIMIT
        ${start},${count}
    </select>
    <select id="countFirstTeam" resultType="java.lang.Long">
        SELECT IFNULL(count(id),0) FROM `yeshi_ec_threesale`
        SELECT
        IFNULL(count(id),0) FROM `yeshi_ec_threesale`
        WHERE `boss_id` = #{uid}
    </select>
@@ -313,13 +334,15 @@
            SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
            LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`= tf.`worker_id`
            WHERE tf.`boss_id` = #{uid})A
        LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
        LEFT JOIN yeshi_ec_threesale yet ON yet.id =
        A.id
        ORDER BY yet.createTime DESC
        LIMIT ${start},${count}
    </select>
    <select id="countSecondTeam" resultType="java.lang.Long">
        SELECT COUNT(A.id) FROM (
        SELECT COUNT(A.id) FROM
        (
            SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
            LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id`
            WHERE tf.`boss_id` = #{uid}
@@ -345,8 +368,10 @@
    </select>
    <select id="getSuccessRelationshipNum" resultType="java.lang.Integer">
        SELECT IFNULL(COUNT(*),0) FROM `yeshi_ec_threesale` t
        WHERE t.`state` = 1 AND    (t.`worker_id` =${uid} OR t.`boss_id` = ${uid})
        SELECT
        IFNULL(COUNT(*),0) FROM `yeshi_ec_threesale` t
        WHERE t.`state` = 1 AND
        (t.`worker_id` =${uid} OR t.`boss_id` = ${uid})
    </select>
    <select id="getRelationshipByBossIdAndWorkerId" resultMap="BaseResultMap">
@@ -361,40 +386,55 @@
    
    <select id="getNearRelationByBossIdAndWorkerId" resultMap="BaseResultMap">
        SELECT * FROM `yeshi_ec_threesale` t
        WHERE t.`boss_id` = #{bossId} AND t.`worker_id` = #{workerId}
        ORDER BY t.`state` DESC, t.`createTime` DESC
        WHERE t.`boss_id` = #{bossId} AND
        t.`worker_id` = #{workerId}
        ORDER BY t.`state` DESC, t.`createTime`
        DESC
        LIMIT 1
    </select>
    <select id="selectSuccessByWorkerId" resultMap="BaseResultMap" parameterType="java.lang.Long">
    <select id="selectSuccessByWorkerId" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
        SELECT * FROM `yeshi_ec_threesale`
        WHERE `state` = 1 AND worker_id = #{0}  order by id desc
        WHERE `state` = 1 AND
        worker_id = #{0} order by id desc
    </select>
    <select id="getSuccessByDate" resultMap="AllResultMap" >
        SELECT * FROM yeshi_ec_threesale t
        WHERE t.`boss_id` = #{bossId} AND t.`state` = 1
        WHERE t.`boss_id` = #{bossId} AND
        t.`state` = 1
             AND  <![CDATA[t.createTime >= #{minTime} AND t.createTime <= #{maxTime}]]>
    </select>
    
    <select id="getByWorkerIdAndTime" resultMap="BaseResultMap">
        SELECT * FROM yeshi_ec_threesale t
        WHERE t.`worker_id` = #{workerId} AND t.`state` = 1
        WHERE t.`worker_id` = #{workerId}
        AND t.`state` = 1
             <![CDATA[AND t.succeedTime >= #{time}]]>
    </select>
    
    <select id="getTeamOrderNumByWorkerId" resultType="Long">
        SELECT IFNULL(COUNT(d.`id`),0)  FROM yeshi_ec_threesale d
        LEFT JOIN (SELECT t.`id`,t.`boss_id` FROM `yeshi_ec_threesale` t
                     WHERE t.`state` = 1 AND t.`worker_id` = #{workerId} LIMIT 1)t ON t.`boss_id` = d.`boss_id`
        WHERE d.`id` <![CDATA[<=]]>t.id AND d.`state` = 1
        LEFT JOIN
        (SELECT t.`id`,t.`boss_id` FROM `yeshi_ec_threesale` t
        WHERE t.`state` = 1 AND t.`worker_id` = #{workerId} LIMIT 1)t ON
        t.`boss_id` = d.`boss_id`
        WHERE d.`id` <![CDATA[<=]]>t.id
        AND d.`state` = 1
    </select>
    
    
    <select id="getValidWorkerIdsByTime" resultMap="BaseResultMap">
        SELECT * FROM `yeshi_ec_threesale` tr 
        WHERE tr.`state` = 1 AND tr.`boss_id` = #{uid} AND tr.`succeedTime` <![CDATA[>=]]> #{limitTime}
        WHERE tr.`state` = 1 AND tr.`boss_id` = #{uid} AND tr.`succeedTime` <![CDATA[>=]]>
        #{limitTime}
    </select>
    <select id="listAll" resultMap="BaseResultMap">
        SELECT * FROM
        `yeshi_ec_threesale` limit #{start},#{count}
    </select>
    
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleDetailSerivceImpl.java
New file
@@ -0,0 +1,83 @@
package com.yeshi.fanli.service.impl.user.invite;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.user.invite.ThreeSaleDetailDao;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
import com.yeshi.fanli.exception.ParamsException;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
@Service
public class ThreeSaleDetailSerivceImpl implements ThreeSaleDetailService {
    @Resource
    private ThreeSaleDetailDao threeSaleDetailDao;
    @Resource
    private ThreeSaleSerivce threeSaleSerivce;
    @Override
    public void addThreeSaleDetail(ThreeSaleDetail detail) throws ParamsException {
        if (detail.getBossUid() == null || detail.getWorkUid() == null || detail.getLevel() == null
                || detail.getCreateTime() == null) {
            throw new ParamsException(1, "参数不完整");
        }
        String id = detail.getBossUid() + "#" + detail.getWorkUid();
        detail.setId(id);
        // 根据主键查询
        ThreeSaleDetail old = threeSaleDetailDao.get(id);
        if (old == null)
            threeSaleDetailDao.save(detail);
    }
    @Override
    public List<ThreeSaleDetail> listByBossUidAndLevel(Long bossUid, int level, int page, int pageSize) {
        return threeSaleDetailDao.listByBossUidAndLevel(bossUid, level, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countByBossUidAndLevel(Long bossUid, int level) {
        return threeSaleDetailDao.countByBossUidAndLevel(bossUid, level);
    }
    @Override
    public List<ThreeSaleDetail> listByBossUidAndMinLevel(Long bossUid, int minLevel, int page, int pageSize) {
        return threeSaleDetailDao.listByBossUidAndMinLevel(bossUid, minLevel, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countByBossUidAndMinLevel(Long bossUid, int minLevel) {
        return threeSaleDetailDao.countByBossUidAndMinLevel(bossUid, minLevel);
    }
    @Override
    public void addByWorkerUid(Long workerUid) {
        List<ThreeSale> list = threeSaleSerivce.getMyBossDeepList(workerUid, 100);
        int level = 0;
        for (ThreeSale tts : list) {
            level++;
            ThreeSaleDetail detail = new ThreeSaleDetail();
            detail.setBossUid(tts.getBoss().getId());
            detail.setLevel(level);
            detail.setWorkUid(workerUid);
            if (tts.getSucceedTime() != null)
                detail.setCreateTime(new Date(tts.getSucceedTime()));
            else
                detail.setCreateTime(new Date(tts.getCreateTime()));
            try {
                if (tts.getState())
                    addThreeSaleDetail(detail);
            } catch (ParamsException e) {
                e.printStackTrace();
            }
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -564,4 +564,9 @@
        return bossUid;
    }
    @Override
    public List<ThreeSale> listAll(int page, int pageSize) {
        return threeSaleMapper.listAll((page-1)*pageSize, pageSize);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/ThreeSaleDetailService.java
New file
@@ -0,0 +1,65 @@
package com.yeshi.fanli.service.inter.user.invite;
import java.util.List;
import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail;
import com.yeshi.fanli.exception.ParamsException;
public interface ThreeSaleDetailService {
    /**
     * 添加邀请详情
     * @Title: addThreeSaleDetail
     * @Description:
     * @param detail
     * @throws ParamsException
     * void 返回类型
     * @throws
     */
    public void addThreeSaleDetail(ThreeSaleDetail detail) throws ParamsException;
    /**
     * 通过邀请用户ID增加记录
     * @Title: addByWorkerUid
     * @Description:
     * @param workerUid
     * void 返回类型
     * @throws
     */
    public void addByWorkerUid(Long workerUid);
    /**
     * 按层级查询
     * @Title: listByBossUidAndLevel
     * @Description:
     * @param bossUid
     * @param level
     * @param page
     * @param pageSize
     * @return
     * List<ThreeSaleDetail> 返回类型
     * @throws
     */
    public List<ThreeSaleDetail> listByBossUidAndLevel(Long bossUid, int level, int page, int pageSize);
    public long countByBossUidAndLevel(Long bossUid, int level);
    /**
     * 按最小层级查询
     * @Title: listByBossUidAndMinLevel
     * @Description:
     * @param bossUid
     * @param minLevel
     * @param page
     * @param pageSize
     * @return
     * List<ThreeSaleDetail> 返回类型
     * @throws
     */
    public List<ThreeSaleDetail> listByBossUidAndMinLevel(Long bossUid, int minLevel, int page, int pageSize);
    public long countByBossUidAndMinLevel(Long bossUid, int minLevel);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/ThreeSaleSerivce.java
@@ -272,5 +272,18 @@
     * @throws
     */
    public Long getTopBoss(Long uid);
    /**
     * 查询列表
     * @Title: list
     * @Description:
     * @param page
     * @param pageSize
     * @return
     * List<ThreeSale> 返回类型
     * @throws
     */
    public List<ThreeSale> listAll(int page,int pageSize);
}