admin
2019-05-29 a438c5735834c26c584abfcc7221a06c1ccadcdc
资金到账明细优化
6个文件已修改
1个文件已添加
205 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dto/taobao/TaoLiJinDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeBaseUtil.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/taobao/TaoLiJinDTO.java
New file
@@ -0,0 +1,22 @@
package com.yeshi.fanli.dto.taobao;
public class TaoLiJinDTO {
    private String rightsId;
    private String sendUrl;
    public String getRightsId() {
        return rightsId;
    }
    public void setRightsId(String rightsId) {
        this.rightsId = rightsId;
    }
    public String getSendUrl() {
        return sendUrl;
    }
    public void setSendUrl(String sendUrl) {
        this.sendUrl = sendUrl;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -85,7 +85,6 @@
    @Resource
    private TaoBaoOrderService taoBaoOrderService;
    @Resource
    private LostOrderService lostOrderService;
@@ -281,7 +280,6 @@
            }
        }
    }
    @Resource
    private HongBaoOrderMapper hongBaoOrderMapper;
@@ -641,7 +639,6 @@
        // 邀请赚到账
        if (invitemoney.compareTo(new BigDecimal(0)) > 0) {
            userInfoMapper.addHongBaoByUid(uid, invitemoney);
            // 添加新版详情记录
            try {
@@ -662,7 +659,9 @@
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount,
                        (int) weiQuanCount, (int) invalidCount, invitemoney, new Date());
                userMoneyDetailMapper.insert(userMoneyDetail);
                // 增加资金
                userMoneyService.addUserMoney(uid, invitemoney, userMoneyDetail);
                // 添加到红包返利记录集合
                accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
            } catch (UserMoneyDetailException e) {
@@ -739,7 +738,6 @@
         */
        if (sharemoney.compareTo(new BigDecimal(0)) > 0) {
            userInfoMapper.addHongBaoByUid(uid, sharemoney);
            // 添加新版详情记录
            try {
                // 计算本月的有效订单,失效订单,维权订单
@@ -760,7 +758,9 @@
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount,
                        (int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
                userMoneyDetailMapper.insert(userMoneyDetail);
                // 添加资金
                userMoneyService.addUserMoney(uid, sharemoney, userMoneyDetail);
                // 添加到红包返利记录集合
                accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(hbIdList, userMoneyDetail.getId());
            } catch (UserMoneyDetailException e) {
@@ -789,8 +789,6 @@
        }
    }
    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    @Override
@@ -897,7 +895,6 @@
            try {
                commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid);
                hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU);
                
            } catch (CommonOrderException e) {
                try {
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -39,6 +39,7 @@
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -81,6 +82,9 @@
    @Resource
    private UserMoneyDebtService userMoneyDebtService;
    @Resource
    private UserMoneyService userMoneyService;
    @Override
    public void addWeiQuanDrawBack(TaoBaoWeiQuanDrawBack taoBaoWeiQuanDrawBack) {
@@ -243,12 +247,10 @@
                continue;
            }
            userInfoMapper.subHongBaoByUid(uid, drawBackMoney);
            UserMoneyDetail userMoneyDetail = null;
            // 新版资金记录
            try {
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createFanLiWeiQuan(uid, weiQuanDrawBack,
                        drawBackMoney);
                userMoneyDetailMapper.insert(userMoneyDetail);
                userMoneyDetail = UserMoneyDetailFactory.createFanLiWeiQuan(uid, weiQuanDrawBack, drawBackMoney);
            } catch (UserMoneyDetailException e) {
                try {
                    LogHelper.errorDetailInfo(e);
@@ -256,6 +258,7 @@
                    e1.printStackTrace();
                }
            }
            userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
            // 新版通知
            userMoneyMsgNotificationService.fanliOrderWeiQuan(uid, orderId, drawBackMoney,
@@ -418,12 +421,10 @@
                continue;
            }
            userInfoMapper.subHongBaoByUid(uid, drawBackMoney);
            UserMoneyDetail userMoneyDetail = null;
            // 新版资金记录
            try {
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShareWeiQuan(uid, weiQuanDrawBack,
                        drawBackMoney);
                userMoneyDetailMapper.insert(userMoneyDetail);
                userMoneyDetail = UserMoneyDetailFactory.createShareWeiQuan(uid, weiQuanDrawBack, drawBackMoney);
            } catch (UserMoneyDetailException e) {
                try {
                    LogHelper.errorDetailInfo(e);
@@ -431,6 +432,7 @@
                    e1.printStackTrace();
                }
            }
            userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
            userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, drawBackMoney,
                    userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
@@ -504,13 +506,11 @@
                        continue;
                    }
                    userInfoMapper.subHongBaoByUid(uid, drawBackMoney);
                    UserMoneyDetail userMoneyDetail = null;
                    // 新版资金记录
                    try {
                        UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInviteWeiQuan(uid,
                                weiQuanDrawBack, drawBackMoney);
                        userMoneyDetailMapper.insert(userMoneyDetail);
                        userMoneyDetail = UserMoneyDetailFactory.createInviteWeiQuan(uid, weiQuanDrawBack,
                                drawBackMoney);
                    } catch (UserMoneyDetailException e) {
                        try {
                            LogHelper.errorDetailInfo(e);
@@ -518,6 +518,9 @@
                            e1.printStackTrace();
                        }
                    }
                    userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
                    // 新版通知
                    userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, drawBackMoney,
                            userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java
@@ -32,6 +32,7 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
@@ -56,6 +57,9 @@
    @Resource
    private UserMoneyDetailMapper userMoneyDetailMapper;
    @Resource
    private UserMoneyService userMoneyService;
    public List<BindingAccount> getBindingAccountByUid(long uid) {
        return bindingAccountMapper.selectByUid(uid);
@@ -145,8 +149,7 @@
        // 需要转账验证
        BigDecimal money = new BigDecimal("0.1");
        transferAlipayWithVerify(account, name);
        // 扣款
        userInfoMapper.subHongBaoByUid(uid, money);
        // 转账成功
        // 插入转账成功表
        AlipayAccountValidNormalHistory history = new AlipayAccountValidNormalHistory();
@@ -155,10 +158,10 @@
        history.setName(name);
        history.setUid(uid);
        alipayAccountValidNormalHistoryMapper.insertSelective(history);
        UserMoneyDetail userMoneyDetail = null;
        // 新版资金
        try {
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(history, money);
            userMoneyDetailMapper.insert(userMoneyDetail);
            userMoneyDetail = UserMoneyDetailFactory.createExtractAccountValid(history, money);
        } catch (UserMoneyDetailException e) {
            try {
                LogHelper.errorDetailInfo(e);
@@ -167,6 +170,9 @@
            }
        }
        // 扣款
        userMoneyService.subUserMoney(uid, money, userMoneyDetail);
        userNotificationService.alipayAccountValidRight(uid, money, account);
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/user/ExtractServiceImpl.java
@@ -55,6 +55,7 @@
import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserNotificationService;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
@@ -128,6 +129,9 @@
    @Resource
    private UserMoneyDebtService userMoneyDebtService;
    @Resource
    private UserMoneyService userMoneyService;
    @Transactional
    public Integer addExtract(Extract extract) {
        Integer integer = extract(extract);
@@ -169,8 +173,15 @@
        UserInfo user = find.getUserInfo();
        userInfoMapper.addHongBaoByUid(user.getId(), find.getMoney());
        UserMoneyDetail userMoneyDetail = null;
        try {
            userMoneyDetail = UserMoneyDetailFactory.createExtractReject(find);
        } catch (UserMoneyDetailException e1) {
            e1.printStackTrace();
        }
        // 增加资金
        userMoneyService.addUserMoney(user.getId(), find.getMoney(), userMoneyDetail);
        // 更新原来的状态
        Extract updateExtract = new Extract();
        updateExtract.setId(id);
@@ -207,16 +218,6 @@
        // 更新提现记录审核表
        extractAuditRecordMapper.updateByPrimaryKeySelective(auditRecord);
        // 新版资金详情
        try {
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractReject(find);
            userMoneyDetailMapper.insert(userMoneyDetail);
        } catch (UserMoneyDetailException e2) {
            try {
                LogHelper.errorDetailInfo(e2);
            } catch (Exception e3) {
                e3.printStackTrace();
            }
        }
        try {
            userNotificationService.extractWrong(user.getId(), find,
@@ -272,13 +273,12 @@
        auditRecord.setExtract(extract);
        extractAuditRecordMapper.insertSelective(auditRecord);
        // 减去账户资金
        userInfoMapper.subHongBaoByUid(extract.getUserInfo().getId(), extract.getMoney());
        // 新版资金详情
        UserMoneyDetail userMoneyDetail = null;
        try {
            UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtract(extract);
            userMoneyDetailMapper.insert(userMoneyDetail);
            userMoneyDetail = UserMoneyDetailFactory.createExtract(extract);
        } catch (UserMoneyDetailException e2) {
            try {
                LogHelper.errorDetailInfo(e2);
@@ -286,6 +286,9 @@
                e1.printStackTrace();
            }
        }
        // 减去账户资金
        userMoneyService.subUserMoney(extract.getUserInfo().getId(), extract.getMoney(), userMoneyDetail);
        userNotificationService.extractApply(extract.getUserInfo().getId());
        // 添加新版通知
@@ -436,12 +439,10 @@
            updateExtract.setReason(msg);
            extractMapper.updateByPrimaryKeySelective(updateExtract);
            userInfoMapper.addHongBaoByUid(user.getId(), extract.getMoney());
            UserMoneyDetail userMoneyDetail = null;
            // 新版资金详情
            try {
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createExtractReject(extract);
                userMoneyDetailMapper.insert(userMoneyDetail);
                userMoneyDetail = UserMoneyDetailFactory.createExtractReject(extract);
            } catch (UserMoneyDetailException e2) {
                try {
                    LogHelper.errorDetailInfo(e2);
@@ -449,6 +450,8 @@
                    e1.printStackTrace();
                }
            }
            // 增加资金
            userMoneyService.addUserMoney(user.getId(), extract.getMoney(), userMoneyDetail);
            try {
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -11,6 +11,7 @@
import com.taobao.api.ApiException;
import com.yeshi.fanli.dto.taobao.TaoBaoShopInfoDTO;
import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.taobao.RelateGoods;
import com.yeshi.fanli.entity.taobao.SearchFilter;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -1238,7 +1239,6 @@
        return list;
    }
    /**
     * 店铺搜索
     * 
@@ -1777,7 +1777,6 @@
        }
    }
    
    public static void taoKeContentSource(String contentId,String source) {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.dg.optimus.material");
@@ -1787,7 +1786,6 @@
        map.put("content_id",contentId);
        map.put("content_source", source);
        map.put("material_id", "1");
        
        TaoKeAppInfo app = new TaoKeAppInfo();
        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
@@ -1799,9 +1797,6 @@
            e.printStackTrace();
        }
    }
    // AA5ISJ
@@ -1897,8 +1892,7 @@
        return goods;
    }
    
    public static void getShopGoodsList(Long shopId)
    {
    public static void getShopGoodsList(Long shopId) {
        Map<String, String> map = new HashMap<>();
        map.put("method", "tmall.omni.pc.iteminfo.getbyshopid");
        map.put("shop_id",shopId+"");
@@ -1913,8 +1907,7 @@
        }
    }
    
    public static void getTaoKeContentEffective()
    {
    public static void getTaoKeContentEffective() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.dg.optimus.material");
        map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID.split("_")[3]);
@@ -1934,9 +1927,7 @@
        
    }
    
    public static void getTaoKeContent()
    {
    public static void getTaoKeContent() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.content.get");
        map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID.split("_")[3]);
@@ -1956,22 +1947,22 @@
    
    //淘礼金创建
    
    public static void getLiJin()
    {
    public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum,
            int useDayLimit, Date sendStartTime, Date sendEndTime, Date useStartTime) {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.dg.vegas.tlj.create");
        map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]);
        map.put("item_id", "538982295340");
        map.put("total_num", "1");
        map.put("name", "返利券新人淘礼金红包");
        map.put("item_id", auctionId + "");
        map.put("total_num", totalNum + "");
        map.put("name", name);
        map.put("user_total_win_num_limit", "1");
        map.put("security_switch", "false");
        map.put("per_face", "1.00");
        map.put("send_start_time", "2019-05-27 00:00:00");
        map.put("send_end_time", "2019-06-01 00:00:00");
        map.put("use_end_time", "1");
        map.put("per_face", perface.toString());
        map.put("send_start_time", TimeUtil.getGernalTime(sendStartTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
        map.put("send_end_time", TimeUtil.getGernalTime(sendEndTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
        map.put("use_end_time", useDayLimit + "");
        map.put("use_end_time_mode", "1");
        map.put("use_start_time", "2019-05-27 00:00:00");
        map.put("use_start_time", TimeUtil.getGernalTime(useStartTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
        
        TaoKeAppInfo app = new TaoKeAppInfo();
        app.setAppKey( TaoBaoConstant.TAOBAO_AUTH_APPKEY);
@@ -1979,29 +1970,36 @@
        try {
            JSONObject json = TaoKeBaseUtil.baseRequest(map,app);
            System.out.println(json);
            JSONObject root = json.optJSONObject("tbk_dg_vegas_tlj_create_response");
            if (root != null && root.optJSONObject("result") != null) {
                if (root.optJSONObject("result").optBoolean("success")) {
                    JSONObject modelJson = root.optJSONObject("result").optJSONObject("model");
                    TaoLiJinDTO dto = new TaoLiJinDTO();
                    dto.setRightsId(modelJson.optString("rights_id"));
                    dto.setSendUrl(modelJson.optString("send_url"));
                    return dto;
                }
            }
        } catch (TaoKeApiException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    //lCj1Alo8b9L4Ed6yJLq6iqJ7%2BkHL3AEW
    
    public static void getLiJinXG()
    {
    public static void getTaoLiJinEffective() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.dg.vegas.tlj.instance.report");
        map.put("rights_id", "ZrIIvF%2Fnd7SlL5Bg59eTK6J7%2BkHL3AEW");
        map.put("rights_id", "ZrIIvF/nd7SlL5Bg59eTK6J7+kHL3AEW");
        
        TaoKeAppInfo app = new TaoKeAppInfo();
        app.setAppKey( TaoBaoConstant.TAOBAO_AUTH_APPKEY);
        app.setAppSecret( TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        try {
            JSONObject json = TaoKeBaseUtil.baseRequest(map,app);
        String json = TaoKeBaseUtil.baseRequestForThreeTimes(map, app);
            System.out.println(json);
        } catch (TaoKeApiException e) {
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeBaseUtil.java
@@ -50,10 +50,16 @@
        String result = TaoBaoHttpUtil.taoKeGet(params);
        JSONObject data = JSONObject.fromObject(result);
        if (data != null) {
            if (data.optJSONObject("error_response") != null
                    && data.optJSONObject("error_response").optInt("code") == 7) {
            if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 7
                    && "accesscontrol.limited-by-app-access-count"
                            .equalsIgnoreCase(data.optJSONObject("error_response").optString("sub_code"))) {
                reportAppInvalid(app.getAppKey());
                TaoKeLogHelper.error(params, result);
                try {
                    EmergencyUtil.baoJin("monitor-error-tb-app-limit-" + params.get("app_key"),
                            "淘宝APPKey请求限制【" + params.get("app_key") + "】", new String[] { "18581318252" });
                } catch (Exception e1) {
                }
                throw new TaoKeApiException(TaoKeApiException.CODE_APPKEY_LIMIT, "淘宝请求限制:" + result, params);
            } else if (data.optJSONObject("error_response") != null) {
                throw new TaoKeApiException(TaoKeApiException.CODE_API_ERROR, result, params);
@@ -90,8 +96,9 @@
        String result = TaoBaoHttpUtil.taoKeGet(params);
        JSONObject data = JSONObject.fromObject(result);
        if (data != null) {
            if (data.optJSONObject("error_response") != null
                    && data.optJSONObject("error_response").optInt("code") == 7) {
            if (data.optJSONObject("error_response") != null && data.optJSONObject("error_response").optInt("code") == 7
                    && "accesscontrol.limited-by-app-access-count"
                            .equalsIgnoreCase(data.optJSONObject("error_response").optString("sub_code"))) {
                reportAppInvalid(app.getAppKey());
                throw new TaoKeApiException(TaoKeApiException.CODE_APPKEY_LIMIT, "淘宝请求限制:" + result, params);
            } else if (data.optJSONObject("error_response") != null) {
@@ -122,13 +129,6 @@
                TaoKeLogHelper.error(e.getParams(), e.getMsg());
                if (e.getCode() == TaoKeApiException.CODE_API_ERROR) {
                    result = e.getMsg();
                } else if (e.getCode() == TaoKeApiException.CODE_APPKEY_LIMIT) {
                    try {
                        EmergencyUtil.baoJin("monitor-error-tb-app-limit-" + params.get("app_key"),
                                "淘宝APPKey请求限制【" + params.get("app_key") + "】", new String[] { "18581318252" });
                    } catch (Exception e1) {
                    }
                }
            }
        }