| | |
| | | package com.taoke.autopay; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.taoke.autopay.dao.KeyOrderMapper; |
| | | import com.taoke.autopay.dto.DYOrderDto; |
| | | import com.taoke.autopay.entity.KeyOrder; |
| | | import com.taoke.autopay.entity.OrderCountTypeEnum; |
| | | import com.taoke.autopay.entity.SystemConfigKeyEnum; |
| | | import com.taoke.autopay.entity.WxUserSettings; |
| | | import com.taoke.autopay.exception.KeyOrderException; |
| | | import com.taoke.autopay.exception.KeyVerifyException; |
| | | import com.taoke.autopay.exception.WxOrderCountException; |
| | | import com.taoke.autopay.service.KeyOrderService; |
| | | import com.taoke.autopay.service.SystemConfigService; |
| | | import com.taoke.autopay.manager.OrderPayFailProcessor; |
| | | import com.taoke.autopay.manager.PayCountVerifyManager; |
| | | import com.taoke.autopay.service.*; |
| | | import com.taoke.autopay.utils.AlipayOrderUtil; |
| | | import com.taoke.autopay.utils.Constant; |
| | | import com.taoke.autopay.utils.JsonUtil; |
| | | import com.taoke.autopay.utils.TimeUtil; |
| | | import com.taoke.autopay.vo.SubmitKeyInfo; |
| | | import org.junit.jupiter.api.Test; |
| | |
| | | import org.yeshi.utils.UrlUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author hxh |
| | |
| | | @Resource |
| | | private KeyOrderService keyOrderService; |
| | | |
| | | @Resource |
| | | private KeyOrderMapper keyOrderMapper; |
| | | |
| | | @Resource |
| | | private OrderPayFailProcessor orderPayFailProcessor; |
| | | |
| | | private void addKey(SubmitKeyInfo keyInfo, Long wxUid) throws KeyVerifyException, KeyOrderException, WxOrderCountException { |
| | | // 解析链接 |
| | | List<String> urllist = UrlUtils.parseUrlsFromText(keyInfo.getKey()); |
| | | |
| | | |
| | | String verifyAlipayKey = systemConfigService.getValueCache(SystemConfigKeyEnum.ALIPAY_KEY_VERIFY); |
| | | if(verifyAlipayKey!=null&&verifyAlipayKey.trim().equalsIgnoreCase("1")||true) { |
| | | if (verifyAlipayKey != null && verifyAlipayKey.trim().equalsIgnoreCase("1") || true) { |
| | | try { |
| | | // 需要验证支付宝口令 |
| | | if (urllist.size() < 1) { |
| | |
| | | throw new Exception("口令内容获取失败"); |
| | | } |
| | | // 验证内容 |
| | | DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount()); |
| | | }catch(KeyVerifyException ee){ |
| | | throw ee; |
| | | } |
| | | catch(Exception e){ |
| | | DYOrderDto dto = keyOrderService.verifyKey(tradeInfo.getGoodsTitle(), orderStatus, tradeInfo.getItemRealAmount(),null, null); |
| | | } catch (KeyVerifyException ee) { |
| | | throw ee; |
| | | } catch (Exception e) { |
| | | throw new KeyVerifyException(KeyVerifyException.CODE_COMMON, e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void test1() { |
| | | SubmitKeyInfo keyInfo=new SubmitKeyInfo(); |
| | | keyInfo.setKey("【支fu`寳】亲,复制 Q:/dYsUzQV77s5 p:/S ZH2412 2020/11/27打开支付宝就可以帮我🏮付款啦💪https://ur.alipay.com/_Ig4toHTlLHbBqiJqb3dpC"); |
| | | public void test1() { |
| | | SubmitKeyInfo keyInfo = new SubmitKeyInfo(); |
| | | keyInfo.setKey("【支.f.u.宝】亲,复制 m:/AYyvvyJ32pG Y:/e CA8474 2021/01/18打开支付宝\uD83C\uDFEE就可以帮我\uD83C\uDFEE付款啦\uD83C\uDFEEhttps://ur.alipay.com/_1kIJISKdMN6PREE9laoYWS"); |
| | | try { |
| | | addKey(keyInfo, 1L); |
| | | KeyOrder keyOrder=new KeyOrder(); |
| | | keyOrder.setId("test21123123"); |
| | | keyOrder.setKey(keyInfo.getKey()); |
| | | keyOrderMapper.insertSelective(keyOrder); |
| | | } catch (KeyVerifyException e) { |
| | | e.printStackTrace(); |
| | | } catch (KeyOrderException e) { |
| | |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void testRePay() throws InterruptedException { |
| | | for (int i = 0; i < 10; i++) { |
| | | orderPayFailProcessor.processPayFail("2c9d0dd55cd845819c8e6010fe10def4", "读取支付宝粘贴板超时"); |
| | | Thread.sleep(2000); |
| | | orderPayFailProcessor.processFromQueue(); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void statisticAgentId() { |
| | | KeyOrderMapper.DaoQuery query=new KeyOrderMapper.DaoQuery(); |
| | | query.hasAgentId=true; |
| | | query.hasPayTime = true; |
| | | query.state =2; |
| | | query.count = 100; |
| | | |
| | | List<Long> list = keyOrderService.listAgentId(query); |
| | | System.out.println(list); |
| | | } |
| | | |
| | | @Test |
| | | public void repaire(){ |
| | | KeyOrderMapper.DaoQuery query=new KeyOrderMapper.DaoQuery(); |
| | | query.state=3; |
| | | query.minCreateTime=new Date(TimeUtil.convertToTimeTemp("2024-08-02","yyyy-MM-dd")); |
| | | query.stateDesc="订单已支付"; |
| | | query.count = 1000; |
| | | List<KeyOrder> list = keyOrderService.list(query); |
| | | for(KeyOrder o:list){ |
| | | KeyOrder update=new KeyOrder(); |
| | | update.setId(o.getId()); |
| | | update.setState(KeyOrder.STATE_PAY); |
| | | update.setPayTime(o.getExcutePayTime()); |
| | | keyOrderService.update(update); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Resource |
| | | private ClientInfoService clientInfoService; |
| | | |
| | | @Test |
| | | public void test2(){ |
| | | List<Long> clientIds = clientInfoService.getRePayClientIds(); |
| | | if (clientIds!=null&&clientIds.size()>0) { |
| | | Collections.shuffle(clientIds); |
| | | // 查询设备未执行的数量 |
| | | for(Long cuid:clientIds) { |
| | | KeyOrderMapper.DaoQuery daoQuery = new KeyOrderMapper.DaoQuery(); |
| | | daoQuery.distributeClientUid =cuid; |
| | | daoQuery.state = KeyOrder.STATE_NOT_PAY; |
| | | daoQuery.minCreateTime=new Date(System.currentTimeMillis() - 1000*60*30L); |
| | | long count = keyOrderService.count(daoQuery); |
| | | if(count <=1){ |
| | | // 分配 |
| | | System.out.println( cuid); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Resource |
| | | private WxUserSettingService wxUserSettingService; |
| | | |
| | | @Resource |
| | | private WxUserOrderCountService wxUserOrderCountService; |
| | | |
| | | @Test |
| | | public void testCount() throws Exception{ |
| | | |
| | | |
| | | } |
| | | |
| | | @Test |
| | | public void testSettle(){ |
| | | keyOrderService.statisticChannelOrders(5L,new Date(TimeUtil.convertToTimeTemp("20240809","yyyyMMdd")),new Date(TimeUtil.convertToTimeTemp("20240810","yyyyMMdd"))); |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void testOrderCount(){ |
| | | long wxUid = 15834L; |
| | | long notProcessCount = keyOrderService.countUserNotDoOrder(wxUid, new Date(System.currentTimeMillis() - 1000*60*300)); |
| | | System.out.println(notProcessCount); |
| | | } |
| | | |
| | | @Resource |
| | | private PayCountVerifyManager payCountVerifyManager; |
| | | |
| | | @Test |
| | | public void test4(){ |
| | | Long uid = 2L; |
| | | Map<Integer,Long> map = payCountVerifyManager.computeUserLeftPayCount(uid); |
| | | System.out.println(new Gson().toJson(map)); |
| | | } |
| | | |
| | | |
| | | } |