| | |
| | | |
| | | @RequestMapping(value = "countOrderInfo") |
| | | public void countOrderInfo(String callback, Long uid, PrintWriter out) { |
| | | JSONObject data = new JSONObject(); |
| | | |
| | | /* --------- 本月累计 ------------*/ |
| | | JSONObject month = new JSONObject(); |
| | | // 自购已到账 |
| | | long selfNumEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, null, 1); |
| | | month.put("selfNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 1, 1)); |
| | | // 分享已到账 |
| | | long shareNumEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, null, 2); |
| | | month.put("shareNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 2, 1)); |
| | | // 邀请已到账 |
| | | month.put("inviteNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 3, 1)); |
| | | // 自购未到账 |
| | | long selfNum = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, null, 1); |
| | | month.put("selfNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 1, 1)); |
| | | // 分享未到账 |
| | | long shareNum = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, null, 2); |
| | | month.put("shareNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 2, 1)); |
| | | // 邀请未到账 |
| | | month.put("inviteNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 3, 1)); |
| | | data.put("month", month); |
| | | |
| | | |
| | | /* --------- 历史累计 ------------*/ |
| | | JSONObject history = new JSONObject(); |
| | | // 自购已到账 |
| | | history.put("selfNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 1, null)); |
| | | // 分享已到账 |
| | | history.put("shareNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 2, null)); |
| | | // 邀请已到账 |
| | | history.put("inviteNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 3, null)); |
| | | // 自购未到账 |
| | | history.put("selfNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 1, null)); |
| | | // 分享未到账 |
| | | history.put("shareNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 2, null)); |
| | | // 邀请未到账 |
| | | history.put("inviteNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 3, null)); |
| | | data.put("history", history); |
| | | |
| | | |
| | | /* --------- 付款金额大于1 ------------*/ |
| | | // 自购已到账 |
| | | long selfAccountEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 1); |
| | | // 分享已到账 |
| | | long shareAccountEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 2); |
| | | // 自购未到账 |
| | | long selfAccount = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 1); |
| | | long selfAccount = hongBaoV2CountService.countOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 1, null); |
| | | // 分享未到账 |
| | | long shareAccount = hongBaoV2CountService.countMyDirectOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 2); |
| | | |
| | | JSONObject data = new JSONObject(); |
| | | data.put("selfNumEnd", selfNumEnd); |
| | | data.put("shareNumEnd", shareNumEnd); |
| | | data.put("selfNum", selfNum); |
| | | data.put("shareNum", shareNum); |
| | | long shareAccount = hongBaoV2CountService.countOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 2, null); |
| | | data.put("selfAccountEnd", selfAccountEnd); |
| | | data.put("shareAccountEnd", shareAccountEnd); |
| | | data.put("selfAccount", selfAccount); |
| | |
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
|
| | | import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserActiveLog;
|
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserRank;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.TearcherInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
|
| | | import com.yeshi.fanli.entity.common.AdminUser;
|
| | | import com.yeshi.fanli.entity.integral.IntegralDetail;
|
| | |
| | | import com.yeshi.fanli.exception.user.ForbiddenUserIdentifyCodeException;
|
| | | import com.yeshi.fanli.exception.user.vip.UserVIPInfoException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.count.UserInfoCountService;
|
| | | import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
|
| | | import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
|
| | |
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserRankService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
|
| | | import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.vip.TearcherService;
|
| | | import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | |
| | |
|
| | | @Resource
|
| | | private HongBaoV2Service hongBaoV2Service;
|
| | | |
| | | @Resource
|
| | | private TearcherService tearcherService;
|
| | | |
| | | @Resource
|
| | | private ThreeSaleDetailService threeSaleDetailService;
|
| | | |
| | | @Resource
|
| | | private HongBaoV2CountService hongBaoV2CountService;
|
| | |
|
| | |
|
| | | /**
|
| | |
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 用户粉丝统计
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param pageSize
|
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countTeamFans")
|
| | | public void countTeamFans(String callback, Long uid, PrintWriter out) {
|
| | | JSONObject data = new JSONObject();
|
| | | |
| | | // 导师
|
| | | String tearcherName = "";
|
| | | TearcherInfo tearcherInfo = tearcherService.selectByUid(uid);
|
| | | if (tearcherInfo != null) {
|
| | | tearcherName = tearcherInfo.getNickName();
|
| | | }
|
| | | data.put("tearcherName", tearcherName); |
| | | |
| | | // 邀请人
|
| | | String bossName = "";
|
| | | UserInfo boss = threeSaleSerivce.getBoss(uid);
|
| | | if (boss != null) {
|
| | | bossName = boss.getNickName();
|
| | | }
|
| | | data.put("bossName", bossName); |
| | | |
| | | // 邀请粉丝
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | | UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid);
|
| | | if (userInviteValidNum != null) {
|
| | | doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
|
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | | data.put("doneFirst", doneFirst); |
| | | data.put("doneSecond", doneSecond); |
| | | |
| | | // 九代粉丝数量
|
| | | data.put("nineFans", threeSaleDetailService.countByBossUidAndMaxLevel(uid, 9)); |
| | | |
| | | // 有效粉丝
|
| | | data.put("first", threeSaleSerivce.countFirstTeam(uid)); |
| | | data.put("second", threeSaleSerivce.countSecondTeam(uid)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | |
| | | |
| | | /**
|
| | | * 用户详细信息
|
| | | * @param callback
|
| | | * @param uid
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getInfoDetail")
|
| | | public void getInfoDetail(String callback, Long uid, PrintWriter out) {
|
| | | JSONObject data = new JSONObject();
|
| | | UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
|
| | | data.put("phone", user.getPhone()); |
| | | data.put("state", user.getState()); |
| | | data.put("createtime", user.getCreatetime()); |
| | | |
| | | |
| | | String mark = "";
|
| | | String activation = "未激活";
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | if (userInfoExtra != null) {
|
| | | if (!StringUtil.isNullOrEmpty(userInfoExtra.getMark())) {
|
| | | mark = userInfoExtra.getMark();
|
| | | }
|
| | | |
| | | String inviteCode = userInfoExtra.getInviteCode();
|
| | | if (!StringUtil.isNullOrEmpty(inviteCode)) {
|
| | | activation = "已激活";
|
| | | } else {
|
| | | activation = "未激活";
|
| | | }
|
| | | }
|
| | | data.put("mark", mark); |
| | | data.put("activation", activation); |
| | | |
| | | // 最近一次下单时间
|
| | | String orderTime = "";
|
| | | Date lastOrderTime = hongBaoV2CountService.getLastHongBaoTime(uid);
|
| | | if (lastOrderTime != null) {
|
| | | orderTime = TimeUtil.formatDate(lastOrderTime);
|
| | | }
|
| | | data.put("orderTime", orderTime); |
| | | |
| | | |
| | | // 最近登录时间
|
| | | String activeTime = "";
|
| | | UserActiveLog userActiveLog = userActiveLogService.getUserLatestActiveInfo(uid);
|
| | | if (userActiveLog != null) {
|
| | | activeTime = TimeUtil.formatDate(userActiveLog.getCreateTime());
|
| | | }
|
| | | data.put("activeTime", activeTime); |
| | | // |
| | | // // 显示用户微信 淘宝 老版本存在
|
| | | // String wxUnionId = userInfoVO.getWxUnionId();
|
| | | // if (wxUnionId == null || wxUnionId.trim().length() == 0) {
|
| | | // userInfoVO.setWxName(null);
|
| | | // }
|
| | | //
|
| | | // // 是否绑定支付宝(购买 + 分享权限)
|
| | | // String taoBaoUid = userInfoVO.getTaoBaoUid();
|
| | | // String tbSpecialId = userInfoVO.getTbSpecialId();
|
| | | // String tbRelationId = userInfoVO.getTbRelationId();
|
| | | // if (StringUtil.isNullOrEmpty(taoBaoUid) || StringUtil.isNullOrEmpty(tbSpecialId)
|
| | | // || StringUtil.isNullOrEmpty(tbRelationId)) {
|
| | | // userInfoVO.setTbName(null);
|
| | | // userInfoVO.setTaoBaoUid(null);
|
| | | // }
|
| | | //
|
| | | // Long uid = userInfoVO.getId();
|
| | | // /* 绑定收款账号信息 */
|
| | | // List<BindingAccount> account = bindingAccountMapper.selectByUid(uid);
|
| | | // if (account != null && account.size() > 0) {
|
| | | // BindingAccount bindingAccount = account.get(0);
|
| | | // Integer type = bindingAccount.getType();
|
| | | // if (type != null && type == 1) {
|
| | | // // 支付宝
|
| | | // userInfoVO.setAccountAlipay(bindingAccount.getAccount());
|
| | | // userInfoVO.setAccountName(bindingAccount.getName());
|
| | | // userInfoVO.setAccountBindId(bindingAccount.getId());
|
| | | //
|
| | | // } else if (type != null && type == 2) {
|
| | | // // 微信
|
| | | // userInfoVO.setAccountWX(bindingAccount.getAccount());
|
| | | // userInfoVO.setAccountNameWX(bindingAccount.getName());
|
| | | // userInfoVO.setAccountBindIdWX(bindingAccount.getId());
|
| | | // }
|
| | | // }
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 统计今日用户总情况
|
| | |
| | |
|
| | |
|
| | |
|
| | | /**
|
| | | * 用户粉丝统计
|
| | | * |
| | | * @param callback
|
| | | * @param pageIndex
|
| | | * @param pageSize
|
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "countTeamFans")
|
| | | public void countTeamFans(String callback, Long uid, PrintWriter out) {
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | | UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid);
|
| | | if (userInviteValidNum != null) {
|
| | | doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
|
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("doneFirst", doneFirst); |
| | | data.put("doneSecond", doneSecond); |
| | | data.put("first", threeSaleSerivce.countFirstTeam(uid)); |
| | | data.put("second", threeSaleSerivce.countSecondTeam(uid)); |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | |
|
| | |
|
| | | }
|
| | |
| | | package com.yeshi.fanli.controller.admin.user.cloud;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
| | | import com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloud;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGoods;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGroup;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendContent;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendRecord;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | |
| | | }
|
| | |
|
| | |
|
| | | |
| | | /**
|
| | | * 发圈记录统计
|
| | | * @param callback
|
| | | * @param uid
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "statisticsCloud")
|
| | | public void statisticsCloud(String callback, Long uid, PrintWriter out) {
|
| | | try {
|
| | | long orderNum = userCloudOrderService.countOrderRecord(uid, 1);
|
| | | long recordNum = userCloudSendRecordService.countRecordNum(uid, null);
|
| | | long goodsNum = userCloudGoodsService.countByUid(uid);
|
| | | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("orderNum", orderNum);
|
| | | data.put("recordNum", recordNum);
|
| | | data.put("goodsNum", goodsNum);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | }
|
| | |
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudGoodsService;
|
| | |
| | | import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
|
| | | import com.yeshi.fanli.util.suning.SuningUtil;
|
| | | import com.yeshi.fanli.vo.goods.GoodsDetailVO;
|
| | | import com.yeshi.fanli.vo.homemodule.BannerVO;
|
| | | import com.yeshi.fanli.vo.user.cloud.CloudOrderMenuVO;
|
| | | import com.yeshi.fanli.vo.user.cloud.UserCloudInfoVO;
|
| | |
|
| | |
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | |
|
| | | @Resource
|
| | | private SwiperPictureService swiperPictureService;
|
| | |
|
| | | /**
|
| | | * 查询开通记录
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | // 教程
|
| | | List<BannerVO> listBanner = swiperPictureService.getByBannerCard("cloud_course");
|
| | | if (listBanner != null && listBanner.size() > 0) {
|
| | | cloudInfoVO.setCourse(listBanner.get(0));
|
| | | }
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(cloudInfoVO));
|
| | | }
|
| | |
|
| | |
| | | @Param("type")Integer type);
|
| | |
|
| | | /**
|
| | | * 注:1笔且付款总金额不小于 payment 元(退款为失效
|
| | | * 统计已到账订单数量
|
| | | * @param uid
|
| | | * @param payment
|
| | | * @param payment -付款金额
|
| | | * @param type -类型: 1自购 2分享 3邀请 4自购+分享 |
| | | * @param dateType 1本月
|
| | | * @return
|
| | | */
|
| | | Long countMyDirectOrderByCashNotArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
|
| | | @Param("type")Integer type);
|
| | | Long countOrderByCashArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
|
| | | @Param("type")Integer type, @Param("dateType")Integer dateType);
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计未到账订单数量
|
| | | * @param uid
|
| | | * @param payment -付款金额
|
| | | * @param type -类型: 1自购 2分享 3邀请 4自购+分享 |
| | | * @param dateType 1本月
|
| | | * @return
|
| | | */
|
| | | Long countOrderByCashNotArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
|
| | | @Param("type")Integer type, @Param("dateType")Integer dateType);
|
| | | |
| | | /**
|
| | | * 查询用户个类型预计奖金
|
| | | * @param uid
|
| | | * @param dateType 日期类型
|
| | |
| | | }
|
| | | return count(query);
|
| | | }
|
| | | |
| | | |
| | | public long countRecordNum(Long uid, Integer sendOrigin){
|
| | | List<Criteria> list = new ArrayList<Criteria>();
|
| | | if (uid != null)
|
| | | list.add(Criteria.where("uid").is(uid));
|
| | | if (sendOrigin != null)
|
| | | list.add(Criteria.where("sendOrigin").is(sendOrigin));
|
| | | |
| | | Query query = new Query();
|
| | | if (list.size() > 0) {
|
| | | Criteria[] cas = new Criteria[list.size()];
|
| | | for (int i = 0; i < list.size(); i++)
|
| | | cas[i] = list.get(i);
|
| | | query.addCriteria(new Criteria().andOperator(cas));
|
| | | }
|
| | | return count(query);
|
| | | }
|
| | | }
|
| | |
| | | return count(query);
|
| | | }
|
| | |
|
| | | |
| | | public long countByBossUidAndMaxLevel(Long bossUid, int minLevel) {
|
| | | Query query = new Query();
|
| | | query.addCriteria(new Criteria().andOperator(Criteria.where("bossUid").is(bossUid),
|
| | | Criteria.where("level").lte(minLevel)));
|
| | | return count(query);
|
| | | }
|
| | | |
| | | public List<ThreeSaleDetail> listByWorkerUid(Long uid) {
|
| | | Query query = new Query();
|
| | | query.addCriteria(Criteria.where("workerUid").is(uid));
|
New file |
| | |
| | | package com.yeshi.fanli.dto;
|
| | |
|
| | | public class AlipayTradeWapPayDTO {
|
| | | // 收款方账号
|
| | | private String sellerId;
|
| | | // 订单号
|
| | | private String outTradeNo;
|
| | | // 订单金额:0.01元,精准到分
|
| | | private String totalAmount;
|
| | | // 订单标题
|
| | | private String subject;
|
| | | // 销售产品码,商家和支付宝签约的产品码
|
| | | private String productCode;
|
| | | // 该笔订单允许的最晚付款时间,逾期将关闭交易
|
| | | private String timeoutExpress;
|
| | | // 支付成功后返回哪个前端页面
|
| | | private String returnUrl;
|
| | | // 支付成功后回调地址
|
| | | private String notifyUrl;
|
| | |
|
| | | public String getSellerId() {
|
| | | return sellerId;
|
| | | }
|
| | |
|
| | | public void setSellerId(String sellerId) {
|
| | | this.sellerId = sellerId;
|
| | | }
|
| | |
|
| | | public String getOutTradeNo() {
|
| | | return outTradeNo;
|
| | | }
|
| | |
|
| | | public void setOutTradeNo(String outTradeNo) {
|
| | | this.outTradeNo = outTradeNo;
|
| | | }
|
| | |
|
| | | public String getTotalAmount() {
|
| | | return totalAmount;
|
| | | }
|
| | |
|
| | | public void setTotalAmount(String totalAmount) {
|
| | | this.totalAmount = totalAmount;
|
| | | }
|
| | |
|
| | | public String getSubject() {
|
| | | return subject;
|
| | | }
|
| | |
|
| | | public void setSubject(String subject) {
|
| | | this.subject = subject;
|
| | | }
|
| | |
|
| | | public String getProductCode() {
|
| | | return productCode;
|
| | | }
|
| | |
|
| | | public void setProductCode(String productCode) {
|
| | | this.productCode = productCode;
|
| | | }
|
| | |
|
| | | public String getTimeoutExpress() {
|
| | | return timeoutExpress;
|
| | | }
|
| | |
|
| | | public void setTimeoutExpress(String timeoutExpress) {
|
| | | this.timeoutExpress = timeoutExpress;
|
| | | }
|
| | |
|
| | | public String getReturnUrl() {
|
| | | return returnUrl;
|
| | | }
|
| | |
|
| | | public void setReturnUrl(String returnUrl) {
|
| | | this.returnUrl = returnUrl;
|
| | | }
|
| | |
|
| | | public String getNotifyUrl() {
|
| | | return notifyUrl;
|
| | | }
|
| | |
|
| | | public void setNotifyUrl(String notifyUrl) {
|
| | | this.notifyUrl = notifyUrl;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | public class RobotInfoDTO {
|
| | | @SerializedName("id")
|
| | | private Integer id;
|
| | | |
| | |
|
| | | @SerializedName("robot_type")
|
| | | private Integer robotType;
|
| | |
|
| | | @SerializedName("uid")
|
| | | private String uid;
|
| | | |
| | |
|
| | | @SerializedName("wechatrobot")
|
| | | private String wechatrobot;
|
| | | |
| | | @SerializedName("amount")
|
| | | private String amount;
|
| | | |
| | |
|
| | | @SerializedName("wx_id")
|
| | | private String wxId;
|
| | |
|
| | | @SerializedName("amount_used")
|
| | | private String amountUsed;
|
| | | |
| | |
|
| | | @SerializedName("group_num")
|
| | | private Integer groupNum; //最大群数
|
| | | |
| | | private Integer groupNum; // 最大群数
|
| | |
|
| | | @SerializedName("passwd")
|
| | | private String passwd;
|
| | | |
| | |
|
| | | @SerializedName("nickname")
|
| | | private String nickname;
|
| | | |
| | |
|
| | | @SerializedName("c_uid")
|
| | | private String cUid;
|
| | | |
| | |
|
| | | @SerializedName("login_status")
|
| | | private String loginStatus;
|
| | | |
| | |
|
| | | @SerializedName("end_time")
|
| | | private String endTime; //到期时间 1590139325
|
| | | |
| | | @SerializedName("wId")
|
| | | private String endTime; // 到期时间 1590139325
|
| | |
|
| | | @SerializedName("remark")
|
| | | private String remark;
|
| | | |
| | | @SerializedName("wId")
|
| | | private String wcId; //微信实例id
|
| | | |
| | |
|
| | | @SerializedName("wc_id")
|
| | | private String wcId; // 微信实例id
|
| | |
|
| | | @SerializedName("agent_uid")
|
| | | private String agentUid; //代理id
|
| | | |
| | | private String agentUid; // 代理id
|
| | |
|
| | | @SerializedName("is_enabled")
|
| | | private String isEnabled; //0 正常 1暂停
|
| | | private String isEnabled; // 0 正常 1暂停
|
| | |
|
| | | @SerializedName("is_new")
|
| | | private String isNew; // 0 正常 1暂停
|
| | |
|
| | | public String getUid() {
|
| | | return uid;
|
| | |
| | | this.id = id;
|
| | | }
|
| | |
|
| | | public String getAmount() {
|
| | | return amount;
|
| | | public Integer getRobotType() {
|
| | | return robotType;
|
| | | }
|
| | |
|
| | | public void setAmount(String amount) {
|
| | | this.amount = amount;
|
| | | public void setRobotType(Integer robotType) {
|
| | | this.robotType = robotType;
|
| | | }
|
| | |
|
| | | |
| | | public String getWxId() {
|
| | | return wxId;
|
| | | }
|
| | |
|
| | | public void setWxId(String wxId) {
|
| | | this.wxId = wxId;
|
| | | }
|
| | |
|
| | | public String getIsNew() {
|
| | | return isNew;
|
| | | }
|
| | |
|
| | | public void setIsNew(String isNew) {
|
| | | this.isNew = isNew;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | public enum CloudOrderMenuEnum {
|
| | | robotMonth(20.00, 1, 1, "机器人月套餐", "一个月"),
|
| | | robotMonth1(20.00, 1, 1, "机器人月套餐", "三个月"),
|
| | | robotMonth2(20.00, 1, 1, "机器人月套餐", "半年"),
|
| | | robotMonth3(20.00, 1, 1, "机器人月套餐", "一年");
|
| | | robotMonth(0.01, 4, 1, "机器人月套餐", "一个月");
|
| | |
|
| | | private double money;
|
| | | private Integer type;
|
| | | private Integer robotType;
|
| | | private Integer month;
|
| | | private String desc;
|
| | | private String descShow;
|
| | |
|
| | | private CloudOrderMenuEnum(double money, Integer type, Integer month, String desc, String descShow) {
|
| | | private CloudOrderMenuEnum(double money, Integer robotType, Integer month, String desc, String descShow) {
|
| | | this.money = money;
|
| | | this.type = type;
|
| | | this.robotType = robotType;
|
| | | this.month = month;
|
| | | this.desc = desc;
|
| | | this.descShow = descShow;
|
| | |
| | | return money;
|
| | | }
|
| | |
|
| | | public Integer getType() {
|
| | | return type;
|
| | | public Integer getRobotType() {
|
| | | return robotType;
|
| | | }
|
| | |
|
| | | public Integer getMonth() {
|
New file |
| | |
| | | package com.yeshi.fanli.entity.config;
|
| | |
|
| | | import org.yeshi.utils.annotation.Map;
|
| | |
|
| | | public class AlipayWapConfig {
|
| | | @Map("appId")
|
| | | private String appId;
|
| | | @Map("sellerId")
|
| | | private String sellerId;
|
| | | @Map("private_key")
|
| | | private String privateKey;
|
| | | @Map("public_key")
|
| | | private String publicKey;
|
| | |
|
| | | |
| | | @Map("app_cert_path")
|
| | | private String appCertPath;
|
| | | @Map("alipay_root_cert_path")
|
| | | private String alipayRootCertPath ;
|
| | | @Map("alipay_cert_path")
|
| | | private String alipayCertPath ;
|
| | | |
| | |
|
| | | public String getAppCertPath() {
|
| | | return appCertPath;
|
| | | }
|
| | |
|
| | | public void setAppCertPath(String appCertPath) {
|
| | | this.appCertPath = appCertPath;
|
| | | }
|
| | |
|
| | | public String getAlipayRootCertPath() {
|
| | | return alipayRootCertPath;
|
| | | }
|
| | |
|
| | | public void setAlipayRootCertPath(String alipayRootCertPath) {
|
| | | this.alipayRootCertPath = alipayRootCertPath;
|
| | | }
|
| | |
|
| | | public String getAlipayCertPath() {
|
| | | return alipayCertPath;
|
| | | }
|
| | |
|
| | | public void setAlipayCertPath(String alipayCertPath) {
|
| | | this.alipayCertPath = alipayCertPath;
|
| | | }
|
| | |
|
| | | public String getAppId() {
|
| | | return appId;
|
| | | }
|
| | |
|
| | | public void setAppId(String appId) {
|
| | | this.appId = appId;
|
| | | }
|
| | |
|
| | | public String getPrivateKey() {
|
| | | return privateKey;
|
| | | }
|
| | |
|
| | | public void setPrivateKey(String privateKey) {
|
| | | this.privateKey = privateKey;
|
| | | }
|
| | |
|
| | | public String getSellerId() {
|
| | | return sellerId;
|
| | | }
|
| | |
|
| | | public void setSellerId(String sellerId) {
|
| | | this.sellerId = sellerId;
|
| | | }
|
| | |
|
| | | public String getPublicKey() {
|
| | | return publicKey;
|
| | | }
|
| | |
|
| | | public void setPublicKey(String publicKey) {
|
| | | this.publicKey = publicKey;
|
| | | }
|
| | | |
| | | }
|
| | |
| | |
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
|
| | | import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
|
| | |
| | | try {
|
| | | userCloudAlipayManager.tradeQueryByOrderId(cloudOrder.getId());
|
| | | } catch (Exception e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
| | | </select>
|
| | |
|
| | |
|
| | | <select id="countMyDirectOrderByCashNotArrival" resultType="Long">
|
| | | <select id="countOrderByCashArrival" resultType="Long">
|
| | | SELECT COUNT(0) FROM (SELECT co.`co_order_no` FROM yeshi_ec_hongbao_v2 v2
|
| | | LEFT JOIN yeshi_ec_hongbao_order h ON v2.`hb_id` = h.`ho_hongbao_id`
|
| | | LEFT JOIN yeshi_ec_hongbao_order h ON h.`ho_hongbao_id` = IF(v2.hb_pid IS NULL,v2.hb_id,v2.hb_pid)
|
| | | LEFT JOIN yeshi_ec_common_order co ON h.`ho_order_id` = co.`co_id`
|
| | | WHERE v2.`hb_uid` = #{uid} AND v2.`hb_state` = 3
|
| | | <if test="type == 1"> <!-- 自购订单 -->
|
| | | AND v2.`hb_type` = 1
|
| | | </if>
|
| | | <if test="type == 2"> <!-- 分享订单 -->
|
| | | AND v2.`hb_type` = 20
|
| | | </if>
|
| | | <if test="type == 3"> <!-- 邀请订单 -->
|
| | | AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7 OR v2.`hb_type` = 21 OR v2.`hb_type` = 22)
|
| | | </if>
|
| | | <if test="type == 4"> <!-- 直接相关订单 -->
|
| | | AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)
|
| | | </if>
|
| | | <if test="payment != null"> <!-- 付款金额限制 -->
|
| | | AND co.`co_payment` >= #{payment}
|
| | | </if>
|
| | | <if test="dateType == 1"> <!-- 本月订单 -->
|
| | | AND DATE_FORMAT(co.`co_third_create_time`,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
|
| | | </if>
|
| | | GROUP BY co.`co_order_no`,co.`co_source_type`)A
|
| | | </select>
|
| | | |
| | | |
| | | <select id="countOrderByCashNotArrival" resultType="Long">
|
| | | SELECT COUNT(0) FROM (SELECT co.`co_order_no` FROM yeshi_ec_hongbao_v2 v2
|
| | | LEFT JOIN yeshi_ec_hongbao_order h ON h.`ho_hongbao_id` = IF(v2.hb_pid IS NULL,v2.hb_id,v2.hb_pid)
|
| | | LEFT JOIN yeshi_ec_common_order co ON h.`ho_order_id` = co.`co_id`
|
| | | WHERE v2.`hb_uid` = #{uid} AND (v2.`hb_state` = 1 or v2.`hb_state` = 2)
|
| | | <if test="type == 1">AND v2.`hb_type` = 1</if>
|
| | | <if test="type == 2">AND v2.`hb_type` = 20</if>
|
| | | <if test="type == null">AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)</if>
|
| | | <if test="payment != null">AND co.`co_payment` >= #{payment}</if>
|
| | | <if test="type == 1"> <!-- 自购订单 -->
|
| | | AND v2.`hb_type` = 1
|
| | | </if>
|
| | | <if test="type == 2"> <!-- 分享订单 -->
|
| | | AND v2.`hb_type` = 20
|
| | | </if>
|
| | | <if test="type == 3"> <!-- 邀请订单 -->
|
| | | AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7 OR v2.`hb_type` = 21 OR v2.`hb_type` = 22)
|
| | | </if>
|
| | | <if test="type == 4"> <!-- 直接相关订单 -->
|
| | | AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20)
|
| | | </if>
|
| | | <if test="payment != null"> <!-- 付款金额限制 -->
|
| | | AND co.`co_payment` >= #{payment}
|
| | | </if>
|
| | | <if test="dateType == 1"> <!-- 本月订单 -->
|
| | | AND DATE_FORMAT(co.`co_third_create_time`,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
|
| | | </if>
|
| | | GROUP BY co.`co_order_no`,co.`co_source_type`)A
|
| | | </select>
|
| | |
|
| | |
| | | return count;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countMyDirectOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type) {
|
| | | Long count = hongBaoV2CountMapper.countMyDirectOrderByCashNotArrival(uid, payment, type);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | return count;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public BigDecimal getRewardMoneyToCount(Long uid, Integer dateType, Integer hbType, List<Integer> listSource) {
|
| | |
| | | return money;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countOrderByCashArrival(Long uid, BigDecimal payment, Integer type, Integer dateType) {
|
| | | Long count = hongBaoV2CountMapper.countOrderByCashArrival(uid, payment, type, dateType);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | return count;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type, Integer dateType) {
|
| | | Long count = hongBaoV2CountMapper.countOrderByCashNotArrival(uid, payment, type, dateType);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | return count;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | } else {
|
| | | userInfoVO.setBossName("上级:" + boss.getNickName());
|
| | | }
|
| | | |
| | | // 微信号
|
| | | String wxId = userInfoVO.getWxId();
|
| | | if (StringUtil.isNullOrEmpty(wxId)) {
|
| | | userInfoVO.setWxId("");
|
| | | } else {
|
| | | userInfoVO.setWxId("微信号:" + wxId);
|
| | | }
|
| | | }
|
| | |
|
| | | return userList;
|
| | |
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.context.annotation.Lazy;
|
| | | import org.springframework.scheduling.annotation.Async;
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.user.cloud.UserCloudManageMapper;
|
| | |
| | | @Resource
|
| | | private UserCloudGoodsService userCloudGoodsService;
|
| | |
|
| | | |
| | | @Async
|
| | | @Override
|
| | | public void save(Long uid, Boolean official, Boolean custom) {
|
| | | if (uid == null)
|
| | |
| | | UserCloudOrder updateOrder = new UserCloudOrder();
|
| | | updateOrder.setState(true);
|
| | | updateOrder.setId(cloudOrder.getId());
|
| | | updateOrder.setDesc("成功开通 1个月");
|
| | | updateOrder.setUpdateTime(new Date());
|
| | | userCloudOrderMapper.updateByPrimaryKeySelective(updateOrder);
|
| | |
|
| | |
| | | public long count (String key, Integer sendOrigin){
|
| | | return userCloudSendRecordDao.count(key, sendOrigin);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public long countRecordNum(Long uid, Integer sendOrigin){
|
| | | return userCloudSendRecordDao.countRecordNum(uid, sendOrigin);
|
| | | }
|
| | | }
|
| | |
| | | import com.aliyun.openservices.ons.api.Message;
|
| | | import com.aliyun.openservices.ons.api.Producer;
|
| | | import com.yeshi.fanli.dao.mybatis.user.cloud.UserCloudMapper;
|
| | | import com.yeshi.fanli.dto.aitaoker.RobotInfoDTO;
|
| | | import com.yeshi.fanli.dto.aitaoker.WeiXinGroupDTO;
|
| | | import com.yeshi.fanli.dto.jd.JDCouponInfo;
|
| | | import com.yeshi.fanli.dto.jd.JDPingouInfo;
|
| | |
| | | if (userCloud.getEndTime().getTime() > java.lang.System.currentTimeMillis())
|
| | | renew = true;
|
| | | // 验证套餐是否相同
|
| | | if (renew && userCloud.getRobotType() != menuEnum.getType()) {
|
| | | if (renew && userCloud.getRobotType() != menuEnum.getRobotType()) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]已有其他云发单套餐还未结束");
|
| | | throw new UserCloudException(1, "已有其他云发单套餐还未结束");
|
| | | }
|
| | | }
|
| | |
|
| | | // RobotInfoDTO dto = null;
|
| | | // if (renew) { // 续费
|
| | | // dto = AitaokerApiUtil.robotRenewals(userCloud.getRobotId(), menuEnum.getMonth());
|
| | | // } else { // 创建机器人
|
| | | // dto = AitaokerApiUtil.robotCreate(menuEnum.getMonth(), menuEnum.getType(), "wechatrobot", null);
|
| | | // }
|
| | | //
|
| | | // if (dto == null) {
|
| | | // LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 返回空值");
|
| | | // throw new UserCloudException(1, "机器人获取失败");
|
| | | // }
|
| | | //
|
| | | // String endTimeStr = dto.getEndTime();
|
| | | // if (StringUtil.isNullOrEmpty(endTimeStr)) {
|
| | | // LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 返回时间为空");
|
| | | // throw new UserCloudException(1, "机器人返回时间为空");
|
| | | // }
|
| | | //
|
| | | // long endTime = 0;
|
| | | // try {
|
| | | // endTime = Long.parseLong(endTimeStr);
|
| | | // } catch (Exception e) {
|
| | | // LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 返回时间格式不正确");
|
| | | // throw new UserCloudException(1, "机器人返回时间格式不正确");
|
| | | // }
|
| | | //
|
| | | // Integer robotId = dto.getId();
|
| | | // if (robotId == null) {
|
| | | // LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 机器人ID返回为空");
|
| | | // throw new UserCloudException(1, "机器人ID返回为空");
|
| | | // }
|
| | | //
|
| | | // Integer groupNum = dto.getGroupNum();
|
| | | // if (groupNum == null) {
|
| | | // LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: groupNum返回为空");
|
| | | // throw new UserCloudException(1, "groupNum返回为空");
|
| | | // }
|
| | | RobotInfoDTO dto = null;
|
| | | if (renew) { // 续费
|
| | | dto = AitaokerApiUtil.robotRenewals(userCloud.getRobotId(), menuEnum.getMonth());
|
| | | } else { // 创建机器人
|
| | | dto = AitaokerApiUtil.robotCreate(menuEnum.getMonth(), menuEnum.getRobotType(), "wechatrobot", null);
|
| | | }
|
| | |
|
| | | if (dto == null) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 机器人创建失败");
|
| | | throw new UserCloudException(1, "机器人创建失败");
|
| | | }
|
| | |
|
| | | Integer robotId = dto.getId();
|
| | | if (robotId == null) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 机器人ID返回为空");
|
| | | }
|
| | | |
| | | String endTimeStr = dto.getEndTime();
|
| | | if (StringUtil.isNullOrEmpty(endTimeStr)) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 返回时间为空");
|
| | | }
|
| | |
|
| | | long endTime = 0;
|
| | | try {
|
| | | endTime = Long.parseLong(endTimeStr);
|
| | | } catch (Exception e) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: 返回时间格式不正确");
|
| | | }
|
| | |
|
| | | Integer groupNum = dto.getGroupNum();
|
| | | if (groupNum == null) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "][订单ID=" + orderId + "]机器人失败: groupNum返回为空");
|
| | | }
|
| | |
|
| | | UserCloud newCloud = new UserCloud();
|
| | | newCloud.setUid(uid);
|
| | | newCloud.setOrderId(orderId);
|
| | | // newCloud.setGroupNum(groupNum);
|
| | | // newCloud.setRobotId(robotId);
|
| | | newCloud.setRobotType(menuEnum.getType());
|
| | | // if (renew) {
|
| | | // newCloud.setStartTime(userCloud.getStartTime());
|
| | | // } else {
|
| | | // newCloud.setStartTime(new Date());
|
| | | // }
|
| | | // newCloud.setEndTime(new Date(endTime * 1000)); // Unix 转换 普通时间
|
| | | newCloud.setGroupNum(groupNum);
|
| | | newCloud.setRobotId(robotId);
|
| | | newCloud.setRobotType(menuEnum.getRobotType());
|
| | | if (renew) {
|
| | | newCloud.setWxId(userCloud.getWxId());
|
| | | newCloud.setWxName(userCloud.getWxName());
|
| | | newCloud.setWxPortrait(userCloud.getPortrait());
|
| | | newCloud.setStartTime(userCloud.getStartTime());
|
| | | } else {
|
| | | newCloud.setStartTime(new Date());
|
| | | }
|
| | | newCloud.setEndTime(new Date(endTime * 1000)); // Unix 转换 普通时间
|
| | | newCloud.setCreateTime(new Date());
|
| | | userCloudMapper.insertSelective(newCloud);
|
| | |
|
| | |
| | | public long countByBossUidAndMinLevel(Long bossUid, int minLevel) {
|
| | | return threeSaleDetailDao.countByBossUidAndMinLevel(bossUid, minLevel);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public long countByBossUidAndMaxLevel(Long bossUid, int minLevel) {
|
| | | return threeSaleDetailDao.countByBossUidAndMaxLevel(bossUid, minLevel);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public void addByWorkerUid(Long workerUid) {
|
| | |
| | | */
|
| | | public BigDecimal sumMoneyByANotSettleAndUid(Long uid);
|
| | |
|
| | | |
| | |
|
| | | /**
|
| | | * 统计未到账的数量
|
| | | * 统计已到账订单数量
|
| | | * @param uid
|
| | | * @param payment
|
| | | * @param type
|
| | | * @param payment -付款金额
|
| | | * @param type -类型: 1自购 2分享 3邀请 4自购+分享 |
| | | * @param dateType 1本月
|
| | | * @return
|
| | | */
|
| | | public long countMyDirectOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type); |
| | | public long countOrderByCashArrival(Long uid, BigDecimal payment, Integer type, Integer dateType);
|
| | | |
| | | /**
|
| | | * 统计未到账订单数量
|
| | | * @param uid
|
| | | * @param payment -付款金额
|
| | | * @param type -类型: 1自购 2分享 3邀请 4自购+分享 |
| | | * @param dateType 1本月
|
| | | * @return
|
| | | */
|
| | | public long countOrderByCashNotArrival(Long uid, BigDecimal payment, Integer type, Integer dateType); |
| | |
|
| | | }
|
| | |
| | | public List<UserCloudSendRecord> query(int page, int count, String key, Integer sendOrigin);
|
| | |
|
| | | public long count(String key, Integer sendOrigin);
|
| | |
|
| | | /**
|
| | | * 统计记录
|
| | | * @param uid
|
| | | * @param sendOrigin
|
| | | * @return
|
| | | */
|
| | | public long countRecordNum(Long uid, Integer sendOrigin);
|
| | |
|
| | | }
|
| | |
| | | */
|
| | | ThreeSaleDetail getByBossUidAndWorkerUid(Long bossUid, Long workerUid);
|
| | |
|
| | | |
| | | /**
|
| | | * 统计粉丝代数内
|
| | | * @param bossUid
|
| | | * @param minLevel
|
| | | * @return
|
| | | */
|
| | | public long countByBossUidAndMaxLevel(Long bossUid, int minLevel);
|
| | |
|
| | | }
|
| | |
| | | package com.yeshi.fanli.service.manger.alipay;
|
| | |
|
| | | import java.util.HashMap;
|
| | | import java.util.Map;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.stereotype.Component;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | | import com.alipay.api.response.AlipayTradeQueryResponse;
|
| | | import com.yeshi.fanli.dto.AlipayTradeWapPayDTO;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloud;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.exception.user.cloud.UserCloudException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.alipay.AlipayApi;
|
| | | import com.yeshi.fanli.util.alipay.AlipayWapConfig;
|
| | |
|
| | | /**
|
| | | * 云发单支付管理
|
| | |
| | | if (menuEnum == null)
|
| | | throw new UserCloudException(1, "套餐类型不匹配");
|
| | |
|
| | | UserCloud userCloud = userCloudService.getLastByUid(uid);
|
| | | if (userCloud != null) {
|
| | | // 续费
|
| | | boolean renew = false;
|
| | | if (userCloud.getEndTime().getTime() > java.lang.System.currentTimeMillis())
|
| | | renew = true;
|
| | | // 验证套餐是否相同
|
| | | if (renew && userCloud.getRobotType() != menuEnum.getRobotType()) {
|
| | | LogHelper.cloudInfo("方法openCloud: [uid=" + uid + "]已有其他云发单套餐还未结束");
|
| | | throw new UserCloudException(1, "已有其他云发单套餐还未结束");
|
| | | }
|
| | | }
|
| | | |
| | | // 订单信息
|
| | | UserCloudOrder cloudOrder = userCloudOrderService.addCloudOrder(uid, type);
|
| | | if (cloudOrder == null || cloudOrder.getId() == null)
|
| | | throw new UserCloudException(1, "创建订单信息失败");
|
| | |
|
| | | // 待请求参数数组
|
| | | Map<String, String> map = new HashMap<String, String>();
|
| | | map.put("seller_id", AlipayWapConfig.SELLER_ID);// 收款方账号
|
| | | // 订单号
|
| | | map.put("out_trade_no", TRADE_INDEX + cloudOrder.getId());
|
| | | // 订单金额:0.01元,精准到分
|
| | | map.put("total_amount", menuEnum.getMoney() + "");
|
| | | // 订单标题
|
| | | map.put("subject", "云发单充值");
|
| | | // 销售产品码,商家和支付宝签约的产品码
|
| | | map.put("product_code", type);
|
| | | // 该笔订单允许的最晚付款时间,逾期将关闭交易 30分钟
|
| | | map.put("timeout_express", "30m");
|
| | | AlipayTradeWapPayDTO payDTO = new AlipayTradeWapPayDTO();
|
| | | payDTO.setSubject("云发单充值");
|
| | | payDTO.setSellerId(Constant.alipayWapConfig.getSellerId());
|
| | | payDTO.setOutTradeNo(TRADE_INDEX + cloudOrder.getId());
|
| | | payDTO.setProductCode(type);
|
| | | payDTO.setTotalAmount(menuEnum.getMoney() + "");
|
| | | payDTO.setTimeoutExpress("30m");
|
| | | payDTO.setReturnUrl(configService.get(ConfigKeyEnum.cloudAlipayReturnLink.getKey()));
|
| | | payDTO.setNotifyUrl(configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?id=" +cloudOrder.getId());
|
| | |
|
| | | // 支付成功后返回哪个前端页面
|
| | | String returnUrl = configService.get(ConfigKeyEnum.cloudAlipayReturnLink.getKey());
|
| | | // 支付成功后回调地址
|
| | | String notifyUrl = configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?id=" +cloudOrder.getId();
|
| | | // 获取支付form
|
| | | return AlipayApi.tradeWapPayRequest(map, returnUrl, notifyUrl);
|
| | | return AlipayApi.tradeWapPayRequest(payDTO);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | * @throws Exception
|
| | | */
|
| | | public void tradeQueryByOrderId(Long orderId) throws Exception {
|
| | | boolean result = AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null);
|
| | | boolean result = false;
|
| | | AlipayTradeQueryResponse response = AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null);
|
| | | if(response != null && response.isSuccess()){
|
| | | // 相应成功
|
| | | if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { |
| | | result = true;
|
| | | } else if ("TRADE_FINISHED".equals(response.getTradeStatus())) {
|
| | | result = true; // (交易结束,不可退款)
|
| | | } |
| | | } |
| | | |
| | | // 支付成功
|
| | | if (result) {
|
| | | userCloudOrderService.cloudPayCloudSuccess(orderId);
|
| | |
| | |
|
| | | import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
|
| | | import com.yeshi.fanli.entity.config.AlipayConfig;
|
| | | import com.yeshi.fanli.entity.config.AlipayWapConfig;
|
| | | import com.yeshi.fanli.entity.config.ConstantConfig;
|
| | | import com.yeshi.fanli.entity.config.SMSConfig;
|
| | | import com.yeshi.fanli.entity.config.SystemCommonConfig;
|
| | |
| | | public static SystemCommonConfig systemCommonConfig;
|
| | |
|
| | | public static AlipayConfig alipayConfig;
|
| | | |
| | | public static AlipayWapConfig alipayWapConfig;
|
| | |
|
| | | public static ZNXConfig znxConfig;
|
| | |
|
| | |
| | | .getProperties(TaoBaoUtil.class.getClassLoader().getResourceAsStream("alipay.properties"));
|
| | | alipayConfig = (AlipayConfig) MapUtil.parseMap(AlipayConfig.class, ps);
|
| | | }
|
| | | |
| | | if (alipayWapConfig == null) {
|
| | | Properties ps = org.yeshi.utils.PropertiesUtil
|
| | | .getProperties(TaoBaoUtil.class.getClassLoader().getResourceAsStream("alipay_wap.properties"));
|
| | | alipayWapConfig = (AlipayWapConfig) MapUtil.parseMap(AlipayWapConfig.class, ps);
|
| | | }
|
| | | |
| | |
|
| | | if (znxConfig == null) {
|
| | | Properties ps = org.yeshi.utils.PropertiesUtil
|
| | |
| | |
|
| | | // 请求结果
|
| | | String result = baseRequest("itaoke.robot.create.get", map);
|
| | | |
| | | // String result = "{\r\n" + |
| | | // " \"status\":\"0000\",\r\n" + |
| | | // " \"msg\":\"亲,添加成功\",\r\n" + |
| | | // " \"data\":{\r\n" + |
| | | // " \"id\":11770,\r\n" + |
| | | // " \"uid\":1625,\r\n" + |
| | | // " \"wechatrobot\":\"wechatrobot\",\r\n" + |
| | | // " \"wx_id\":\"\",\r\n" + |
| | | // " \"amount_used\":0,\r\n" + |
| | | // " \"group_num\":20,\r\n" + |
| | | // " \"passwd\":\"\",\r\n" + |
| | | // " \"nickname\":\"\",\r\n" + |
| | | // " \"c_uid\":1625,\r\n" + |
| | | // " \"login_status\":0,\r\n" + |
| | | // " \"end_time\":1594785534,\r\n" + |
| | | // " \"remark\":null,\r\n" + |
| | | // " \"wc_id\":\"\",\r\n" + |
| | | // " \"agent_uid\":null,\r\n" + |
| | | // " \"is_enabled\":0,\r\n" + |
| | | // " \"robot_type\":4,\r\n" + |
| | | // " \"ip\":\"http://49.234.36.129:10002/\",\r\n" + |
| | | // " \"is_new\":1\r\n" + |
| | | // " }\r\n" + |
| | | // "}\r\n" + |
| | | // "";
|
| | | JSONObject resultJson = JSONObject.fromObject(result);
|
| | | |
| | | if ("0000".equals(resultJson.optString("status"))) {
|
| | | resultJson = resultJson.optJSONObject("data");
|
| | | Type type = new TypeToken<RobotInfoDTO>() {}.getType();
|
| | |
| | | map.put("month", month +"");
|
| | | // 请求结果
|
| | | String result = baseRequest("itaoke.robot.change.get", map);
|
| | | |
| | | // String result = "{\r\n" + |
| | | // " \"status\":\"0000\",\r\n" + |
| | | // " \"msg\":\"\\u4eb2,\\u6dfb\\u52a0\\u6210\\u529f\",\r\n" + |
| | | // " \"data\":{\r\n" + |
| | | // " \"id\":11770,\r\n" + |
| | | // " \"uid\":1625,\r\n" + |
| | | // " \"wechatrobot\":\"fxdaka\",\r\n" + |
| | | // " \"wx_id\":\"wxid_vm6eb5i0in0622\",\r\n" + |
| | | // " \"amount_used\":0,\r\n" + |
| | | // " \"group_num\":20,\r\n" + |
| | | // " \"passwd\":\"\",\r\n" + |
| | | // " \"nickname\":\"\\u5206\\u4eab\\u5927\\u5496??\",\r\n" + |
| | | // " \"c_uid\":1625,\r\n" + |
| | | // " \"login_status\":1,\r\n" + |
| | | // " \"end_time\":1597377534,\r\n" + |
| | | // " \"remark\":null,\r\n" + |
| | | // " \"wc_id\":\"246124e9-9a8c-4da6-a77e-7f7f88049731\",\r\n" + |
| | | // " \"agent_uid\":null,\r\n" + |
| | | // " \"is_enabled\":0,\r\n" + |
| | | // " \"robot_type\":4,\r\n" + |
| | | // " \"ip\":\"http:\\/\\/49.234.36.129:10002\\/\",\r\n" + |
| | | // " \"is_new\":1\r\n" + |
| | | // " }\r\n" + |
| | | // "}";
|
| | | |
| | | JSONObject resultJson = JSONObject.fromObject(result);
|
| | | if ("0000".equals(resultJson.optString("status"))) {
|
| | | resultJson = resultJson.optJSONObject("data");
|
| | |
| | | package com.yeshi.fanli.util.alipay;
|
| | |
|
| | | import java.net.URLEncoder;
|
| | | import java.util.HashMap;
|
| | | import java.util.Map;
|
| | |
|
| | | import com.alibaba.fastjson.JSON;
|
| | | import com.alipay.api.AlipayClient;
|
| | | import com.alipay.api.AlipayApiException;
|
| | | import com.alipay.api.CertAlipayRequest;
|
| | | import com.alipay.api.DefaultAlipayClient;
|
| | | import com.alipay.api.request.AlipayTradeQueryRequest;
|
| | | import com.alipay.api.request.AlipayTradeWapPayRequest;
|
| | | import com.alipay.api.response.AlipayTradeQueryResponse;
|
| | | import com.yeshi.fanli.dto.AlipayTradeWapPayDTO;
|
| | | import com.yeshi.fanli.entity.config.AlipayWapConfig;
|
| | | import com.yeshi.fanli.util.AlipayUtil;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | public class AlipayApi {
|
| | |
|
| | | private static DefaultAlipayClient alipayClient = null;
|
| | |
|
| | | static {
|
| | | AlipayWapConfig alipayWapConfig = Constant.alipayWapConfig;
|
| | | |
| | | CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
|
| | | certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
|
| | | certAlipayRequest.setAppId(alipayWapConfig.getAppId());
|
| | | certAlipayRequest.setPrivateKey(alipayWapConfig.getPrivateKey());
|
| | | certAlipayRequest.setFormat("json");
|
| | | certAlipayRequest.setCharset("UTF-8");
|
| | | certAlipayRequest.setSignType("RSA2");
|
| | | certAlipayRequest.setCertPath(
|
| | | AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAppCertPath()).getPath());
|
| | | certAlipayRequest.setAlipayPublicCertPath(
|
| | | AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAlipayCertPath()).getPath());
|
| | | certAlipayRequest.setRootCertPath(
|
| | | AlipayUtil.class.getClassLoader().getResource(alipayWapConfig.getAlipayRootCertPath()).getPath());
|
| | | try {
|
| | | alipayClient = new DefaultAlipayClient(certAlipayRequest);
|
| | | } catch (AlipayApiException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 创建支付请求
|
| | | * @param map
|
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public static String tradeWapPayRequest(Map<String, String> map, String payNotify, String backUrl) throws Exception{
|
| | | public static String tradeWapPayRequest(AlipayTradeWapPayDTO payDTO) throws Exception{
|
| | | // 待请求参数数组
|
| | | JSONObject json = new JSONObject();
|
| | | // 收款方账号
|
| | | json.put("seller_id", payDTO.getSellerId());
|
| | | // 订单号
|
| | | json.put("out_trade_no", payDTO.getOutTradeNo());
|
| | | // 订单金额:0.01元,精准到分
|
| | | json.put("total_amount",payDTO.getTotalAmount());
|
| | | // 订单标题
|
| | | json.put("subject", payDTO.getSubject());
|
| | | // 销售产品码,商家和支付宝签约的产品码
|
| | | json.put("product_code", payDTO.getProductCode());
|
| | | // 该笔订单允许的最晚付款时间,逾期将关闭交易 30分钟
|
| | | json.put("timeout_express", payDTO.getTimeoutExpress());
|
| | | |
| | | |
| | | AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
|
| | | // 前台回调地址
|
| | | alipayRequest.setReturnUrl(backUrl);
|
| | | alipayRequest.setReturnUrl(payDTO.getReturnUrl());
|
| | | // 成功付款回调
|
| | | alipayRequest.setNotifyUrl(payNotify);
|
| | | alipayRequest.setNotifyUrl(payDTO.getNotifyUrl());
|
| | |
|
| | | alipayRequest.setBizContent(URLEncoder.encode(JSON.toJSONString(map), "UTF-8"));
|
| | | alipayRequest.setBizContent(URLEncoder.encode(json.toString(), "UTF-8"));
|
| | |
|
| | | return AlipayWapConfig.getInstance().pageExecute(alipayRequest).getBody();
|
| | | return alipayClient.pageExecute(alipayRequest).getBody();
|
| | | }
|
| | | |
| | | |
| | |
|
| | | /**
|
| | | * 查询是否交易完成
|
| | |
| | | * @return
|
| | | * @throws Exception
|
| | | */
|
| | | public static boolean tradeQuery (String outTradeNo, String tradeNo, String orgPid, String queryOptions) throws Exception {
|
| | | public static AlipayTradeQueryResponse tradeQuery(String outTradeNo, String tradeNo, String orgPid, String queryOptions) throws Exception {
|
| | | // 订单支付时传入的商户订单号,和支付宝交易号不能同时为空
|
| | | if (StringUtil.isNullOrEmpty(outTradeNo) || StringUtil.isNullOrEmpty(outTradeNo)) {
|
| | | return false;
|
| | | return null;
|
| | | }
|
| | |
|
| | | // 待请求参数数组
|
| | | Map<String, String> map = new HashMap<String, String>();
|
| | | JSONObject json = new JSONObject();
|
| | | if (!StringUtil.isNullOrEmpty(outTradeNo))
|
| | | map.put("out_trade_no", outTradeNo);
|
| | | json.put("out_trade_no", outTradeNo);
|
| | | if (!StringUtil.isNullOrEmpty(tradeNo))
|
| | | map.put("trade_no", tradeNo);
|
| | | json.put("trade_no", tradeNo);
|
| | | if (!StringUtil.isNullOrEmpty(orgPid))
|
| | | map.put("org_pid", orgPid);
|
| | | json.put("org_pid", orgPid);
|
| | | if (!StringUtil.isNullOrEmpty(queryOptions))
|
| | | map.put("query_options", queryOptions);
|
| | | |
| | | json.put("query_options", queryOptions);
|
| | |
|
| | | AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
|
| | | request.setBizContent(URLEncoder.encode(JSON.toJSONString(map), "UTF-8"));
|
| | | |
| | | // 支付宝查询
|
| | | AlipayClient alipayClient = new DefaultAlipayClient(AlipayWapConfig.GATEWAY, AlipayWapConfig.APP_ID,
|
| | | AlipayWapConfig.APP_PRIVATE_KEY, AlipayWapConfig.PARAM_TYPE, AlipayWapConfig.CHARSET,
|
| | | AlipayWapConfig.ALIPAY_PUBLIC_KEY, AlipayWapConfig.SIGNTYPE);
|
| | | request.setBizContent(json.toString());
|
| | |
|
| | | AlipayTradeQueryResponse response = alipayClient.execute(request);
|
| | | if(response.isSuccess()){
|
| | | // 相应成功
|
| | | if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { |
| | | return true; // 交易支付成功
|
| | | } else if ("TRADE_FINISHED".equals(response.getTradeStatus())) {
|
| | | return true; // (交易结束,不可退款)
|
| | | } |
| | | } |
| | | return false;
|
| | | return alipayClient.certificateExecute(request);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | }
|
| | |
| | |
|
| | | import java.util.List;
|
| | |
|
| | | import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
|
| | | import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGroup;
|
| | | import com.yeshi.fanli.entity.common.JumpDetailV2;
|
| | |
|
| | | public class UserCloudInfoVO {
|
| | |
|
| | |
| | | private List<UserCloudGroup> listGroup;// 群信息
|
| | |
|
| | | private List<CloudOrderMenuVO> listMenu;// 菜单信息
|
| | | |
| | | private SwiperPicture course; // 教程
|
| | | |
| | |
|
| | |
|
| | | public String getNickName() {
|
| | |
| | | this.listMenu = listMenu;
|
| | | }
|
| | |
|
| | | public SwiperPicture getCourse() {
|
| | | return course;
|
| | | }
|
| | |
|
| | | public void setCourse(SwiperPicture course) {
|
| | | this.course = course;
|
| | | }
|
| | |
|
| | | |
| | | }
|
New file |
| | |
| | | -----BEGIN CERTIFICATE----- |
| | | MIIDrDCCApSgAwIBAgIQICAGCcf9EalgJMEEuqGAWDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE |
| | | BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 |
| | | aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs |
| | | YXNzIDIgUjEwHhcNMjAwNjA5MDMwMDU0WhcNMjIwNjA5MDMwMDU0WjCBjDELMAkGA1UEBhMCQ04x |
| | | JzAlBgNVBAoMHumHjeW6huW/q+ecgeenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwGQWxpcGF5 |
| | | MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWPuC0yMDg4 |
| | | MjMxMzUzNjU2NzQxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHWEgMOlGb/VbN5p |
| | | cSXv+DLX2EJ43p93zP9eyao8ghj1LcBSf5Sx4gYpuySKZ0oimILb+ErOAlDzcXwvMxcVTK0W2M6U |
| | | aUW0Vh71vOorqggOGqMJsSDpV1hvYrUSCYu1Qe5KtV85w+Kw4dImC3fayIaxUMhwySuniQ/uQtez |
| | | RHn/vwXrGigu3Y2tRgPMUptqA14EYEfhpm3KjLXsqWdJBO6ziiqILHJtow65QzkeoLM2ZHpYH6oY |
| | | y2rIj/iSIpos18MKWvr4XrqSptJYIQp+G3dwqjlt2kk4bpgAXQSR6wKAtGTkAYvlOSpkQXVqI3tI |
| | | GZO3ZM9bFQurMBoJFX790wIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcNAQELBQAD |
| | | ggEBAEo++sORTzbqKf7CyLEcmg+RnX0Ez2aUOftQPkr2XGnDwNon4Air1c+j3snsRhWyTC2TMt18 |
| | | qCPotlr63Zk67agPaGfrKGk7bDxc9QA/kRrctl4+0h4Jh28jgMLQ4ibNgjkGWmMMwSK4D+19k/vt |
| | | hjlGk9LtTc5lsqgm2GTvifC9C4E0ZDiK+rGz/Mo048TiKNhywO8EKWXvbT9n359rbgKoXMJmKWZQ |
| | | bWdMg8NsP/X+p6mgRAtIJNSLyl/ZzzD2J/NpnHlQxq8/OFnS2EFcs0gN71xDtX+KWp+BJHBMwPM4 |
| | | asjhldpscYgoyx2c/D5CinNgMj7qfmORBQ37shpcKDw= |
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | -----BEGIN CERTIFICATE-----
|
| | | MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG
|
| | | EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw
|
| | | MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO
|
| | | UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE
|
| | | MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT
|
| | | V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti
|
| | | W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ
|
| | | MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b
|
| | | 53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI
|
| | | pDoiVhsLwg==
|
| | | -----END CERTIFICATE-----
|
| | |
|
| | | -----BEGIN CERTIFICATE-----
|
| | | MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
|
| | | BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj
|
| | | YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj
|
| | | YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0
|
| | | MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV
|
| | | BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j
|
| | | aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF
|
| | | AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk
|
| | | rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2
|
| | | xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp
|
| | | dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6
|
| | | vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl
|
| | | YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1
|
| | | Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H
|
| | | DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98
|
| | | SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG
|
| | | PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe
|
| | | 9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC
|
| | | AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90
|
| | | tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy
|
| | | nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf
|
| | | tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq
|
| | | JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3
|
| | | IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW
|
| | | 05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41
|
| | | T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI
|
| | | kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop
|
| | | PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N
|
| | | 1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y
|
| | | jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02
|
| | | 77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi
|
| | | kT9qhqn+lw==
|
| | | -----END CERTIFICATE-----
|
| | |
|
| | | -----BEGIN CERTIFICATE-----
|
| | | MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG
|
| | | EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh
|
| | | dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh
|
| | | dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0
|
| | | WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE
|
| | | CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp
|
| | | YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
|
| | | IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU
|
| | | WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt
|
| | | rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ
|
| | | 4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2
|
| | | zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg
|
| | | wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH
|
| | | Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA==
|
| | | -----END CERTIFICATE-----
|
| | |
|
| | | -----BEGIN CERTIFICATE-----
|
| | | MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF
|
| | | BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
|
| | | E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg
|
| | | MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq
|
| | | MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp
|
| | | bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv
|
| | | b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV
|
| | | nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5
|
| | | 4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg
|
| | | wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw
|
| | | WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN
|
| | | z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g
|
| | | KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA
|
| | | uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF
|
| | | MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp
|
| | | emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3
|
| | | U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I
|
| | | UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn
|
| | | DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU
|
| | | 1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX
|
| | | Yf4Zr0fJsGuv
|
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | -----BEGIN CERTIFICATE----- |
| | | MIIEqzCCA5OgAwIBAgIQICAGFcNUAjZwqoMnIos18TANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE |
| | | BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 |
| | | aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs |
| | | YXNzIDEgUjEwHhcNMjAwNjE1MDI1NzI1WhcNMjIwNjE1MDI1NzI1WjBzMQswCQYDVQQGEwJDTjEn |
| | | MCUGA1UECgwe6YeN5bqG5b+r55yB56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZBbGlwYXkx |
| | | KjAoBgNVBAMMITIwODgyMzEzNTM2NTY3NDEtMjAyMTAwMTE2NDY1NTUxMzCCASIwDQYJKoZIhvcN |
| | | AQEBBQADggEPADCCAQoCggEBAITMK2VIomFsH6n52BtBEhMV1Bq1u8HMMRWb1hu/6tq6V0j/RCWm |
| | | RSzv7fbm9bTUZvR3RFcD2URu6lfwShfQ44LI4QXQegiQ5Qlv/5SeDER7lzBYXMQCEDPYuLzVjXgB |
| | | Z8Huirmaq55IksHxWvYUN61ch7Ve3wLEB6+EW2vRycB+UNnkTJe41WAUovp2khw3SOBM+Ct+gVAA |
| | | b38O7rC92qRU5/he+18E56MD/c8fQRPVxfhbIfeEL9416cak51MCHNCX4W1P54/t+ToIwKzrvViQ |
| | | JHtg9XcrTYlHCayE7LE3VY7LKTsRciNYGsngn/Uc/EkSanuh8FVIttntkgfZ3/0CAwEAAaOCASkw |
| | | ggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBTAC55Sk3N4W9D9 |
| | | YVAA6Az4TevnFzBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYcaHR0cDovL2Nh |
| | | LmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAkoCKgIIYeaHR0 |
| | | cDovL2NhLmFsaXBheS5jb20vY3JsNDIuY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggrBgEFBQcwAoYc |
| | | aHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDovL2NhLmFsaXBh |
| | | eS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAIiFS1WOH+mvCxERAzpyJNBgKerc0+CK0Z9j |
| | | WCRQHWB2c4Cn5dfXrRJLNM7D1FU4PlCafKUvH7x/pHOPFZmbuN9Jc0PfeiTR6n4r0oelu5iAW2mX |
| | | 2p/aNY3bRZc3Q671DF0dwu0rixcWjcOoVV03EWYtQAvJ2cKwBnHQTqc5sU2Stjb49PAhItoSH+eL |
| | | J1eSIDDJ+4EzmnmKpFLPw+ghCI95A4eb/4Atpc7qM0upVuWrrHkLrLLENCegC72DAwI0a/2Lcs5p |
| | | xZBzG1WRIbynkjpJksQDCsN1/GmG55r0gKTe9z0KjLvQjSsk/7yrkjpjmq/AUW8cbVgni0YWg0Ok |
| | | 1LM= |
| | | -----END CERTIFICATE----- |
New file |
| | |
| | | appId=2021001164655513
|
| | | sellerId=2088231353656741
|
| | | private_key=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCEzCtlSKJhbB+p+dgbQRITFdQatbvBzDEVm9Ybv+rauldI/0QlpkUs7+325vW01Gb0d0RXA9lEbupX8EoX0OOCyOEF0HoIkOUJb/+UngxEe5cwWFzEAhAz2Li81Y14AWfB7oq5mqueSJLB8Vr2FDetXIe1Xt8CxAevhFtr0cnAflDZ5EyXuNVgFKL6dpIcN0jgTPgrfoFQAG9/Du6wvdqkVOf4XvtfBOejA/3PH0ET1cX4WyH3hC/eNenGpOdTAhzQl+FtT+eP7fk6CMCs671YkCR7YPV3K02JRwmshOyxN1WOyyk7EXIjWBrJ4J/1HPxJEmp7ofBVSLbZ7ZIH2d/9AgMBAAECggEAEjPGEvj0wPPIF01WsM2ng5QvYYXdeX/ajoKww1b4Awkdo7TRi3OR8cnlTT11Glcu0X1zkZXGdxnY5zrZfRA1zxxns5tSzs/FhRij6KQNPGnQXGEQPhGmVOT01XVUEcnnhe6Dd1NbCLQb4ZeKh0ZYJ1wSgerCGKf0AbvbqBi2VbsHy9HQbuFrUUibunI8K66Td/ayyrIJr8Lckb4yBAR63wQaD23DVqEqS7VAD1nrnUZgpFq6pCo8uwH/owBVPS6EB/WQvh2kVoaFGNJILP0zjKUMnrUiZ+34DBaoIeAPon+Vy6xzWHJ+9+1YkI9HxVNWWqKsS4G1q1zzthWSiYC1xQKBgQDOroX61gjcia+hv/qKaZGYPYpEH+icX3l0OZDekOvSw0lMPzIwhpIQWR5e+Hcb4KSSOqvstcz0NbG4oqj9fwlRotSYAMz+Vf6Hqa5biHibKIcUxZfzs7O/CBsKgWQpjdes3YFyOv9AGT3uj3FJozsD4hKnesRQr0nHAcQri5NNFwKBgQCkfFCMKINsb1jOpHh6jFpOySvlvCpqmilw1o4r4CQjMd4CRgS6/UEHMqfB384pucLjPbAmCqkZ0uap40Pr82JJyHaFXWV1mqJPPgLDUkrvhafYoT6zl0i0xrAF4P+aruUbpa6gbrwBPQUKoaj60rhmhTwmzJmJRnOxNEKTOcDwCwKBgBTPn/AE8zl5p7Sqxwh+3skskSqQ5/Qu7OTWEw9GGmjLfyrtRhl6w2RgBN3dOOkWspuCyuL3315Ltcx4nHmB/Cc7NRrlIb8OW6W/YS4YTMSazRc7WjSQyK2YnFhvdO12OdxPJYSiCiejIwhNa0PV6tBWSDiS9QeGzu/57o3P7RIbAoGANIPsQ5N7wlcah39DZ/z/qD/aYBLfiAGIUZpu8dsyLnpxY1BvmjPZWy71GJUYAYJpkpvTbZHhw3juZDdHLEIck2oJTTMwfYfNYndt8maHvklx+Vwh5LzcXbtB396iPQSx6U3QnzA7njmZLnfGt64nabQILGsOaiGwNld1GgRKcVkCgYAeukNSctBKhIrnG8SR/VoKUiutsVYOy6vDHR9rn+swXzqiz+WRiTggtLibquvwSdyvjh4DkUUastY+ninf9S13yjDISVk/9lMlfadStpzbDPnrJItTy6oC+9go3yR9CI9vH5BHa7VyAhKHK5KzryoqHykNpsljEhSVA1hzY4UaxQ==
|
| | | public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhMwrZUiiYWwfqfnYG0ESExXUGrW7wcwxFZvWG7/q2rpXSP9EJaZFLO/t9ub1tNRm9HdEVwPZRG7qV/BKF9DjgsjhBdB6CJDlCW//lJ4MRHuXMFhcxAIQM9i4vNWNeAFnwe6KuZqrnkiSwfFa9hQ3rVyHtV7fAsQHr4Rba9HJwH5Q2eRMl7jVYBSi+naSHDdI4Ez4K36BUABvfw7usL3apFTn+F77XwTnowP9zx9BE9XF+Fsh94Qv3jXpxqTnUwIc0JfhbU/nj+35OgjArOu9WJAke2D1dytNiUcJrITssTdVjsspOxFyI1gayeCf9Rz8SRJqe6HwVUi22e2SB9nf/QIDAQAB
|
| | | app_cert_path=alipay/web/appCertPublicKey_2021001164655513.crt
|
| | | alipay_root_cert_path=alipay/web/alipayRootCert.crt
|
| | | alipay_cert_path=alipay/web/alipayCertPublicKey_RSA2.crt
|