| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.fs.his.mapper.FsUserMapper">
- <resultMap type="FsUser" id="FsUserResult">
- <result property="userId" column="user_id" />
- <result property="nickName" column="nick_name" />
- <result property="avatar" column="avatar" />
- <result property="phone" column="phone" />
- <result property="integral" column="integral" />
- <result property="status" column="status" />
- <result property="tuiUserId" column="tui_user_id" />
- <result property="tuiTime" column="tui_time" />
- <result property="tuiUserCount" column="tui_user_count" />
- <result property="maOpenId" column="ma_open_id" />
- <result property="mpOpenId" column="mp_open_id" />
- <result property="unionId" column="union_id" />
- <result property="isDel" column="is_del" />
- <result property="userCode" column="user_code" />
- <result property="remark" column="remark" />
- <result property="createTime" column="create_time" />
- <result property="updateTime" column="update_time" />
- <result property="lastIp" column="last_ip" />
- <result property="balance" column="balance" />
- <result property="signNum" column="sign_num" />
- <result property="integralStatus" column="integral_status" />
- <result property="isBuy" column="is_buy" />
- <result property="password" column="password" />
- <result property="isVip" column="is_vip" />
- <result property="jpushId" column="jpush_id" />
- <result property="vipStartDate" column="vip_start_date" />
- <result property="vipEndDate" column="vip_end_date" />
- <result property="vipLevel" column="vip_level" />
- <result property="vipStatus" column="vip_status" />
- <result property="sex" column="sex" />
- <result property="storeOpenId" column="store_open_id" />
- <result property="isPush" column="is_push" />
- <result property="isIndividuationPush" column="is_individuation_push" />
- <result property="isWeixinAuth" column="is_weixin_auth" />
- <result property="loginDevice" column="login_device" />
- <result property="source" column="source" />
- <result property="isAddQw" column="is_add_qw" />
- <result property="parentId" column="parent_id" />
- <result property="courseMaOpenId" column="course_ma_open_id" />
- <result property="qwExtId" column="qw_ext_id" />
- </resultMap>
- <sql id="selectFsUserVo">
- select user_id,qw_ext_id,sex,is_buy,course_ma_open_id,is_push,is_add_qw,source,login_device,is_individuation_push,store_open_id,password,jpush_id, is_vip,vip_start_date,vip_end_date,vip_level,vip_status,nick_name,integral_status, avatar, phone, integral,sign_num, status, tui_user_id, tui_time, tui_user_count, ma_open_id, mp_open_id, union_id, is_del, user_code, remark, create_time, update_time, last_ip, balance,is_weixin_auth,parent_id from fs_user
- </sql>
- <select id="selectFsUserList" parameterType="FsUser" resultMap="FsUserResult">
- <include refid="selectFsUserVo"/>
- <where>
- <if test="nickName != null and nickName != ''"> and nick_name like concat( #{nickName}, '%')</if>
- <if test="avatar != null and avatar != ''"> and avatar = #{avatar}</if>
- <if test="phone != null and phone != ''"> and phone = #{phone}</if>
- <if test="integral != null "> and integral = #{integral}</if>
- <if test="signNum != null "> and sign_num = #{signNum}</if>
- <if test="status != null "> and status = #{status}</if>
- <if test="tuiUserId != null and tuiUserId != ''"> and tui_user_id = #{tuiUserId}</if>
- <if test="tuiTime != null "> and tui_time = #{tuiTime}</if>
- <if test="tuiUserCount != null "> and tui_user_count = #{tuiUserCount}</if>
- <if test="maOpenId != null and maOpenId != ''"> and ma_open_id = #{maOpenId}</if>
- <if test="mpOpenId != null and mpOpenId != ''"> and mp_open_id = #{mpOpenId}</if>
- <if test="unionId != null and unionId != ''"> and union_id = #{unionId}</if>
- <if test="isDel != null "> and is_del = #{isDel}</if>
- <if test="userCode != null and userCode != ''"> and user_code = #{userCode}</if>
- <if test="lastIp != null and lastIp != ''"> and last_ip = #{lastIp}</if>
- <if test="balance != null "> and balance = #{balance}</if>
- </where>
- </select>
- <select id="selectFsUserByUserId" parameterType="Long" resultMap="FsUserResult">
- <include refid="selectFsUserVo"/>
- where user_id = #{userId}
- </select>
- <select id="courseAnalysisWatchLog" resultType="com.fs.course.vo.newfs.FsCourseAnalysisCountVO">
- SELECT
- count( DISTINCT CASE WHEN fwl.log_type != 3 THEN fwl.user_id END ) AS courseWatchNum,
- count( CASE WHEN fwl.log_type != 3 THEN fwl.log_id END ) AS courseWatchTimes,
- count( DISTINCT CASE WHEN fwl.log_type = 2 THEN fwl.user_id END ) AS courseCompleteNum,
- count( CASE WHEN fwl.log_type = 2 THEN fwl.log_id END ) AS courseCompleteTimes,
- ifnull(
- ROUND(
- (
- COUNT( DISTINCT CASE WHEN fwl.log_type = 2 THEN fwl.user_id END ) / count( DISTINCT CASE WHEN fwl.log_type != 3 THEN fwl.user_id END )) * 100,
- 2
- ),
- 0
- ) AS completeRate,
- fwl.video_id
- FROM
- fs_course_watch_log fwl
- <where>
- <if test="periodId != null and periodId != ''">
- AND fwl.period_id = #{periodId}
- </if>
- <if test="videoId != null and videoId != ''">
- AND fwl.video_id = #{videoId}
- </if>
- <if test="videoIdList != null and videoIdList.size > 0 ">
- AND fwl.video_id in
- <foreach collection="videoIdList" open="(" close=")" separator="," item="videoId">
- #{videoId}
- </foreach>
- </if>
- </where>
- GROUP BY
- fwl.video_id
- </select>
- <select id="courseAnalysisRedPacketCount" resultType="com.fs.course.vo.newfs.FsCourseAnalysisCountVO">
- SELECT
- count( flog.log_id ) as redPacketNum,
- ifnull ( sum( flog.amount ), 0 ) as redPacketAmount,
- flog.video_id
- FROM
- fs_course_red_packet_log flog
- LEFT JOIN fs_user ON fs_user.user_id = flog.user_id
- LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
- <where>
- <if test="companyUserId != null and companyUserId !='' ">
- AND company_user.user_id = #{companyUserId}
- </if>
- <if test="periodId != null and periodId != ''">
- AND flog.period_id = #{periodId}
- </if>
- <if test="videoId != null and videoId != ''">
- AND flog.video_id = #{videoId}
- </if>
- <if test="videoIdList != null and videoIdList.size > 0 ">
- AND flog.video_id in
- <foreach collection="videoIdList" open="(" close=")" separator="," item="videoId">
- #{videoId}
- </foreach>
- </if>
- </where>
- GROUP BY
- flog.video_id
- </select>
- <select id="courseAnalysisAnswerCount" resultType="com.fs.course.vo.newfs.FsCourseAnalysisCountVO">
- SELECT
- count( DISTINCT fs_user.user_id ) as answerNum,
- count(fs_course_answer_logs.log_id) answerTimes,
- COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user.user_id END ) as answerRightNum,
- COUNT( CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_course_answer_logs.log_id END ) as answerRightTimes,
- ifnull(
- ROUND(
- (
- COUNT( DISTINCT CASE WHEN fs_course_answer_logs.is_right = 1 THEN fs_user.user_id END ) / count( DISTINCT fs_user.user_id )) * 100,
- 2
- ),
- 0
- ) as answerRightRate,
- fs_course_answer_logs.video_id
- FROM
- fs_course_answer_logs
- LEFT JOIN fs_user ON fs_user.user_id = fs_course_answer_logs.user_id
- LEFT JOIN company_user ON company_user.user_id = fs_user.company_user_id
- <where>
- <if test="companyUserId != null and companyUserId !='' ">
- AND company_user.user_id = #{companyUserId}
- </if>
- <if test="periodId != null and periodId != ''">
- AND fs_course_answer_logs.period_id = #{periodId}
- </if>
- <if test="videoId != null and videoId != ''">
- AND fs_course_answer_logs.video_id = #{videoId}
- </if>
- <if test="videoIdList != null and videoIdList.size > 0 ">
- AND fs_course_answer_logs.video_id in
- <foreach collection="videoIdList" open="(" close=")" separator="," item="videoId">
- #{videoId}
- </foreach>
- </if>
- </where>
- GROUP BY
- fs_course_answer_logs.video_id
- </select>
- <select id="selectFsUserById" parameterType="Long" resultMap="FsUserResult">
- <include refid="selectFsUserVo"/>
- where user_id = #{userId}
- </select>
- <insert id="insertFsUser" parameterType="FsUser" useGeneratedKeys="true" keyProperty="userId">
- insert into fs_user
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test="nickName != null">nick_name,</if>
- <if test="avatar != null">avatar,</if>
- <if test="phone != null">phone,</if>
- <if test="integral != null">integral,</if>
- <if test="signNum != null">sign_num,</if>
- <if test="status != null">status,</if>
- <if test="tuiUserId != null">tui_user_id,</if>
- <if test="tuiTime != null">tui_time,</if>
- <if test="tuiUserCount != null">tui_user_count,</if>
- <if test="maOpenId != null">ma_open_id,</if>
- <if test="mpOpenId != null">mp_open_id,</if>
- <if test="unionId != null">union_id,</if>
- <if test="isDel != null">is_del,</if>
- <if test="userCode != null">user_code,</if>
- <if test="remark != null">remark,</if>
- <if test="createTime != null">create_time,</if>
- <if test="updateTime != null">update_time,</if>
- <if test="lastIp != null">last_ip,</if>
- <if test="balance != null">balance,</if>
- <if test="integralStatus != null">integral_status,</if>
- <if test="isBuy != null">is_buy,</if>
- <if test="password != null">password,</if>
- <if test="jpushId != null">jpush_id,</if>
- <if test="isVip != null">is_vip,</if>
- <if test="vipStartDate != null">vip_start_date,</if>
- <if test="vipEndDate != null">vip_end_date,</if>
- <if test="vipLevel != null">vip_level,</if>
- <if test="vipStatus != null">vip_status,</if>
- <if test="sex != null">sex,</if>
- <if test="storeOpenId != null">store_open_id,</if>
- <if test="isPush != null">is_push,</if>
- <if test="isIndividuationPush != null">is_individuation_push,</if>
- <if test="isWeixinAuth != null">is_weixin_auth,</if>
- <if test="loginDevice != null">login_device,</if>
- <if test="source != null">source,</if>
- <if test="isAddQw != null">is_add_qw,</if>
- <if test="courseMaOpenId != null">course_ma_open_id,</if>
- <if test="qwExtId != null">qw_ext_id,</if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test="nickName != null">#{nickName},</if>
- <if test="avatar != null">#{avatar},</if>
- <if test="phone != null">#{phone},</if>
- <if test="integral != null">#{integral},</if>
- <if test="signNum != null">#{signNum},</if>
- <if test="status != null">#{status},</if>
- <if test="tuiUserId != null">#{tuiUserId},</if>
- <if test="tuiTime != null">#{tuiTime},</if>
- <if test="tuiUserCount != null">#{tuiUserCount},</if>
- <if test="maOpenId != null">#{maOpenId},</if>
- <if test="mpOpenId != null">#{mpOpenId},</if>
- <if test="unionId != null">#{unionId},</if>
- <if test="isDel != null">#{isDel},</if>
- <if test="userCode != null">#{userCode},</if>
- <if test="remark != null">#{remark},</if>
- <if test="createTime != null">#{createTime},</if>
- <if test="updateTime != null">#{updateTime},</if>
- <if test="lastIp != null">#{lastIp},</if>
- <if test="balance != null">#{balance},</if>
- <if test="integralStatus != null">#{integralStatus},</if>
- <if test="isBuy != null">#{isBuy},</if>
- <if test="password != null">#{password},</if>
- <if test="jpushId != null">#{jpushId},</if>
- <if test="isVip != null">#{isVip},</if>
- <if test="vipStartDate != null">#{vipStartDate},</if>
- <if test="vipEndDate != null">#{vipEndDate},</if>
- <if test="vipLevel != null">#{vipLevel},</if>
- <if test="vipStatus != null">#{vipStatus},</if>
- <if test="sex != null">#{sex},</if>
- <if test="storeOpenId != null">#{storeOpenId},</if>
- <if test="isPush != null">#{isPush},</if>
- <if test="isIndividuationPush != null">#{isIndividuationPush},</if>
- <if test="isWeixinAuth != null">#{isWeixinAuth},</if>
- <if test="loginDevice != null">#{loginDevice},</if>
- <if test="source != null">#{source},</if>
- <if test="isAddQw != null">#{isAddQw},</if>
- <if test="courseMaOpenId != null">#{courseMaOpenId},</if>
- <if test="qwExtId != null">#{qwExtId},</if>
- </trim>
- </insert>
- <update id="updateFsUser" parameterType="FsUser">
- update fs_user
- <trim prefix="SET" suffixOverrides=",">
- <if test="nickName != null">nick_name = #{nickName},</if>
- <if test="avatar != null">avatar = #{avatar},</if>
- <if test="phone != null">phone = #{phone},</if>
- <if test="integral != null">integral = #{integral},</if>
- <if test="signNum != null">sign_num = #{signNum},</if>
- <if test="status != null">status = #{status},</if>
- <if test="tuiUserId != null">tui_user_id = #{tuiUserId},</if>
- <if test="tuiTime != null">tui_time = #{tuiTime},</if>
- <if test="tuiUserCount != null">tui_user_count = #{tuiUserCount},</if>
- <if test="maOpenId != null">ma_open_id = #{maOpenId},</if>
- <if test="mpOpenId != null">mp_open_id = #{mpOpenId},</if>
- <if test="unionId != null">union_id = #{unionId},</if>
- <if test="isDel != null">is_del = #{isDel},</if>
- <if test="userCode != null">user_code = #{userCode},</if>
- <if test="remark != null">remark = #{remark},</if>
- <if test="createTime != null">create_time = #{createTime},</if>
- <if test="updateTime != null">update_time = #{updateTime},</if>
- <if test="lastIp != null">last_ip = #{lastIp},</if>
- <if test="balance != null">balance = #{balance},</if>
- <if test="integralStatus != null">integral_status = #{integralStatus},</if>
- <if test="isBuy != null">is_buy = #{isBuy},</if>
- <if test="password != null">password = #{password},</if>
- <if test="jpushId != null">jpush_id = #{jpushId},</if>
- <if test="isVip != null">is_vip = #{isVip},</if>
- <if test="vipStartDate != null">vip_start_date = #{vipStartDate},</if>
- <if test="vipEndDate != null">vip_end_date = #{vipEndDate},</if>
- <if test="vipLevel != null">vip_level = #{vipLevel},</if>
- <if test="vipStatus != null">vip_status = #{vipStatus},</if>
- <if test="sex != null">sex = #{sex},</if>
- <if test="storeOpenId != null">store_open_id = #{storeOpenId},</if>
- <if test="isPush != null">is_push = #{isPush},</if>
- <if test="isIndividuationPush != null">is_individuation_push = #{isIndividuationPush},</if>
- <if test="isWeixinAuth != null">is_weixin_auth = #{isWeixinAuth},</if>
- <if test="loginDevice != null">login_device = #{loginDevice},</if>
- <if test="source != null">source = #{source},</if>
- <if test="isAddQw != null">is_add_qw = #{isAddQw},</if>
- <if test="courseMaOpenId != null">course_ma_open_id = #{courseMaOpenId},</if>
- <if test="parentId != null">parent_id = #{parentId},</if>
- <if test="qwExtId != null">qw_ext_id = #{qwExtId},</if>
- </trim>
- where user_id = #{userId}
- </update>
- <delete id="deleteFsUserByUserId" parameterType="Long">
- delete from fs_user where user_id = #{userId}
- </delete>
- <delete id="deleteFsUserByUserIds" parameterType="Long">
- delete from fs_user where user_id in
- <foreach item="userId" collection="array" open="(" separator="," close=")">
- #{userId}
- </foreach>
- </delete>
- </mapper>
|