yujian
2020-06-30 b457131dda80427bbd47b05b9ad27366cafa1718
首单 + 发单日志记录
6个文件已修改
101 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
@@ -439,4 +439,13 @@
     * @return
     */
    List<CommonOrder> listByOrderNo(@Param("orderNo") String orderNo);
    /**
     * 获取首个订单
     * @param orderNo
     * @return
     */
    CommonOrder getFirstOrder(@Param("uid") Long uid);
}
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
@@ -1231,4 +1231,10 @@
        WHERE d.`co_order_no` = #{orderNo}
        GROUP BY d.`co_order_no`,d.`co_source_type`
    </select>
    <select id="getFirstOrder" resultMap="BaseResultMap">
        SELECT * FROM `yeshi_ec_common_order` d
        WHERE d.co_uid = #{uid}
        limit 1
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -2381,4 +2381,9 @@
        return commonOrderMapper.listByOrderNo(orderNo);
    }
    @Override
    public CommonOrder getFirstOrder(Long uid) {
        return commonOrderMapper.getFirstOrder(uid);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -482,6 +482,11 @@
        if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48)
            return;
        
        // 验证是否未首单
        CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid);
        if (!firstOrder.getOrderNo().equals(orderNo) && firstOrder.getSourceType() != source)
            return;
        // 是否存在上下级关系
        ThreeSale threeSale = threeSaleSerivce.getByWorkerId(orderUid);
        if (threeSale == null)
@@ -515,6 +520,10 @@
        boolean satisfy = false;
        // 遍历是否存在符合相应商品
        for (CommonOrder commonOrder: list) {
            // 订单失效
            if(commonOrder.getState() != CommonOrder.STATE_FK && commonOrder.getState() != CommonOrder.STATE_JS)
                continue;
            // 邀请关系之后
            long thirdTime = commonOrder.getThirdCreateTime().getTime();
            if (thirdTime < threeSale.getCreateTime())
@@ -569,6 +578,10 @@
        if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48)
            return satisfy;
        
        CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid);
        if (!firstOrder.getOrderNo().equals(orderNo) && firstOrder.getSourceType() != source)
            return satisfy;
        // 是否已奖励
        List<UserSystemCoupon> coupons = userSystemCouponService.getUserCouponBySource(orderUid, UserSystemCoupon.SOURCE_PULL_NEW);
        if (coupons != null && coupons.size() > 0) {
@@ -605,6 +618,10 @@
            long thirdTime = commonOrder.getThirdCreateTime().getTime();
            if (thirdTime < threeSale.getCreateTime())
                continue;
            // 订单失效
            if(commonOrder.getState() != CommonOrder.STATE_FK && commonOrder.getState() != CommonOrder.STATE_JS)
                continue;
            // 付款金额限制
            BigDecimal payment = commonOrder.getPayment();
            if (payment == null || payment.compareTo(limitPayMent) < 0) 
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java
@@ -14,6 +14,7 @@
import org.yeshi.utils.BigDecimalUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import com.alibaba.druid.support.logging.Log;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dao.mybatis.user.cloud.UserCloudMapper;
@@ -407,6 +408,7 @@
    }
    private void sendCircleByDynamic(Long uid, String id, int way) throws UserCloudException {
        long time1= java.lang.System.currentTimeMillis();
        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
        if (user == null)
            throw new UserCloudException(1, "用户信息不存在");
@@ -427,7 +429,11 @@
        if (StringUtil.isNullOrEmpty(relationId))
            throw new UserCloudException(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号");
        long time2= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic保验证用户状态:" + (time2 - time1));
        // 验证是否开通
        UserCloud userCloud = userCloudMapper.getValidByUid(uid);
        if (userCloud == null)
@@ -441,6 +447,10 @@
        if (StringUtil.isNullOrEmpty(wxId))
            throw new UserCloudException(1003, "微信号不存在,请先微信登录");
        long time3= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic验证是否满足开通:" + (time3 - time2));
        // 验证开启状态
        List<UserCloudGroup> listGroup = userCloudGroupService.listByUid(uid);
        if (listGroup == null || listGroup.size() == 0)
@@ -455,6 +465,9 @@
        if (listOpen.size() == 0)
            throw new UserCloudException(1005, "请先开启云发单群功能");
        long time4= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic验证是否开启:" + (time4 - time3));
        // 验证发圈是否可行
        GoodsEvaluate evaluate = goodsEvaluateService.getById(id);
        if (evaluate == null || evaluate.getState() == 0)
@@ -468,6 +481,9 @@
        if (comments == null || comments.size() == 0)
            throw new UserCloudException(1, "该内容不能转链");
        long time5= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic验证发圈内容是否满足:" + (time5 - time4));
        // 检测微信是否登录状态
        if (!AitaokerApiUtil.onlineCheck(robotId)) {
            // 通知登录微信
@@ -476,6 +492,9 @@
            throw new UserCloudException(1003, "微信已掉线,需要重新扫描二维码登录");
        }
        long time6= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic验证发是否登录:" + (time6 - time5));
        boolean hasToken = false;
        List<String> listComment = new ArrayList<>();
        for (CommentInfo commentInfo : comments) {
@@ -527,6 +546,10 @@
                listImg.add(imgInfo.getUrl());
            }
        }
        long time7= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic发圈内容组织转链:" + (time7 - time6));
        // 保存发送记录
        UserCloudSendRecord sendRecord = new UserCloudSendRecord();
@@ -540,6 +563,10 @@
        UserCloudSendRecord result = userCloudSendRecordService.save(sendRecord);
        String pid = result.getId();
        long time8= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic保存发圈记录:" + (time8 - time7));
        for (UserCloudGroup cloudGroup : listOpen) {
            String title = evaluate.getTitle();
@@ -631,6 +658,10 @@
            }
            userCloudSendContentService.save(sendContent);
        }
        long time9= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByDynamic执行发圈耗时:" + (time9 - time8));
    }
    @Override
