yujian
2019-09-11 3145bfd60c4028a4c6da67484634bfc5a1cca470
领取券加入信息邀请消息
15个文件已修改
1个文件已添加
280 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserSystemCouponAdminController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralTaskRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/msg/MsgInviteContentDTO.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/msg/MsgInviteDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralTaskRecordMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskClassServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgInviteDetailServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserInviteMsgNotificationServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/integral/IntegralTaskRecordService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/MsgInviteDetailService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserInviteMsgNotificationService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/MsgInviteDetailFactory.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/UserMsgVOFactory.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/UserSystemCouponAdminController.java
@@ -410,7 +410,7 @@
            String endTime, Integer coupon, PrintWriter out){
        try {
            
            if (coupon == null || (coupon != 1 && coupon != 2)) {
            if (coupon == null || (coupon.intValue() < 0 && coupon.intValue() > 4)) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("券类型不正确"));
                return;
            }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -364,7 +364,7 @@
            for (int i = 0; i < arrayKeys.size(); i++) {
                String name = arrayKeys.get(i).toString();
                JSONObject params = new JSONObject();
                params.put("searchKey", name);
                params.put("content", name);
                SearchKeyVO keyVO = new SearchKeyVO();
                keyVO.setName(name);
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/integral/IntegralTaskRecordMapper.java
@@ -59,6 +59,18 @@
     * @return
     */
    List<IntegralTaskRecord> listDaySignRecord(@Param("uid") Long uid, @Param("cid") Long cid);
    /**
     * 连续签到情况
     *
     * @param uid
     * @param cid
     * @param sortState
     *            1倒序-创建时间
     * @return
     */
    List<IntegralTaskRecord> listDateSignRecord(@Param("uid") Long uid, @Param("cid") Long cid);
    /**
     * 近7天签到情况
fanli/src/main/java/com/yeshi/fanli/dto/msg/MsgInviteContentDTO.java
New file
@@ -0,0 +1,51 @@
package com.yeshi.fanli.dto.msg;
public class MsgInviteContentDTO {
    private String title; // 标题
    private String state; // 状态
    private String code; // 邀请码
    private String inviter; // 领取人信息
    private String mode; // 赠送时间
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getInviter() {
        return inviter;
    }
    public void setInviter(String inviter) {
        this.inviter = inviter;
    }
    public String getMode() {
        return mode;
    }
    public void setMode(String mode) {
        this.mode = mode;
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/msg/MsgInviteDetail.java
@@ -17,7 +17,7 @@
@Table("yeshi_ec_msg_invite")
public class MsgInviteDetail {
    public enum MsgTypeInviteTypeEnum {
        invite("邀请消息"), exchangeCode("恭喜你,邀请码兑换成功");
        invite("邀请消息"), exchangeCode("恭喜你,邀请码兑换成功"), receiveGift ("领取礼品");
        private final String desc;
        private MsgTypeInviteTypeEnum(String desc) {
fanli/src/main/java/com/yeshi/fanli/mapping/integral/IntegralTaskRecordMapper.xml
@@ -148,6 +148,16 @@
        DATE(d.ir_create_time)
        ORDER BY d.ir_create_time desc
    </select>
    <select id="listDateSignRecord" resultMap="BaseResultMap">
        SELECT * FROM yeshi_ec_integral_task_record d
        WHERE d.`ir_uid` = #{uid}
        <if test="cid!=null">
            and d.ir_cid=#{cid}
        </if>
        ORDER BY d.ir_create_time desc
    </select>
    <select id="listSignRecordByDateTime" resultMap="BaseResultMap">
        SELECT * FROM yeshi_ec_integral_task_record d
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskClassServiceImpl.java
@@ -142,10 +142,10 @@
        DailySignVO dailySignVO = new DailySignVO();
        
        Long cid = taskClass.getId();
        List<IntegralTaskRecord> listRecord = integralTaskRecordService.getSignDaysRecord(uid, cid);
        if (listRecord != null && listRecord.size() > 0) {
            for (int i = listRecord.size() - 1; i >= 0; i--) {
                IntegralTaskRecord taskRecord = listRecord.get(i);
        List<IntegralTaskRecord> listRecord7Days = integralTaskRecordService.getSign7DaysRecord(uid, cid);
        if (listRecord7Days != null && listRecord7Days.size() > 0) {
            for (int i = listRecord7Days.size() - 1; i >= 0; i--) {
                IntegralTaskRecord taskRecord = listRecord7Days.get(i);
                SignDateVO signDateVO = new SignDateVO();
                signDateVO.setLightUp(true);
                signDateVO.setGoldCoin("+" + taskRecord.getGoldCoin());
@@ -159,11 +159,19 @@
                    signDateVO.setDate(before);
                }
                listSign.add(signDateVO);
                if (listSign.size() >= 7) {
                    break;
                }
            }
        }
        
        dailySignVO.setDays(listSign.size());
        List<IntegralTaskRecord> listRecord = integralTaskRecordService.getSignDaysRecord(uid, cid);
        if(listRecord == null) {
            dailySignVO.setDays(0);
        } else {
            dailySignVO.setDays(listRecord.size());
        }
        
        if (listSign.size() < 7) {
            List<IntegralTask> listTask = integralTaskService.listByCid(cid);
@@ -203,6 +211,11 @@
                j++;
            }
        }        
        if (listSign.size() > 7) {
            listSign = listSign.subList(listSign.size() - 7, listSign.size() - 1);
        }
        dailySignVO.setListDate(listSign);
        return dailySignVO;
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralTaskRecordServiceImpl.java
@@ -131,7 +131,7 @@
        List<IntegralTaskRecord> listRecord = new ArrayList<IntegralTaskRecord>();
        try {
            // 签到时间正序序查询近7天数据
            List<IntegralTaskRecord> list = integralTaskRecordMapper.listDaySignRecord(uid, cid);
            List<IntegralTaskRecord> list = integralTaskRecordMapper.listDateSignRecord(uid, cid);
            if (list != null && list.size() > 0) {
                Date date = new Date();
                for (IntegralTaskRecord record : list) {
@@ -149,6 +149,33 @@
        return listRecord;
    }
    @Override
    public List<IntegralTaskRecord> getSign7DaysRecord(long uid, Long cid) {
        List<IntegralTaskRecord> listRecord = new ArrayList<IntegralTaskRecord>();
        try {
            // 签到时间正序序查询近7天数据
            List<IntegralTaskRecord> list = integralTaskRecordMapper.listDaySignRecord(uid, cid);
            if (list != null && list.size() > 0) {
                Date date = new Date();
                for (IntegralTaskRecord record : list) {
                    Date createTime = record.getCreateTime();
                    if (DateUtil.daysBetween2(createTime, date) > 1) {
                        break; // 天数未连续
                    }
                    date = createTime;
                    listRecord.add(record);
                    if(listRecord.size() >= 7)
                        break;
                }
            }
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
        return listRecord;
    }
    @Override
    public List<IntegralTaskRecord> listNotReceived(int count, long uid) {
        return integralTaskRecordMapper.listNotReceived(count, uid);
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgInviteDetailServiceImpl.java
@@ -82,4 +82,10 @@
        msgInviteDetailMapper.deleteByThreeSaleId(sale.getId());
    }
    @Override
    public void insertSelective(MsgInviteDetail detail) {
        msgInviteDetailMapper.insertSelective(detail);
        userMsgReadStateService.addInviteMsgUnReadCount(detail.getUser().getId(), 1);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserInviteMsgNotificationServiceImpl.java
@@ -6,6 +6,7 @@
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
@@ -53,7 +54,6 @@
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
    @Override
@@ -66,4 +66,11 @@
        }
    }
    @Override
    public void receiveGift(Long uid, String beizu, MsgInviteContentDTO content) {
        MsgInviteDetail detail = MsgInviteDetailFactory.receiveGift(uid, beizu, content);
        msgInviteDetailService.insertSelective(detail);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/TokenRecordServiceImpl.java
@@ -13,6 +13,7 @@
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.user.TokenRecordMapper;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
import com.yeshi.fanli.entity.bus.user.TokenRecord;
@@ -31,6 +32,7 @@
import com.yeshi.fanli.service.inter.config.SystemCouponService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.integral.IntegralGetService;
import com.yeshi.fanli.service.inter.msg.UserInviteMsgNotificationService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinGiveRecordService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
@@ -88,6 +90,9 @@
    
    @Resource
    private SystemCouponService systemCouponService;
    @Resource
    private UserInviteMsgNotificationService userInviteMsgNotificationService;
    
    @Override
@@ -397,6 +402,10 @@
                    msgOther.setGiveTime(sd.format(giveRecord.getGiveTime()));
                    msgOther.setReceiveTime(sd.format(new Date()));
                    userOtherMsgNotificationService.tokenGiveMsg(giveUid, beiZhu, msgOther);
                    // 激活邀请信息
                    if (addTeam)
                        addInviteMsg(uid, giveUid, "免单券");
                }
            });
        } else if (tokenType == TokenTypeEnum.rebatePercentCoupon) {
@@ -487,6 +496,10 @@
                    msgOther.setGiveTime(sd.format(giveRecord.getGiveTime()));
                    msgOther.setReceiveTime(sd.format(new Date()));
                    userOtherMsgNotificationService.tokenGiveMsg(giveUid, beiZhu, msgOther);
                    // 激活邀请信息
                    if (addTeam)
                        addInviteMsg(uid, giveUid, "返利奖励券");
                }
            });
        } else if (tokenType == TokenTypeEnum.taoLiJin) {
@@ -539,6 +552,10 @@
                        msgOther.setGiveTime(sd.format(giveRecord.getGiveTime()));
                        msgOther.setReceiveTime(sd.format(new Date()));
                        userOtherMsgNotificationService.tokenGiveMsg(giveUid, beiZhu, msgOther);
                        // 激活邀请信息
                        if (addTeam)
                            addInviteMsg(uid, giveUid, amount.setScale(2) + "元推广红包");
                    }
                });
            } catch (UserTaoLiJinOriginException e) {
@@ -579,6 +596,22 @@
    }
    
    
    private void addInviteMsg(Long uid, Long giveUid, String giftName) {
        try {
            UserInfo user = userInfoService.selectByPKey(giveUid);
            UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
            MsgInviteContentDTO msgInvite = new MsgInviteContentDTO();
            msgInvite.setTitle("邀请消息");
            msgInvite.setState("成功激活邀请");
            msgInvite.setCode("你的邀请码:" + userInfoExtra.getInviteCode());
            msgInvite.setInviter("昵称:"+user.getNickName());
            msgInvite.setMode("成功领取邀请人的" + giftName);
            userInviteMsgNotificationService.receiveGift(uid, "邀请关系一旦确立无法更改 ", msgInvite);
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
    }
    @Override
    public List<TokenRecord> overdueList(int count) {
        return tokenRecordMapper.overdueList(count);
fanli/src/main/java/com/yeshi/fanli/service/inter/integral/IntegralTaskRecordService.java
@@ -178,4 +178,12 @@
     */
    public void firstSharerOrderRewardBoss(Long uid, Long originUid, String beizu);
    /**
     * 7天签到记录
     * @param uid
     * @param cid
     * @return
     */
    public List<IntegralTaskRecord> getSign7DaysRecord(long uid, Long cid);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/MsgInviteDetailService.java
@@ -45,4 +45,6 @@
     * @param sale
     */
    public void deleteByThreeSale(ThreeSale sale);
    public void insertSelective(MsgInviteDetail detail);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserInviteMsgNotificationService.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.service.inter.msg;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
/**
@@ -33,4 +34,12 @@
     * @param sale
     */
    public void inviteFail(Long uid, ThreeSale sale);
    /**
     * 领取券、红包激活邀请
     * @param uid
     * @param beizu
     * @param content
     */
    public void receiveGift(Long uid, String beizu, MsgInviteContentDTO content);
}
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/MsgInviteDetailFactory.java
@@ -2,6 +2,8 @@
import java.util.Date;
import com.google.gson.Gson;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail.MsgTypeInviteTypeEnum;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
@@ -85,4 +87,31 @@
        detail.setUser(new UserInfo(uid));
        return detail;
    }
    /**
     *  领取信息激活邀请关系
     *
     * @param threeSale
     * @param uid
     * @return
     */
    public static MsgInviteDetail receiveGift(Long uid, String beiZhu, MsgInviteContentDTO content) {
        if (content == null || uid == null)
            return null;
        MsgInviteDetail detail = new MsgInviteDetail();
        if (StringUtil.isNullOrEmpty(beiZhu))
            detail.setBeiZhu("无");
        else
            detail.setBeiZhu(beiZhu);
        detail.setCreateTime(new Date());
        detail.setUpdateTime(new Date());
        detail.setDesc(new Gson().toJson(content));
        detail.setMsgType(MsgTypeInviteTypeEnum.receiveGift);
        detail.setRead(false);
        detail.setUser(new UserInfo(uid));
        return detail;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/UserMsgVOFactory.java
@@ -6,6 +6,7 @@
import java.util.List;
import com.google.gson.Gson;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherCouponActivateDTO;
import com.yeshi.fanli.dto.msg.MsgOtherCouponContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
@@ -15,6 +16,7 @@
import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail.MsgTypeAccountTypeEnum;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail.MsgTypeInviteTypeEnum;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
@@ -539,8 +541,57 @@
     * @return
     */
    public static UserMsgVO create(MsgInviteDetail msg) {
        MsgTypeInviteTypeEnum msgType = msg.getMsgType();
        if (msgType != null && msgType == MsgTypeInviteTypeEnum.receiveGift) {
            if (StringUtil.isNullOrEmpty(msg.getDesc()))
                return null;
            MsgInviteContentDTO dto = new Gson().fromJson(msg.getDesc(), MsgInviteContentDTO.class);
            if (dto == null)
                return null;
            List<CommonMsgItemVO> items = new ArrayList<>();
            List<ClientTextStyleVO> contentList = new ArrayList<>();
            if (!StringUtil.isNullOrEmpty(dto.getState())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getState() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("状态", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getCode())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getCode() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("邀请码", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getInviter())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getInviter() + "", COLOR_CONTENT));
                items.add(new CommonMsgItemVO(new ClientTextStyleVO("邀请人", COLOR_TITLE), contentList));
            }
            if (!StringUtil.isNullOrEmpty(dto.getMode())) {
                contentList = new ArrayList<>();
                contentList.add(new ClientTextStyleVO(dto.getMode() + "", 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));
            return new UserMsgVO("http://img.flqapp.com/resource/msg/icon_msg_invite.png", dto.getTitle(),
                    msg.getUpdateTime() == null ? msg.getCreateTime() : msg.getUpdateTime(), items);
        }
        if (msg.getInviteUser() == null || msg.getInviteUser().getWorker() == null)
            return null;
        List<CommonMsgItemVO> items = new ArrayList<>();
        List<ClientTextStyleVO> contentList = new ArrayList<>();
        LogHelper.test("邀请消息:" + new Gson().toJson(msg));