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); }