puzhibing
2023-07-30 03a4584d7d58fc073649a3ef821e1b2ebc0ed6cb
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
@@ -92,6 +92,9 @@
    @Autowired
    private ITSystemConfigService systemConfigService;
    @Autowired
    private ICompanyFundFlowService companyFundFlowService;
    @Value("${callbackPath}")
    private String callbackPath;
@@ -121,6 +124,8 @@
        TAgent tAgent = tAgentService.selectById(tAgentId);
        model.addAttribute("item",tAgent);
        LogObjectHolder.me().set(tAgent);
        User user = userService.selectOne(new EntityWrapper<User>().eq("role_type", 3).eq("object_id", tAgentId));
        model.addAttribute("user", user);
        return PREFIX + "tAgent_edit.html";
    }
@@ -592,8 +597,43 @@
    @RequestMapping(value = "/tAgent/update")
    @ResponseBody
    public Object update(TAgent tAgent) {
        TAgent tAgent1 = tAgentService.selectOne(new EntityWrapper<TAgent>()
                .eq("merchantName", tAgent.getMerchantName()));
        if(null != tAgent1 && tAgent1.getId().compareTo(tAgent.getId()) != 0){
            return new SuccessTip(500,"该代理商已存在!");
        }
        User user = userService.selectOne(new EntityWrapper<User>().eq("account", tAgent.getAccount()));
        User user1 = userService.selectOne(new EntityWrapper<User>().eq("role_type", 3).eq("object_id", tAgent.getId()));
        if (null != user && user.getId().compareTo(user1.getId()) != 0){
            return new SuccessTip(500,"该账号已存在!");
        }
        tAgent.setPrincipal(tAgent.getPrincipal().replace(" ",""));
        String[] split = tAgent.getAreaId().split("/");
        // 查询省市
        // 黑龙江省/大兴安岭地区
        // 702/852
        TRegion province = tRegionService.selectById(split[0]);
        tAgent.setProvinceName(province.getName());
        tAgent.setProvinceCode(province.getCode());
        TRegion city = tRegionService.selectById(split[1]);
        if(Objects.isNull(city)){
            city = tRegionService.selectOne(new EntityWrapper<TRegion>()
                    .eq("name",split[1])
                    .last("LIMIT 1"));
        }
        tAgent.setCityName(city.getName());
        tAgent.setCityCode(city.getCode());
        tAgentService.updateById(tAgent);
        user1.setAccount(tAgent.getAccount());
        if(ToolUtil.isNotEmpty(tAgent.getPassword())){
            user1.setPassword(ShiroKit.md5(tAgent.getPassword(), user.getSalt()));
        }
        userService.updateById(user1);
        return SUCCESS_TIP;
    }
