admin
2020-02-17 e26a53e729c16a36825a399f26e7ab069890320a
小程序相关接口修改
9个文件已修改
329 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ConfigController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/ConfigController.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/InviteController.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/goods/GoodsDetailExtraVO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/ConfigController.java
@@ -260,6 +260,12 @@
                    banner = new ArrayList<SwiperPicture>();
                data.put("banner", JsonUtil.getApiCommonGson().toJson(banner));
            } 
            if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
                // 转链的网页链接
                String convertLinkUrl = configService.get(ConfigKeyEnum.convertDocWebLink.getKey());
                data.put("convertLinkUrl", convertLinkUrl);
            }
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            out.print(JsonUtil.loadFalseResult("获取失败"));
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -477,5 +477,10 @@
        data.put("words", configService.get(ConfigKeyEnum.articleHotWords.getKey()));
        out.print(JsonUtil.loadTrueResult(data));
    }
    //发圈测试
    @RequestMapping(value = "evaluate", method = RequestMethod.POST)
    public void evaluate(AcceptData acceptData, PrintWriter out) {
        out.print(configService.get("test"));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/ConfigController.java
@@ -14,19 +14,23 @@
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.WXMPAcceptData;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.FloatAD;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.push.DeviceActive;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.homemodule.FloatADService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.push.DeviceActiveService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.vo.homemodule.FloatImgDetailVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -49,6 +53,12 @@
    @Resource
    private SwiperPictureService swiperPictureService;
    @Resource
    private FloatADService floatADService;
    @Resource
    private JumpDetailV2Service jumpDetailV2Service;
    /**
     * 获取系统配置信息
@@ -75,7 +85,9 @@
        JSONArray array = new JSONArray();
        for (SystemClientParams params : systemClientParamsList) {
            JSONObject item = new JSONObject();
            item.put(params.getKey(), params.getValue());
            item.put("key", params.getKey());
            item.put("value", params.getValue());
            array.add(item);
        }
        out.print(JsonUtil.loadTrueResult(array));
        String ipInfo = IPUtil.getRemotIP(request) + ":" + request.getRemotePort();
@@ -99,7 +111,7 @@
    }
    @RequestMapping(value = "getUserConfig", method = RequestMethod.POST)
    public void getUserConfig(AcceptData acceptData, PrintWriter out) {
    public void getUserConfig(WXMPAcceptData acceptData, PrintWriter out) {
        try {
            // 用户协议链接
            String serviceProtocol = configService.get(ConfigKeyEnum.serviceProtocolLink.getKey());
@@ -124,4 +136,58 @@
    }
    /**
     *  首页配置信息
     *
     * @param acceptData
     * @param out
     */
    @RequestMapping(value = "getHomeConfig")
    public void getHomeConfigNew(WXMPAcceptData acceptData, Long uid, String callback, PrintWriter out) {
        if (uid != null && uid == 0L)
            uid = null;
        String platform = acceptData.getPlatform();
        String version = acceptData.getVersion();
        // 活动弹框
        List<FloatAD> listAD = new ArrayList<FloatAD>();
        List<FloatImgDetailVO> listVO = new ArrayList<FloatImgDetailVO>();
        List<FloatAD> list = floatADService.getValidFloatADCache(FloatAD.POSITION_INDEX, null, platform,
                Integer.parseInt(version));
        if (list != null && !list.isEmpty())
            listAD.addAll(list);
        for (int i = 0; i < listAD.size(); i++) {
            FloatAD floatAD = listAD.get(i);
            JumpDetailV2 jumpDetail = floatAD.getJumpDetail();
            if (jumpDetail != null) {
                jumpDetail = jumpDetailV2Service.selectByPrimaryKey(jumpDetail.getId());
                if (jumpDetail != null) {
                    jumpDetail.setNeedLogin(floatAD.isJumpNeedLogin());
                }
            }
            FloatImgDetailVO floatImgVO = new FloatImgDetailVO();
            floatImgVO.setId(floatAD.getId().toString());
            floatImgVO.setImg(floatAD.getPicture());
            floatImgVO.setParams(floatAD.getParams());
            floatImgVO.setJumpDetail(jumpDetail);
            floatImgVO.setShowTime(floatAD.getShowMode());
            floatImgVO.setAccountLogin(floatAD.isJumpNeedLogin());
            if (floatAD.getPlaySound() != null)
                floatImgVO.setPlaySound(floatAD.getPlaySound());// 默认都播放音效
            else
                floatImgVO.setPlaySound(false);
            listVO.add(floatImgVO);
        }
        JSONObject data = new JSONObject();
        data.put("listAD", JsonUtil.getApiCommonGson().toJson(listVO));
        if (StringUtil.isNullOrEmpty(callback))
            out.print(JsonUtil.loadTrueResult(data));
        else
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java
@@ -61,7 +61,6 @@
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.JumpDetailUtil;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.VersionUtil;
@@ -263,7 +262,7 @@
     *            页面来源
     * @param out
     */
    @RequestMapping(value = "getGoodsDetial", method = RequestMethod.POST)
    @RequestMapping(value = "getGoodsDetial")
    public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Long uid,
            PrintWriter out) {
        if (goodsType == null || goodsType < 2 || goodsType > 3) {
@@ -343,13 +342,10 @@
                            hongBaoManageService.getFanLiRate());
                    otherInfo.setFanliMoneyPlus("京东plus返¥" + fanliMoneyPlus);
                    // 使用奖励券最高返
                    if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
                        maxMoneyPlus = "(京东plus返¥"
                                + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, hongBaoManageService.getVIPFanLiRate()) + ")";
                    } else
                        maxMoneyPlus = "(京东plus最高返¥"
                                + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE))
                                + ")";
                    maxMoneyPlus = "(京东plus返¥"
                            + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, hongBaoManageService.getVIPFanLiRate()) + ")";
                }
            }
        }