@@ -672,6 +703,8 @@
    private void sendCircleByGoods(Long uid, Long goodsId, Integer goodsType, Long storeId, Long sellerId, int way)
            throws UserCloudException {
        long begainTime = java.lang.System.currentTimeMillis();
        // 验证是否授权
        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
        if (user == null)
@@ -694,11 +727,19 @@
        if (StringUtil.isNullOrEmpty(relationId))
            throw new UserCloudException(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号");
        long time2 = java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByGoods验证用户耗时:" + (time2 - begainTime));
        // 验证是否开通
        UserCloud userCloud = userCloudMapper.getValidByUid(uid);
        if (userCloud == null)
            throw new UserCloudException(1001, "云发单已过期");
        long time3= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByGoods验证是否开通:" + (time3 - time2));
        long time4 = time3;
        // 加入我的备选库
        if (storeId == null) {
            try {
@@ -710,6 +751,8 @@
                        + "]原因:" + e.getMsg());
                throw new UserCloudException(1, "加入云发单备选库失败");
            }
            time4= java.lang.System.currentTimeMillis();
            LogHelper.test("sendCircleByGoods加入备选库:" + (time4 - time3));
        }
        // 自选库商品是否打开
@@ -736,6 +779,9 @@
        if (listGroup == null || listGroup.size() == 0)
            throw new UserCloudException(1003, "请先登录微信");
        long time5= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByGoods验证是否绑定微信:" + (time5 - time4));
        List<UserCloudGroup> listOpen = new ArrayList<>();
        for (UserCloudGroup cloudGrou : listGroup) {
            if (cloudGrou.getState()) {
@@ -754,6 +800,9 @@
            throw new UserCloudException(1003, "微信已掉线,需要重新扫描二维码登录");
        }
        long time6= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByGoods验证是否登录微信:" + (time6 - time5));
        // 保存发送记录
        UserCloudSendRecord sendRecord = new UserCloudSendRecord();
        sendRecord.setUid(uid);
@@ -770,6 +819,9 @@
            sendRecord.setSendWay(UserCloudSendRecord.SEND_WAY_MANUAL);
        }
        UserCloudSendRecord result = userCloudSendRecordService.save(sendRecord);
        long time7= java.lang.System.currentTimeMillis();
        LogHelper.test("sendCircleByGoods保存发送记录:" + (time7 - time6));
        try {
            if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
@@ -792,7 +844,8 @@
                record.setUpdateTime(new Date());
                userCloudGoodsService.updateByPrimaryKeySelective(record);
            }
            long time8= java.lang.System.currentTimeMillis();
            LogHelper.test("sendCircleByGoods执行发送:" + (time8 - time7));
        } catch (UserCloudException e) {
            LogHelper.cloudInfo("autoSendCustomGoods - [uid:" + uid + " 库id:" + storeId + "]原因:" + e.getMsg());
            // 更新发单记录
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java
@@ -489,4 +489,11 @@
     */
    public List<CommonOrder> getByOrderNoAndSourceType(Long uid, String orderNO, int sourceType);
    /**
     * 首单
     * @param uid
     * @return
     */
    public CommonOrder getFirstOrder(Long uid);
}