admin
2019-04-16 c987318c7cf02e51fe6c9c98e75bfcc47058841b
优化部分功能,添加京东
8个文件已修改
2个文件已添加
176 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/UserAuthController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDSearchFilter.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/jd/JDGoods.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserOrderMsgNotificationServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserOrderMsgNotificationService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserAuthController.java
@@ -78,8 +78,7 @@
        String link = TaoBaoUtil.getTaoBaoUnionAuthUrl(TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                "http://api.flqapp.com/fanli/client/v1/auth/callback/tb", uid, source);
        String orderJS = "var orderId= document.getElementById('tp-bought-root').getElementsByClassName('js-order-container')[0].getElementsByTagName('div')[0].getAttribute('data-id');";
        orderJS += "if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {window.location.href='yestv://taobaoorder#'+orderId;} else {window.handle.showOrder(orderId)}";
        String orderJS=configService.get("taobao_order_parse_js");
        JSONObject data = new JSONObject();
        data.put("authLink", link);
        try {
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -40,6 +40,7 @@
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
@@ -276,13 +277,24 @@
            goods.setImgList(new ArrayList<>());
        goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
        data.put("imgs", goods.getImgList());
        data.put("couponPrice", afterCouponPrice);
        // 老版本兼容
        data.put("quanPrice", afterCouponPrice);
        data.put("zkPrice", goods.getZkPrice());
        data.put("shareContent", "长按复制本段文字,打开【手机淘宝】即可领取【特别优惠券】购买下单,");
        data.put("token", link.getTaoToken());
        data.put("quan", !StringUtil.isNullOrEmpty(goods.getCouponInfo()));
        data.put("reservePrice", goods.getReservePrice());
        data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
        if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"无".equalsIgnoreCase(goods.getCouponInfo())) {
            data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
            data.put("coupon", true);
            // 老版本兼容
            data.put("quan", true);
        } else {
            data.put("coupon", false);
            // 老版本兼容
            data.put("quan", true);
        }
        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
        final String tempUid = uid;
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDSearchFilter.java
New file
@@ -0,0 +1,9 @@
package com.yeshi.fanli.dto.jd;
public class JDSearchFilter {
    Integer isZY;// 是否为自营 1-自营
    Integer hasCoupon;// 是否有券 1-有券
    Integer categoryId;// 分类ID
    int pageNo;// 页码
    int pageSize;// 每页的数量
}
fanli/src/main/java/com/yeshi/fanli/entity/jd/JDGoods.java
New file
@@ -0,0 +1,5 @@
package com.yeshi.fanli.entity.jd;
public class JDGoods {
}
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsTextTemplateServiceImpl.java
@@ -5,6 +5,7 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.HttpUtil;
import com.yeshi.fanli.dao.mybatis.goods.ShareGoodsTextTemplateMapper;
@@ -62,6 +63,7 @@
        return null;
    }
    @Transactional
    @Override
    public void saveCouponTemplate(Long uid, String template) throws ShareGoodsTextTemplateException {
        isCouponTemplateRight(template);
fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
@@ -175,7 +175,6 @@
            if (hasAdd) {
                Iterator<Integer> its = notificationMap.keySet().iterator();
                while (its.hasNext()) {
                    Integer t = its.next();
                    HongBaoV2 notify = notificationMap.get(t).getHongBaoV2();
                    CommonOrder commonOrder = notificationMap.get(t).getCommonOrder();
@@ -206,6 +205,11 @@
                                MsgOrderDetail.STATE_FK, null, money);
                        userOrderMsgNotificationService.orderInviteStatistic(uid, orderId, commonOrder.getPayment(),
                                money, goodsCount, state);
                        break;
                    case HongBaoV2.TYPE_SHARE_YIJI:
                        userOrderMsgNotificationService.orderShareFirstLevelStatistic(uid, orderId,
                                commonOrder.getPayment(), money, goodsCount, state, notify.getBeizhu());
                        break;
                    }
                }
@@ -239,6 +243,9 @@
                        userOrderMsgNotificationService.orderInviteStateChanged(uid, orderId, commonOrder.getPayment(),
                                money, state);
                        break;
                    case HongBaoV2.TYPE_SHARE_YIJI:
                        userOrderMsgNotificationService.orderShareFirstLevelStateChanged(uid, orderId,
                                commonOrder.getPayment(), money, state);
                    }
                }
            }