@@ -357,7 +353,10 @@
        // 奖励券返利
        RewardCouponVO rewardCoupon = new RewardCouponVO();
        rewardCoupon.setMaxMoneyPlus(maxMoneyPlus);
        rewardCoupon.setJumpDetail(jumpDetailV2Service.getByTypeCache("web"));
        rewardCoupon.setMaxMoney(goodsDetail.getMoneyInfo().getMaxMoney());
        rewardCoupon.setDesc("返");
        otherInfo.setRewardCoupon(rewardCoupon);
        goodsDetail.setOtherInfo(otherInfo);
        CouponInfoVO couponInfo = goodsDetail.getCouponInfo();
@@ -440,6 +439,10 @@
        shareInfoVO.setHelpLink(helpLink);
        extraVO.setShare(shareInfoVO);
        // 判断vip
        if (uid != null) {
            extraVO.setVip(userVIPInfoService.isVIP(uid));
        }
        JSONObject object = new JSONObject();
        object.put("extra", JsonUtil.getApiCommonGson().toJson(extraVO));
        object.put("goods", JsonUtil.getApiCommonGson().toJson(goodsDetail));
@@ -482,6 +485,22 @@
            goodsDetail.getMoneyInfo().setShareMoney(
                    "¥" + PinDuoDuoUtil.getGoodsFanLiMoney(pddGoods, hongBaoManageService.getVIPShareRate()));
        }
        if (goodsDetail.getCouponInfo() != null) {
            List<CouponInfoVO> list = new ArrayList<>();
            list.add(goodsDetail.getCouponInfo());
            goodsDetail.setCouponInfoList(list);
        }
        // 奖励券返利
        RewardCouponVO rewardCoupon = new RewardCouponVO();
        rewardCoupon.setMaxMoney(goodsDetail.getMoneyInfo().getMaxMoney());
        rewardCoupon.setDesc("返");
        OtherInfo otherInfo = new OtherInfo();
        otherInfo.setRewardCoupon(rewardCoupon);
        goodsDetail.setOtherInfo(otherInfo);
        CouponInfoVO couponInfo = goodsDetail.getCouponInfo();
        PDDPromotionUrl convertUrl = null;
