yujian
2019-08-29 7a29e50e7e2eefe6c0e6e1deb53690147184e078
队员首单 奖励上级金币
11个文件已修改
1个文件已添加
218 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/msg/MsgOtherRewardIntegralDTO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/msg/MsgOtherDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralDetailMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOtherDetailServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserOtherMsgNotificationServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/integral/IntegralTaskRecordService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserOtherMsgNotificationService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/UserMsgVOFactory.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -427,8 +427,8 @@
            data.put("weiXinTip", "系统已发送提醒,邀请人添加微信后你可复制,如对方迟迟不添加,你可联系人工客服寻求帮助");
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            e.printStackTrace();
            out.print(JsonUtil.loadFalseResult("提醒失败"));
            return;
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralDetailMapper.java
@@ -67,6 +67,6 @@
     * @param dateFormat
     * @return
     */
    List<IntegralMonthVO> selectMonthMoneyByUid(@Param("uid") Long uid, @Param("dateFormat") List<String> dateFormat, @Param("type")Integer type);
    List<IntegralMonthVO> selectMonthMoneyByUid(@Param("uid") Long uid, @Param("dateFormat") List<String> dateFormat);
    
}
fanli/src/main/java/com/yeshi/fanli/dto/msg/MsgOtherRewardIntegralDTO.java
New file
@@ -0,0 +1,55 @@
package com.yeshi.fanli.dto.msg;
/**
 * 奖励积分
 *
 * @author Administrator
 *
 */