@@ -824,6 +864,14 @@
            if(0 == settledAmount){
                return ResultUtil.error("余额不足");
            }
            Double balance = 0D;
            if(roleType == 1){
                balance = rechargeRecordService.queryCompanyBalance();
            }else{
                balance = rechargeRecordService.queryAgentBalance(tAgent.getId());
            }
            SettlementRecord settlementRecord = new SettlementRecord();
            settlementRecord.setType(roleType == 1 ? 1 : 2);
            if(roleType == 3){
@@ -854,6 +902,17 @@
                    settlementRecord.setOrderNumber(merOrderId1);
                    settlementRecord.setArrivalTime(new Date());
                    settlementRecordService.updateById(settlementRecord);
                    CompanyFundFlow companyFundFlow = new CompanyFundFlow();
                    companyFundFlow.setType(2);
                    companyFundFlow.setObjectType(roleType == 1 ? 1 : 2);
                    if(roleType == 3){
                        companyFundFlow.setObjectId(tAgent.getId());
                    }
                    companyFundFlow.setBalance(new BigDecimal(balance));
                    companyFundFlow.setMoney(new BigDecimal(settlementRecord.getAmount()));
                    companyFundFlow.setCreateTime(new Date());
                    companyFundFlowService.insert(companyFundFlow);
                    return ResultUtil.success();
                }
                if(2 == status){
@@ -888,6 +947,26 @@
                    settlementRecord.setOrderNumber(merOrderId1);
                    settlementRecord.setArrivalTime(new Date());
                    settlementRecordService.updateById(settlementRecord);
                    Integer type = settlementRecord.getType();
                    Double balance = 0D;
                    if(type == 1){
                        balance = rechargeRecordService.queryCompanyBalance();
                    }else{
                        balance = rechargeRecordService.queryAgentBalance(settlementRecord.getObjectId());
                    }
                    BigDecimal bigDecimal = new BigDecimal(balance).add(new BigDecimal(settlementRecord.getAmount()));
                    CompanyFundFlow companyFundFlow = new CompanyFundFlow();
                    companyFundFlow.setType(2);
                    companyFundFlow.setObjectType(type);
                    if(type == 2){
                        companyFundFlow.setObjectId(settlementRecord.getObjectId());
                    }
                    companyFundFlow.setBalance(bigDecimal);
                    companyFundFlow.setMoney(new BigDecimal(settlementRecord.getAmount()));
                    companyFundFlow.setCreateTime(new Date());
                    companyFundFlowService.insert(companyFundFlow);
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");
@@ -917,6 +996,7 @@
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String out_trade_no = sdf.format(new Date()) + UUIDUtil.getNumberRandom(3);
            RechargeRecord rechargeRecord = new RechargeRecord();
            rechargeRecord.setCode(out_trade_no);
            rechargeRecord.setType(4);
@@ -974,12 +1054,22 @@
                                            num++;
                                        }
                                        if("1".equals(status1)){//成功
                                            Double balance = rechargeRecordService.queryCompanyBalance();//平台余额
                                            String merOrderId = jsonObject1.getString("merOrderId");
                                            rechargeRecord1.setPayTime(new Date());
                                            rechargeRecord1.setPayStatus(2);
                                            rechargeRecord1.setOrderNumber(merOrderId);
                                            rechargeRecord1.setSurplusDividedAmount(rechargeRecord1.getAmount());
                                            rechargeRecordService.updateById(rechargeRecord1);
                                            CompanyFundFlow companyFundFlow = new CompanyFundFlow();
                                            companyFundFlow.setType(1);
                                            companyFundFlow.setObjectType(1);
                                            companyFundFlow.setBalance(new BigDecimal(balance));
                                            companyFundFlow.setMoney(new BigDecimal(rechargeRecord1.getAmount()));
                                            companyFundFlow.setCreateTime(new Date());
                                            companyFundFlowService.insert(companyFundFlow);
                                            break;
                                        }
                                        if("2".equals(status1) || 10 == num){//失败
@@ -1024,6 +1114,7 @@
                    return;
                }
                if(1 == status){
                    Double balance = rechargeRecordService.queryCompanyBalance();//平台余额
                    String parameter1 = jsonObject.getString("parameter1");
                    RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1);
                    rechargeRecord.setPayStatus(2);
@@ -1031,6 +1122,15 @@
                    rechargeRecord.setOrderNumber(jsonObject.getString("merOrderId"));
                    rechargeRecord.setSurplusDividedAmount(rechargeRecord.getAmount());
                    rechargeRecordService.updateById(rechargeRecord);
                    CompanyFundFlow companyFundFlow = new CompanyFundFlow();
                    companyFundFlow.setType(1);
                    companyFundFlow.setObjectType(1);
                    companyFundFlow.setBalance(new BigDecimal(balance));
                    companyFundFlow.setMoney(new BigDecimal(rechargeRecord.getAmount()));
                    companyFundFlow.setCreateTime(new Date());
                    companyFundFlowService.insert(companyFundFlow);
                    response.setStatus(200);
                    PrintWriter out = response.getWriter();
                    out.print("OK");