@@ -563,6 +582,11 @@
        shareInfoVO.setHelpLink(helpLink);
        extraVO.setShare(shareInfoVO);
        // 判断vip
        if (uid != null) {
            extraVO.setVip(userVIPInfoService.isVIP(uid));
        }
        if (convertUrl != null) {
            extraVO.setCouponJumpLink(convertUrl.getUrl());
            extraVO.setNativeCouponJumpLink(PinDuoDuoUtil.getAndroidNativeURI(convertUrl.getUrl()));
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/InviteController.java
@@ -16,7 +16,8 @@
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.WXMPAcceptData;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -24,14 +25,16 @@
import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -57,6 +60,15 @@
    @Resource
    private ThreeSaleExtraInfoSerivce threeSaleExtraInfoSerivce;
    @Resource
    private UserInfoService userInfoService;
    @Resource
    private PushService pushService;
    @Resource
    private UserSystemMsgService userSystemMsgService;
    /**
     * 专属邀请码条件
@@ -169,7 +181,7 @@
     * @param id
     * @param out
     */
    @RequestMapping(value = "listMyTeam", method = RequestMethod.POST)
    @RequestMapping(value = "listMyTeam")
    public void listMyTeam(WXMPAcceptData acceptData, int page, long uid, int type, PrintWriter out) {
        if (type != 1 && type != 2) {
            out.print(JsonUtil.loadFalseResult("粉丝类型不正确"));
@@ -186,9 +198,7 @@
            count = threeSaleSerivce.countSecondTeam(uid, 1);
        }
        boolean needVIPInfo = false;
        if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
            needVIPInfo = true;
        boolean needVIPInfo = true;
        // 组织数据
        JSONObject resultData = organizeTeam(count, listTeam, uid, type, needVIPInfo);
@@ -344,7 +354,7 @@
     * @param out
     */
    @RequestMapping(value = "getBossInfo", method = RequestMethod.POST)
    public void getBossInfo(AcceptData acceptData, Long uid, PrintWriter out) {
    public void getBossInfo(WXMPAcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null || uid <= 0) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
@@ -354,6 +364,103 @@
    }
    
    /**
     * 站内信提醒队员添加微信号
     *
     * @param acceptData
     * @param uid
     * @param inviteId
     * @param out
     */
    @RequestMapping(value = "remindBossAddWX")
    public void remindTeam(WXMPAcceptData acceptData, Long uid, PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult("传递参数缺失"));
            return;
        }
        UserInfo userInfo = userInfoService.selectByPKey(uid);
        if (userInfo == null) {
            out.print(JsonUtil.loadFalseResult("用户信息不存在"));
            return;
        }
        ThreeSale threeSale = threeSaleSerivce.getByWorkerId(uid);
        if (threeSale == null) {
            out.print(JsonUtil.loadFalseResult("没有邀请人"));
            return;
        }
        Long remindId = null;
        boolean remindBoss = true;
        if (uid.longValue() == threeSale.getWorker().getId().longValue()) {
            remindId = threeSale.getBoss().getId(); // 提醒上级
        } else if (uid.longValue() == threeSale.getBoss().getId().longValue()) {
            remindBoss = false;
            remindId = threeSale.getWorker().getId(); // 提醒下级
        }
        if (remindId == null) {
            out.print(JsonUtil.loadFalseResult("信息验证未通过"));
            return;
        }
        Long bossId = null;
        Long workerId = null;
        String title = "粉丝提醒消息";
        String content = "";
        if (remindBoss) {
            // 提示队长
            bossId = remindId;
            workerId = uid;
            content = "你的直接粉丝" + userInfo.getNickName()
                    + ",提醒你添加微信号,以便于和你取得联系和学习省钱技巧,赶快去添加吧;注:请升级到本软件最新版本在“我的-我的信息”中添加。";
        } else {
            // 提示队员
            bossId = uid;
            workerId = remindId;
            content = "你的邀请人" + userInfo.getNickName()
                    + ",提醒你添加微信号,以便于和你取得联系帮助你更好的省钱,赶快去添加吧;注:请升级到本软件最新版本在“我的-我的信息”中添加。";
        }
        try {
            List<String> listIOS = new ArrayList<String>();
            List<String> listAndroid = new ArrayList<String>();
            pushService.pushZNX(remindId, title, content, listIOS, listAndroid);
            userSystemMsgService.addUserSystemMsg(remindId, UserSystemMsgTypeEnum.common, title, content,
                    UserSystemMsg.TIME_TAG_COMMON, null);
            ThreeSaleExtraInfo newInfo = new ThreeSaleExtraInfo();
            if (remindBoss) {
                newInfo.setRemindBoss(1);
            } else {
                newInfo.setRemindWorker(1);
            }
            ThreeSaleExtraInfo threeExtra = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(bossId, workerId);
            if (threeExtra != null) {
                newInfo.setId(threeExtra.getId());
                newInfo.setUpdateTime(new Date());
                threeSaleExtraInfoSerivce.updateByPrimaryKeySelective(newInfo);
            } else {
                newInfo.setBoss(new UserInfo(bossId));
                newInfo.setWorker(new UserInfo(workerId));
                newInfo.setCreateTime(new Date());
                newInfo.setUpdateTime(new Date());
                threeSaleExtraInfoSerivce.insertSelective(newInfo);
            }
            JSONObject data = new JSONObject();
            data.put("weiXinState", 2);
            data.put("weiXinTip", "系统已发送提醒,邀请人添加微信后你可复制,如对方迟迟不添加,你可联系人工客服寻求帮助");
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            e.printStackTrace();
            out.print(JsonUtil.loadFalseResult("提醒失败"));
        }
    }
    /**
     * 上级信息组织
     * 
     * @param acceptData
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java
@@ -64,6 +64,7 @@
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.vo.user.UserVipRateVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller("WXMPUserAccountController")
@@ -587,11 +588,11 @@
        JSONObject data = new JSONObject();
        data.put("info", gson.toJson(vo));
        data.put("welfare", userVipConfigService.getValueByKey("vip_welfare"));
        data.put("welfare",JSONArray.fromObject( userVipConfigService.getValueByKey("vip_welfare")));
        if (!StringUtil.isNullOrEmpty(callback)) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(gson.toJson(vo))));
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
        } else {
            out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
            out.print(JsonUtil.loadTrueResult(gson.toJson(data)));
        }
    }
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java
@@ -84,8 +84,7 @@
    @Resource
    private UserVipConfigService userVipConfigService;
    /**
     * 获取openId
     * 
@@ -269,6 +268,7 @@
            // 处理用户信息
            outUserInfoHandle(userInfo);
            userInfo.setVip(userVIPInfoService.isVIP(uid));
            GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
            JSONObject data = new JSONObject();
@@ -311,9 +311,7 @@
            // 显示邀请码特制入口
            data.put("tailor", tailor);
            // 1.6.5 之后返回 微信号提示
            if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion()))
                userInfo.setWeiXinTip("添加微信号后,你的邀请人和直接粉丝可以通过微信与你建立联系。");
            userInfo.setWeiXinTip("添加微信号后,你的邀请人和直接粉丝可以通过微信与你建立联系。");
            data.put("user", JsonUtil.getConvertBigDecimalToStringBuilder(gsonBuilder).create().toJson(userInfo));
            data.put("invitCode", invitCode); // 邀请码
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java
@@ -31,10 +31,12 @@
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail;
import com.yeshi.fanli.entity.bus.msg.UserMsgUnReadNum;
import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.exception.user.UserCustomSettingsException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.money.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.msg.MsgConfigService;
@@ -48,6 +50,7 @@
import com.yeshi.fanli.util.JumpDetailUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory;
@@ -55,6 +58,7 @@
import com.yeshi.fanli.vo.msg.UserMsgCenter;
import com.yeshi.fanli.vo.msg.UserMsgVO;
import com.yeshi.fanli.vo.msg.UserSystemMsgVO;
import com.yeshi.fanli.vo.user.UserSettingsVO;
import net.sf.json.JSONObject;
@@ -92,7 +96,6 @@
    @Resource
    private MsgDeviceReadStateService msgDeviceReadStateService;
    // 消息的类型
    final static String MSG_TYPE_ORDER = "order";
    final static String MSG_TYPE_MONEY = "money";
@@ -100,10 +103,9 @@
    final static String MSG_TYPE_INVITE = "invite";
    final static String MSG_TYPE_OTHER = "other";
    /**
     * 消息列表
     *
     * @param acceptData
     * @param uid
     * @param page
@@ -147,12 +149,11 @@
                    params = JSONObject.fromObject(zhuShouMsg.getParams());
                }
                JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(zhuShouMsg.getJumpDetail());
                commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
                        zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
                        wxmpJumDetail, zhuShouMsg.getParams(), 0));
            }
        }
@@ -165,11 +166,13 @@
                for (MsgOrderDetail detail : detailList) {
                    JSONObject params = new JSONObject();
                    params.put("orderNo", detail.getOrderId());
                    if (detail.getType() == MsgTypeOrderTypeEnum.share || detail.getType() == MsgTypeOrderTypeEnum.invite)
                    if (detail.getType() == MsgTypeOrderTypeEnum.share
                            || detail.getType() == MsgTypeOrderTypeEnum.invite)
                        params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId()));
                    JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("order_search"));
                    JumpDetailV2 wxmpJumDetail = JumpDetailUtil
                            .getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("order_search"));
                    UserMsgVO userMsgVO = UserMsgVOFactory.create(detail, wxmpJumDetail, params);
                    userMsgVO.setType(MSG_TYPE_ORDER);
                    list.add(userMsgVO);
@@ -240,17 +243,18 @@
            UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
            UserSystemMsg usm = userSystemMsgService.getLatestUserSystemMsg(uid);
            if (usm != null) {
                UserSystemMsgVO userSystemMsgVO = new UserSystemMsgVO(usm.getId(), usm.getType().name(), usm.getSolved(), "系统消息", usm.getTitle(),
                UserSystemMsgVO userSystemMsgVO = new UserSystemMsgVO(usm.getId(), usm.getType().name(),
                        usm.getSolved(), "系统消息", usm.getTitle(),
                        usm.getTimeTag() == 1 ? "http://img.flqapp.com/resource/msg/icon_emergent.png" : "",
                        "http://img.flqapp.com/resource/msg/icon_msg_system.png",
                        getTimeDesc(new Date(), usm.getCreateTime()), num.getTypeSystem());
                // TODO 跳转地址
                // TODO 跳转地址
                JSONObject params = new JSONObject();
                params.put("url", "http://apph5.banliapp.com/special/1.0.9/jingXuanN_9.html?type=9_9");
                JumpDetailV2 wxmpJumDetail = JumpDetailUtil.getWXMPJumDetail(jumpDetailV2Service.getByTypeCache("web"));
                userSystemMsgVO.setJumpDetail(wxmpJumDetail);
                root.put("systemMsg", userSystemMsgVO);
            }
        }
@@ -275,7 +279,7 @@
            }
        });
    }
    private String getTimeDesc(Date nowDate, Date targetDate) {
        Calendar now = Calendar.getInstance();
        now.setTime(nowDate);
@@ -289,8 +293,7 @@
            return TimeUtil.getGernalTime(targetDate.getTime(), "yyyy.MM.dd HH:mm");
        }
    }
    private GsonBuilder getTimeDescJsonBuilder(GsonBuilder builder) {
        builder = builder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
@@ -315,9 +318,10 @@
        return builder;
    }
    /**
     *  消息未读清理
     * 消息未读清理
     *
     * @param acceptData
     * @param uid
     * @param out
@@ -353,5 +357,19 @@
        out.print(JsonUtil.loadTrueResult(""));
    }
    @RequestMapping(value = "getUnReadMsgCount", method = RequestMethod.POST)
    public void getUnReadMsgCount(AcceptData acceptData, Long uid, PrintWriter out) {
        JSONObject data = new JSONObject();
        if (uid == null) {
            data.put("totalCount", 0);
        } else {
            UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
            int totalCount = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
                    + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
            data.put("totalCount", totalCount>=100?"99+":totalCount+"");
        }
        out.print(JsonUtil.loadTrueResult(data));
    }
}
fanli/src/main/java/com/yeshi/fanli/vo/goods/GoodsDetailExtraVO.java
@@ -66,6 +66,16 @@
    private String couponJumpLink;//券跳转链接,拼多多专用
    @Expose
    private String nativeCouponJumpLink;//原生券跳转链接,拼多多专用
    @Expose
    private Boolean vip;//是否为VIP
    public Boolean getVip() {
        return vip;
    }
    public void setVip(Boolean vip) {
        this.vip = vip;
    }
    public String getCouponJumpLink() {
        return couponJumpLink;