public class MsgOtherRewardIntegralDTO {
    private String title;
    private String source;// 来源
    private String num;// 订单号
    private String total;// 剩余
    private String explain;// 说明
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getTotal() {
        return total;
    }
    public void setTotal(String total) {
        this.total = total;
    }
    public String getExplain() {
        return explain;
    }
    public void setExplain(String explain) {
        this.explain = explain;
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/msg/MsgOtherDetail.java
@@ -22,7 +22,7 @@
    public enum MsgTypeOtherTypeEnum {
        couponMianDan("免单券"), couponWelfareMianDan("福利免单券"), freeCouponBuy("自购免单券"), 
        freeCouponGive("赠送免单券"), couponReward("奖励券"), taoLiJin("推广红包"), give("赠送"), exchange("金币兑换")
        , couponActivate("免单券激活");
        , couponActivate("免单券激活"), firstOrderReward("队员首单奖励邀请人金币");
        
        private final String desc;
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralDetailMapper.xml
@@ -109,16 +109,12 @@
                LEFT JOIN (SELECT DATE_FORMAT(d.`td_create_time`,'%Y-%m') AS `time`,SUM(d.`td_money`)AS money
                               FROM `yeshi_ec_integral_detail` d
                               WHERE d.`td_uid`=#{uid} AND  d.`td_money`<![CDATA[>=]]>0 AND DATE_FORMAT(d.`td_create_time`,'%Y-%m')=#{item} 
                               <if test="type == 1">AND d.td_money <![CDATA[>]]> 0</if>
                            <if test="type == 2">AND d.td_money <![CDATA[<]]> 0</if>
                               GROUP BY DATE_FORMAT(d.`td_create_time`,'%Y-%m')
                               ) a ON a.time=c.time
                LEFT JOIN(SELECT DATE_FORMAT(d.`td_create_time`,'%Y-%m') AS `time`,SUM(d.`td_money`) AS money
                              FROM `yeshi_ec_integral_detail` d
                            WHERE d.`td_uid`=#{uid} AND d.`td_money` <![CDATA[<]]>0 AND DATE_FORMAT(d.`td_create_time`,'%Y-%m')=#{item} 
                                     <if test="type == 1">AND d.td_money <![CDATA[>]]> 0</if>
                                <if test="type == 2">AND d.td_money <![CDATA[<]]> 0</if>
                              GROUP BY DATE_FORMAT(d.`td_create_time`,'%Y-%m')
                              ) b ON c.time=b.time
           </trim>
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralDetailServiceImpl.java
@@ -149,7 +149,7 @@
                        ? "0" + monthMap.get(key).getMonth().getMonth() : monthMap.get(key).getMonth().getMonth();
                dateFormat.add(date);
            }
            List<IntegralMonthVO> voList = integralDetailMapper.selectMonthMoneyByUid(uid, dateFormat, type);
            List<IntegralMonthVO> voList = integralDetailMapper.selectMonthMoneyByUid(uid, dateFormat);
            int p = 0;
            keys = monthMap.keySet().iterator();
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java
@@ -14,6 +14,7 @@
import org.yeshi.utils.DateUtil;
import com.yeshi.fanli.dao.mybatis.integral.IntegralTaskRecordMapper;
import com.yeshi.fanli.dto.msg.MsgOtherRewardIntegralDTO;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.integral.IntegralDetail;
import com.yeshi.fanli.entity.integral.IntegralTask;
@@ -24,11 +25,14 @@
import com.yeshi.fanli.exception.integral.IntegralTaskRecordException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.integral.IntegralDetailService;
import com.yeshi.fanli.service.inter.integral.IntegralTaskClassService;
import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService;
import com.yeshi.fanli.service.inter.integral.IntegralTaskService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
@Service
@@ -48,6 +52,14 @@
    @Resource
    private IntegralTaskClassService integralTaskClassService;
    @Resource
    private UserOtherMsgNotificationService userOtherMsgNotificationService;
    @Resource
    private ConfigService configService;
    @Override
    public Integer getTotalGoldCoin(long uid, Long cid, Integer dateType) {
@@ -191,7 +203,7 @@
        if (userInfoExtra == null) {
            throw new IntegralTaskRecordException(1, "用户信息不全");
        }
        Integer totalGoldCoin = 0;
        for (Long id : idList) {
            IntegralTaskRecord record = integralTaskRecordMapper.selectByPrimaryKey(id);
@@ -351,4 +363,56 @@
    public List<IntegralTaskRecord> listByUidAndTaskId(Long uid, Long taskId, int page, int count) {
        return integralTaskRecordMapper.listByUidAndTaskId(uid, taskId, (page - 1) * count, count);
    }
    /**
     * 被邀请人下了首单(第一笔返利订单) 直接给邀请人一笔金币
     * @param uid
     */
    @Override
    public void firstOrderRewardInviter(Long uid, String beizu) {
        UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
        if (userInfoExtra == null)
            return;
        String reward = configService.get("first_order_reward_boss");
        if (StringUtil.isNullOrEmpty(reward))
            return;
        Integer goldCoin = userInfoExtra.getGoldCoin();
        if (goldCoin == null)
            goldCoin = 0;
        int addGoldCoin = Integer.parseInt(reward);
        goldCoin = goldCoin + addGoldCoin;
        try {
            // 增加金币
            UserInfoExtra extra = new UserInfoExtra();
            extra.setId(userInfoExtra.getId());
            extra.setGoldCoin(goldCoin);
            userInfoExtraService.saveUserInfoExtra(extra);
        } catch (UserInfoExtraException e) {
            e.printStackTrace();
            return;
        }
        // 金币详情
        IntegralDetail detail = new IntegralDetail();
        detail.setTitle("队员首笔奖励");
        detail.setUid(uid);
        detail.setMoney(addGoldCoin);
        detail.setRemark(beizu);
        detail.setCreateTime(new Date());
        integralDetailService.insertSelective(detail);
        // 消息
        MsgOtherRewardIntegralDTO msgOther = new MsgOtherRewardIntegralDTO();
        msgOther.setTitle("金币奖励");
        msgOther.setSource("一级队员首笔下单,系统奖励邀请人金币");
        msgOther.setNum(addGoldCoin + "金币");
        msgOther.setTotal(goldCoin + "金币");
        msgOther.setExplain("仅一级队员首笔下单奖励(已到账)");
        userOtherMsgNotificationService.firstOrderRewardMsg(uid, "", msgOther);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOtherDetailServiceImpl.java
@@ -49,6 +49,9 @@
        } else if (detail.getType() == MsgTypeOtherTypeEnum.couponActivate) {
            msgOtherDetailMapper.insertSelective(detail);
            userMsgReadStateService.addOtherMsgUnReadCount(detail.getUser().getId(), 1);
        } else if (detail.getType() == MsgTypeOtherTypeEnum.firstOrderReward) {
            msgOtherDetailMapper.insertSelective(detail);
            userMsgReadStateService.addOtherMsgUnReadCount(detail.getUser().getId(), 1);
        }
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserOtherMsgNotificationServiceImpl.java
@@ -12,6 +12,7 @@
import com.yeshi.fanli.dto.msg.MsgOtherCouponContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherRewardIntegralDTO;
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum;
@@ -416,4 +417,20 @@
            e.printStackTrace();
        }
    }
    @Override
    public void firstOrderRewardMsg(Long uid, String beiZhu,  MsgOtherRewardIntegralDTO content) {
        try {
            MsgOtherDetail detail = new MsgOtherDetail();
            detail.setBeiZhu(beiZhu);
            detail.setCreateTime(new Date());
            detail.setRead(false);
            detail.setUser(new UserInfo(uid));
            detail.setContent(new Gson().toJson(content));
            detail.setType(MsgTypeOtherTypeEnum.firstOrderReward);
            msgOtherDetailService.addMsgOtherDetail(detail);
        } catch (MsgOtherDetailException e) {
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/integral/IntegralTaskRecordService.java
@@ -149,4 +149,11 @@
     */
    public long countByCidAndUidAndCreateTime(Long cid,Long uid, Date minTime, Date maxTime);
    /**
     * 被邀请人下了首单(第一笔返利订单),则直接给邀请人一笔金币进入到金币余额中(金币的额度暂定为1500金币)
     * @param uid  邀请人id
     * @param beizu 备注信息
     */
    public void firstOrderRewardInviter(Long uid, String beizu);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserOtherMsgNotificationService.java
@@ -5,6 +5,7 @@
import com.yeshi.fanli.dto.msg.MsgOtherCouponActivateDTO;
import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherRewardIntegralDTO;
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -234,4 +235,12 @@
     */
    public void giveCouponActivateMsg(Long uid, String beiZhu, MsgOtherCouponActivateDTO content);
    /**
     * 队员首单奖励邀请人
     * @param uid
     * @param beiZhu
     * @param content
     */
    public void firstOrderRewardMsg(Long uid, String beiZhu, MsgOtherRewardIntegralDTO content);
}
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/UserMsgVOFactory.java
@@ -10,6 +10,7 @@
import com.yeshi.fanli.dto.msg.MsgOtherCouponContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherRewardIntegralDTO;
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail.MsgTypeAccountTypeEnum;
@@ -844,8 +845,56 @@
            userMsgVO.setTime(msg.getUpdateTime() == null ? msg.getCreateTime() : msg.getUpdateTime());
            userMsgVO.setContentItems(items);
            return userMsgVO;
        } else if (msg.getType() == MsgTypeOtherTypeEnum.firstOrderReward) {
            if (StringUtil.isNullOrEmpty(msg.getContent()))
                return null;
            MsgOtherRewardIntegralDTO dto = new Gson().fromJson(msg.getContent(), MsgOtherRewardIntegralDTO.class);
            if (dto == null)
                return null;
            icon = "http://img.flqapp.com/resource/msg/icon_msg_other_integral.png";
            List<ClientTextStyleVO> contentList = new ArrayList<>();
            if (!StringUtil.isNullOrEmpty(dto.getSource())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getSource() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("来源", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getNum())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getNum() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("数量", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getTotal())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getTotal() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("剩余", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getExplain())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getExplain() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("说明", COLOR_TITLE), contentList));
            }
            contentList = new ArrayList<>();
            contentList.add(new ClientTextStyleVO(StringUtil.isNullOrEmpty(msg.getBeiZhu()) ? "无" : msg.getBeiZhu(),
                    COLOR_CONTENT));
            items.add(new CommonMsgItemVO(new ClientTextStyleVO("备注", COLOR_TITLE), contentList));
            UserMsgVO userMsgVO = new UserMsgVO();
            userMsgVO.setIcon(icon);
            userMsgVO.setTitle(dto.getTitle());
            userMsgVO.setTime(msg.getUpdateTime() == null ? msg.getCreateTime() : msg.getUpdateTime());
            userMsgVO.setContentItems(items);
            return userMsgVO;
        }
        return new UserMsgVO(icon, msg.getType().getDesc(),
                msg.getUpdateTime() == null ? msg.getCreateTime() : msg.getUpdateTime(), items);
    }