@@ -548,17 +555,20 @@
                    childUpdate.setUpdateTime(new Date());
                    BigDecimal rate = null;
                    if (child.getType() == HongBaoV2.TYPE_SHARE_YIJI) {// 一级分享赚
                        rate = hongBaoManageService.getFirstShareRate(child.getUrank(),
                                commonOrder.getCreateTime().getTime());
                        rate = hongBaoManageService.getFirstShareRate(1, commonOrder.getCreateTime().getTime());
                    } else if (child.getType() == HongBaoV2.TYPE_SHARE_ERJI) {// 二级分享赚
                        rate = hongBaoManageService.getSecondShareRate(child.getUrank(),
                                commonOrder.getCreateTime().getTime());
                        rate = hongBaoManageService.getSecondShareRate(1, commonOrder.getCreateTime().getTime());
                    }
                    // 以实际收入为准计算预估收益
                    if (CommonOrder.STATE_JS == commonOrder.getState()) {
                        childUpdate.setMoney(
                                MoneyBigDecimalUtil.mul(hongBao.getMoney(), rate.divide(new BigDecimal(100))));
                        if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-16",
                                "yyyy-MM-dd"))
                            childUpdate.setMoney(MoneyBigDecimalUtil.mul(commonOrder.geteIncome(),
                                    rate.divide(new BigDecimal(100))));
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(commonOrder.getSettleTime());
                        calendar.add(Calendar.MONTH, 1);
@@ -566,13 +576,34 @@
                                calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25",
                                "yyyy-M-dd")));
                    } else if (CommonOrder.STATE_FK == commonOrder.getState()) {
                        if (commonOrder.getOrderNo().equalsIgnoreCase("314134177659155087"))
                            System.out.println("");
                        if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-16",
                                "yyyy-MM-dd"))
                            childUpdate.setMoney(MoneyBigDecimalUtil.mul(commonOrder.getEstimate(),
                                    rate.divide(new BigDecimal(100))));
                        else
                        childUpdate.setMoney(
                                MoneyBigDecimalUtil.mul(hongBao.getMoney(), rate.divide(new BigDecimal(100))));
                    }
                    hongBaoV2Mapper.updateByPrimaryKeySelective(childUpdate);
                    // 添加通知
                    if (notificationMap.get(child.getType()) == null) {
                        HongBaoV2 tempHongBao = new HongBaoV2(child.getId());
                        tempHongBao.setUserInfo(child.getUserInfo());
                        tempHongBao.setMoney(childUpdate.getMoney());
                        CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
                        tempCommonOrder.setPayment(commonOrder.getPayment());
                        notificationMap.put(child.getType(), new HongBaoOrder(tempCommonOrder, tempHongBao));
                    } else {
                        // 增加付款金额与资金
                        HongBaoOrder tempHongBaoOrder = notificationMap.get(child.getType());
                        tempHongBaoOrder.getCommonOrder().setPayment(
                                tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
                        tempHongBaoOrder.getHongBaoV2()
                                .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(childUpdate.getMoney()));
                        notificationMap.put(child.getType(), tempHongBaoOrder);
                    }
                }
        } else
            throw new HongBaoException(2, "type错误");
@@ -802,7 +833,6 @@
                        }
                    }
                }
            }
            HongBaoV2 hongBao = new HongBaoV2();
@@ -851,6 +881,56 @@
                notificationMap.put(type, tempHongBaoOrder);
            }
            // 4月17日后才有一级分享赚
            if (commonOrder.getThirdCreateTime().getTime() > TimeUtil.convertToTimeTemp("2019-04-17", "yyyy-MM-dd")) {
                UserInfo boss = threeSaleSerivce.getBoss(hongBao.getUserInfo().getId());
                if (boss != null) {
                    BigDecimal firstLevelRate = hongBaoManageService.getFirstShareRate(1,
                            commonOrder.getThirdCreateTime().getTime());
                    HongBaoV2 child = new HongBaoV2();
                    child.setParent(hongBao);
                    child.setType(HongBaoV2.TYPE_SHARE_YIJI);
                    if (commonOrder.getState() == CommonOrder.STATE_FK) {
                        child.setState(HongBaoV2.STATE_BUKELINGQU);
                        child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.getEstimate(),
                                firstLevelRate.divide(new BigDecimal(100))));
                    } else if (commonOrder.getState() == CommonOrder.STATE_JS) {
                        child.setState(HongBaoV2.STATE_KELINGQU);
                        child.setMoney(MoneyBigDecimalUtil.mul(commonOrder.geteIncome(),
                                firstLevelRate.divide(new BigDecimal(100))));
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(commonOrder.getSettleTime());
                        calendar.add(Calendar.MONTH, 1);
                        child.setPreGetTime(new Date(TimeUtil.convertToTimeTemp(
                                calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-25",
                                "yyyy-M-dd")));
                    }
                    child.setUserInfo(boss);
                    child.setUrank(boss.getRank());
                    child.setVersion(2);
                    child.setCreateTime(new Date());
                    hongBaoV2Mapper.insertSelective(child);
                    // 添加通知
                    if (notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI) == null) {
                        HongBaoV2 tempHongBao = new HongBaoV2(child.getId());
                        tempHongBao.setUserInfo(child.getUserInfo());
                        tempHongBao.setMoney(child.getMoney());
                        tempHongBao.setBeizhu(hongBao.getUserInfo().getNickName());
                        CommonOrder tempCommonOrder = new CommonOrder(commonOrder.getId());
                        tempCommonOrder.setPayment(commonOrder.getPayment());
                        notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI, new HongBaoOrder(tempCommonOrder, tempHongBao));
                    } else {
                        // 增加付款金额与资金
                        HongBaoOrder tempHongBaoOrder = notificationMap.get(HongBaoV2.TYPE_SHARE_YIJI);
                        tempHongBaoOrder.getCommonOrder().setPayment(
                                tempHongBaoOrder.getCommonOrder().getPayment().add(commonOrder.getPayment()));
                        tempHongBaoOrder.getHongBaoV2()
                                .setMoney(tempHongBaoOrder.getHongBaoV2().getMoney().add(child.getMoney()));
                        notificationMap.put(HongBaoV2.TYPE_SHARE_YIJI, tempHongBaoOrder);
                    }
                }
            }
            // 修改统计数据
            Long goodsId = commonOrder.getCommonOrderGoods().getId();
            // 查询商品
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserOrderMsgNotificationServiceImpl.java
@@ -10,6 +10,7 @@
import com.yeshi.fanli.exception.msg.MsgOrderDetailException;
import com.yeshi.fanli.service.inter.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.msg.UserOrderMsgNotificationService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.msg.MsgOrderDetailFactory;
@Service
@@ -97,4 +98,30 @@
    }
    @Override
    public void orderShareFirstLevelStatistic(Long uid, String orderId, BigDecimal payMoney, BigDecimal money,
            int goodsCount, int orderState, String sourceUserName) {
        MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, goodsCount, orderState, payMoney,
                money, String.format("由一级队员【%s】分享", sourceUserName));
        try {
            msgOrderDetailService.addMsgOrderDetail(detail);
        } catch (MsgOrderDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void orderShareFirstLevelStateChanged(Long uid, String orderId, BigDecimal payMoney, BigDecimal money,
            int orderState) {
        MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, 0, orderState, payMoney, money,
                null);
        // 暂时不推送
        try {
            msgOrderDetailService.updateMsgOrderDetail(detail, false);
        } catch (MsgOrderDetailException e) {
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -984,7 +984,6 @@
                e1.printStackTrace();
            }
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/UserOrderMsgNotificationService.java
@@ -83,4 +83,19 @@
    public void orderInviteStateChanged(Long uid, String orderId, BigDecimal payMoney, BigDecimal money,
            int orderState);
    public void orderShareFirstLevelStatistic(Long uid, String orderId, BigDecimal payMoney, BigDecimal money,
            int goodsCount, int orderState,String sourceUserName);
    /**
     * 分享订单状态改变
     *
     * @param uid
     * @param orderId
     * @param payMoney
     * @param money
     * @param orderState
     */
    public void orderShareFirstLevelStateChanged(Long uid, String orderId, BigDecimal payMoney, BigDecimal money,
            int orderState);
}
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -6,8 +6,6 @@
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.jsoup.Connection;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;