Browse Source

账户权限

李天标 3 years ago
parent
commit
fb99b4c911

+ 1 - 1
src/main/java/com/szwl/aspect/MyWebMvcConfigurer.java

@@ -20,7 +20,7 @@ public class MyWebMvcConfigurer extends WebMvcConfigurationSupport {
     public void addInterceptors(InterceptorRegistry registry) {
         // 自定义去除的路径
         String[] myExcludes= {"/tAdmin/login","/tAdmin/save","/tAdmin/updatePassword","/tMessageCode/**",
-                "/rabbitMqController/**","/indexController/initNew.htm","/indexController/**","/tAdmin/**","/tPromoCode/**","/api/**","/error"};
+                "/rabbitMqController/**","/indexController/initNew.htm","/indexController/**","/tOrder/**","/tPromoCode/**","/api/**","/error"};
         registry.addInterceptor(headTokenInterceptor).addPathPatterns("/**")
                 // swagger
                 .excludePathPatterns(swaggerExcludes)

+ 47 - 2
src/main/java/com/szwl/controller/TAdminController.java

@@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.IdUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -65,17 +66,26 @@ public class TAdminController {
     @Transactional
     @Audit(type = AuditEnum.INSERT,content = "#loginUser.name + '添加账号'")
     public ResponseModel<?> addLoginUser(@RequestBody @Valid AddLoginUserParam param) {
+//    public ResponseModel<?> addLoginUser(@RequestBody  AddLoginUserParam param) {
         //获取当前操作人员
         UserDetailBO loginUser = tokenManager.getLoginUserDetails();
         // 保存用户实体
         Date now = new Date();
+        Long parentId = param.getAdminId();
+        if(parentId==null){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        param.setAdminId(null);
         TAdmin entity = BeanUtil.copyProperties(param,TAdmin.class);
-        entity.setParentId(loginUser.getId());
-        entity.setIsAdmined(true);
+        entity.setParentId(parentId);
+//        entity.setParentId(34l);
+        entity.setIsAdmined(false);
         entity.setCreateDate(now);
         entity.setModifyDate(now);
         entity.setIsLocked(false);
         entity.setLoginFailureCount(0);
+        entity.setEmail(param.getEmail());
+        entity.setPhone(param.getPhone());
         tAdminService.save(entity);
         // 管理的机器 需要再建立一个关系表 type区分全部还是部分
         String equipmentIds = param.getEquipmentIds();
@@ -111,7 +121,42 @@ public class TAdminController {
         return R.ok(entity);
     }
 
+    @ApiOperation(value = "获取所有子账号信息")
+    @GetMapping("/getChildDrenAdminList")
+    public ResponseModel<?> getChildDrenAdminList(String adminId,String userName,String name) {
+        List<String> returnList = new ArrayList<>();
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getParentId,adminId);
+        if(StringUtils.isNotEmpty(userName)){
+            query.eq(TAdmin::getUsername,userName);
+        }
+        if(StringUtils.isNotEmpty(name)){
+            query.eq(TAdmin::getName,name);
+        }
+        query.eq(TAdmin::getIsAdmined,false);
+        List<TAdmin> list = tAdminService.list(query);
+        if(list.size()>0){
+            for(TAdmin admin:list){
+                LambdaQueryWrapper<SysUserRole> query1 = Wrappers.lambdaQuery();
+                query1.eq(SysUserRole::getUserId,admin.getId());
+                List<SysUserRole> roleList = sysUserRoleService.list(query1);
+                if(roleList.size()>0){
+                    SysUserRole sysUserRole = roleList.get(0);
+                    SysRole sysRole = sysRoleService.getById(sysUserRole.getRoleId());
+                    String roleName = sysRole.getRoleName();
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("roleName", roleName);
+                    jsonObject.put("userName", admin.getUsername());
+                    jsonObject.put("name", admin.getName());
+                    jsonObject.put("email", admin.getEmail());
+                    jsonObject.put("phone", admin.getPhone());
+                    returnList.add(jsonObject.toJSONString());
+                }
+            }
 
+        }
+        return R.ok(returnList);
+    }
     @ApiOperation(value = "注册")
     @PostMapping("/save")
     @Transactional

+ 67 - 6
src/main/java/com/szwl/controller/TAlarmRecordController.java

@@ -3,21 +3,28 @@ package com.szwl.controller;
 
 import cn.com.crbank.ommo.bean.ResultMessage;
 import com.alibaba.fastjson.JSONObject;
-import com.szwl.model.entity.TAlarmRecord;
-import com.szwl.model.entity.TEquipment;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.*;
 import com.szwl.model.utils.PushUtils;
+import com.szwl.service.TAdminService;
 import com.szwl.service.TAlarmRecordService;
 import com.szwl.service.TEquipmentService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -36,6 +43,8 @@ public class TAlarmRecordController {
     TEquipmentService tEquipmentService;
     @Autowired
     TAlarmRecordService tAlarmRecordService;
+    @Autowired
+    TAdminService adminService;
     @ApiOperation(value = "消除报警")
     @PostMapping("/eliminate")
     public ResponseEntity<?> eliminate(@RequestBody TAlarmRecord param){
@@ -50,5 +59,57 @@ public class TAlarmRecordController {
         return ResponseEntity.status(HttpStatus.OK)
                 .body(new ResultMessage().setCode(true).setData("0").setMessage("已发送"));
     }
+
+    @ApiOperation(value = "获取分销信息列表 分页")
+    @GetMapping("/pageAlarmRecord")
+    public ResponseModel<IPage<?>> pageAlarmRecord(String adminId, String clientId, String name, Date startDate,Date endDate, long current, long size ) {
+        TAdmin admin = adminService.getById(adminId);
+        if(StringUtils.isEmpty(adminId)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        LambdaQueryWrapper<TAlarmRecord> query = Wrappers.lambdaQuery();
+        if(admin.getType()>1){
+            query.eq(TAlarmRecord::getAdminId,admin.getId());
+        }
+        if(StringUtils.isNotEmpty(clientId)){
+            LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
+            query1.like(TEquipment::getClientId,clientId);
+            List<TEquipment> list = tEquipmentService.list(query1);
+            TEquipment equipment = list.get(0);
+            if(admin.getType()>1){
+               if(equipment.getAdminId().toString().equals(adminId)){
+                   query.eq(TAlarmRecord::getClientId,equipment.getClientId());
+               }else {
+                   return R.fail("设备编号出错");
+               }
+            }else {
+                query.like(TAlarmRecord::getClientId,clientId);
+            }
+        }
+        if(StringUtils.isNotEmpty(name)){
+            LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
+            query1.eq(TEquipment::getName,name);
+            List<TEquipment> list = tEquipmentService.list(query1);
+            TEquipment equipment = list.get(0);
+            if(admin.getType()>1){
+                if(equipment.getName().equals(name)){
+                    query.eq(TAlarmRecord::getName,name);
+                }else {
+                    return R.fail("设备编号出错");
+                }
+            }else {
+                query.eq(TAlarmRecord::getName,name);
+            }
+        }
+        if(startDate!=null){
+            query.gt(TAlarmRecord::getOccurrenceTime,startDate);
+        }
+        if(endDate!=null){
+            query.lt(TAlarmRecord::getOccurrenceTime,endDate);
+        }
+        Page<TAlarmRecord> page = new Page<>(current, size, true);
+        IPage<TAlarmRecord> iPage = tAlarmRecordService.page(page, query);
+        return R.ok(iPage);
+    }
 }
 

+ 152 - 44
src/main/java/com/szwl/controller/TJoinpayMchCheckController.java

@@ -2,21 +2,21 @@ package com.szwl.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.netflix.discovery.util.StringUtil;
+import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
-import com.szwl.model.entity.TAdmin;
-import com.szwl.model.entity.TJoinpayMch;
-import com.szwl.model.entity.TJoinpayMchCheck;
-import com.szwl.service.TAdminService;
-import com.szwl.service.TJoinpayMchCheckService;
-import com.szwl.service.TJoinpayMchService;
+import com.szwl.model.entity.*;
+import com.szwl.service.*;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -39,9 +39,59 @@ public class TJoinpayMchCheckController {
     @Autowired
     TJoinpayMchService tJoinpayMchService;
     @Autowired
+    TShandeMchCheckService tShandeMchCheckService;
+    @Autowired
     TJoinpayMchCheckService tJoinpayMchCheckService;
     @Autowired
+    TShandeMchService tShandeMchService;
+    @Autowired
     TAdminService adminService;
+
+    @ApiOperation(value = "平台查找审核信息列表")
+    @GetMapping("/pageMch")
+    public ResponseModel<?> pageMch(String adminId,String username, String type,long current, long size) {
+        if(StringUtils.isEmpty(type)||StringUtils.isEmpty(adminId)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        TAdmin admin = adminService.getById(adminId);
+        if(admin.getType()>1){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        if(type.equals("0")){
+            //汇聚的审核信息
+            LambdaQueryWrapper<TJoinpayMchCheck> query = Wrappers.lambdaQuery();
+            if(StringUtils.isNotEmpty(username)){
+                LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+                query1.eq(TAdmin::getUsername,username);
+                List<TAdmin> list1 = adminService.list(query1);
+                if(list1.size()>0){
+                    query.eq(TJoinpayMchCheck::getAdminId,list1.get(0).getId());
+                }
+            }
+            query.eq(TJoinpayMchCheck::getType,"0");
+            Page<TJoinpayMchCheck> page = new Page<>(current, size, true);
+            IPage<TJoinpayMchCheck> iPage = tJoinpayMchCheckService.page(page, query);
+            return R.ok(iPage);
+        }
+        if(type.equals("1")) {
+            //杉德的审核信息
+            LambdaQueryWrapper<TShandeMchCheck> query = Wrappers.lambdaQuery();
+            if(StringUtils.isNotEmpty(username)){
+                LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+                query1.eq(TAdmin::getUsername,username);
+                List<TAdmin> list1 = adminService.list(query1);
+                if(list1.size()>0){
+                    query.eq(TShandeMchCheck::getAdminId,list1.get(0).getId());
+                }
+            }
+            query.eq(TShandeMchCheck::getCheckType,"0");
+            Page<TShandeMchCheck> page = new Page<>(current, size, true);
+            IPage<TShandeMchCheck> iPage = tShandeMchCheckService.page(page, query);
+            return R.ok(iPage);
+        }
+        return R.ok();
+    }
+
     @ApiOperation(value = "商家查找汇聚收款账户在审核信息")
     @PostMapping("/getOne")
     public ResponseModel<?> findById(Long id, String username) {
@@ -59,8 +109,24 @@ public class TJoinpayMchCheckController {
             return R.fail("没有审核信息");
         }
     }
+    @PostMapping("/selectOne")
+    public ResponseModel<?> selectOne(Long id, String type) {
+        if(StringUtils.isNotEmpty(type)){
+            if(type.equals("0")){
+                //汇聚
+                TJoinpayMchCheck joinpayMchCheck = tJoinpayMchCheckService.getById(id);
+                return R.ok(joinpayMchCheck);
+            }
+            if(type.equals("1")){
+                //杉德
+                TShandeMchCheck shandeMchCheck = tShandeMchCheckService.getById(id);
+                return R.ok(shandeMchCheck);
+            }
+        }
+        return R.ok();
+    }
     @ApiOperation(value = "撤销申请")
-    @PostMapping("/update")
+    @GetMapping("/update")
     public ResponseModel<?> update(Long id) {
         LambdaQueryWrapper<TJoinpayMchCheck> query = Wrappers.lambdaQuery();
         query.eq(TJoinpayMchCheck::getId,id);
@@ -100,46 +166,88 @@ public class TJoinpayMchCheckController {
 
     @ApiOperation(value = "平台审核是否通过")
     @PostMapping("/shenhe")
-    public ResponseModel<?> shenhe(Long id,String type) {
+    public ResponseModel<?> shenhe(Long id,String type,String status) {
         if(type.equals("0")){
-            //通过
-            TJoinpayMchCheck joinpayMchCheck = tJoinpayMchCheckService.getById(id);
-            joinpayMchCheck.setType("1");
-            LambdaQueryWrapper<TJoinpayMch> query1 = Wrappers.lambdaQuery();
-            query1.eq(TJoinpayMch::getAdminId,joinpayMchCheck.getAdminId());
-            List<TJoinpayMch> list1 = tJoinpayMchService.list(query1);
-            if(list1.size()>0){
-                TJoinpayMch mch = list1.get(0);
-                mch.setModifyDate(new Date());
-                mch.setAltMerchantType(joinpayMchCheck.getAltMerchantType());
-                mch.setBusiContactMobileNo(joinpayMchCheck.getBusiContactMobileNo());
-                mch.setBusiContactName(joinpayMchCheck.getBusiContactName());
-                mch.setPhoneNo(joinpayMchCheck.getPhoneNo());
-                mch.setLegalPerson(joinpayMchCheck.getLegalPerson());
-                mch.setIdCardNo(joinpayMchCheck.getIdCardNo());
-                mch.setLicenseNo(joinpayMchCheck.getLicenseNo());
-                mch.setAltMerchantType(joinpayMchCheck.getAltMerchantType());
-                mch.setBankAccountName(joinpayMchCheck.getBankAccountName());
-                mch.setBankAccountNo(joinpayMchCheck.getBankAccountNo());
-                mch.setBankChannelNo(joinpayMchCheck.getBankChannelNo());
-                mch.setSettMode(joinpayMchCheck.getSettMode());
-                mch.setRiskDay(joinpayMchCheck.getRiskDay());
-                //修改的数据发送到汇聚
-                String result = tJoinpayMchService.updateMch(mch);
-                if(result.equals("ok")){
-                    tJoinpayMchService.updateById(mch);
-                    joinpayMchCheck.setModifyDate(new Date());
-                    tJoinpayMchCheckService.updateById(joinpayMchCheck);
-                }else{
-                    return R.fail(result);
+            //汇聚
+            if(status.equals("1")){
+                //通过
+                TJoinpayMchCheck joinpayMchCheck = tJoinpayMchCheckService.getById(id);
+                joinpayMchCheck.setType("1");
+                LambdaQueryWrapper<TJoinpayMch> query1 = Wrappers.lambdaQuery();
+                query1.eq(TJoinpayMch::getAdminId,joinpayMchCheck.getAdminId());
+                List<TJoinpayMch> list1 = tJoinpayMchService.list(query1);
+                if(list1.size()>0){
+                    TJoinpayMch mch = list1.get(0);
+                    mch.setModifyDate(new Date());
+                    mch.setAltMerchantType(joinpayMchCheck.getAltMerchantType());
+                    mch.setBusiContactMobileNo(joinpayMchCheck.getBusiContactMobileNo());
+                    mch.setBusiContactName(joinpayMchCheck.getBusiContactName());
+                    mch.setPhoneNo(joinpayMchCheck.getPhoneNo());
+                    mch.setLegalPerson(joinpayMchCheck.getLegalPerson());
+                    mch.setIdCardNo(joinpayMchCheck.getIdCardNo());
+                    mch.setLicenseNo(joinpayMchCheck.getLicenseNo());
+                    mch.setAltMerchantType(joinpayMchCheck.getAltMerchantType());
+                    mch.setBankAccountName(joinpayMchCheck.getBankAccountName());
+                    mch.setBankAccountNo(joinpayMchCheck.getBankAccountNo());
+                    mch.setBankChannelNo(joinpayMchCheck.getBankChannelNo());
+                    mch.setSettMode(joinpayMchCheck.getSettMode());
+                    mch.setRiskDay(joinpayMchCheck.getRiskDay());
+                    mch.setStep("0");
+                    //修改的数据发送到汇聚
+                    String result = tJoinpayMchService.updateMch(mch);
+                    if(result.equals("ok")){
+                        tJoinpayMchService.updateById(mch);
+                        joinpayMchCheck.setModifyDate(new Date());
+                        tJoinpayMchCheckService.updateById(joinpayMchCheck);
+                    }else{
+                        return R.fail(result);
+                    }
                 }
+            }else {
+                //拒绝
+                TJoinpayMchCheck tJoinpayMchCheck = tJoinpayMchCheckService.getById(id);
+                tJoinpayMchCheck.setModifyDate(new Date());
+                tJoinpayMchCheck.setType("3");
+                tJoinpayMchCheckService.updateById(tJoinpayMchCheck);
             }
-        }else {
-            //拒绝
-            TJoinpayMchCheck tJoinpayMchCheck = tJoinpayMchCheckService.getById(id);
-            tJoinpayMchCheck.setModifyDate(new Date());
-            tJoinpayMchCheck.setType("3");
-            tJoinpayMchCheckService.updateById(tJoinpayMchCheck);
+
+        }if(type.equals("1")) {
+            //杉德
+            if(status.equals("1")){
+                //通过
+                TShandeMchCheck shandeMchCheck = tShandeMchCheckService.getById(id);
+                LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
+                query.eq(TShandeMch::getAdminId,shandeMchCheck.getAdminId());
+                List<TShandeMch> list = tShandeMchService.list(query);
+                if(list.size()>0){
+                    TShandeMch mch = list.get(0);
+                    mch.setModifyDate(new Date());
+                    mch.setBankName(shandeMchCheck.getBankName());
+                    mch.setType(shandeMchCheck.getType());
+                    mch.setBankNo(shandeMchCheck.getBankNo());
+                    //企业
+                    if(shandeMchCheck.getType().equals("0")){
+                        mch.setBankChannelNo(shandeMchCheck.getBankChannelNo());
+                        mch.setBankChannelName(shandeMchCheck.getBankChannelName());
+                    }
+                    //个人
+                    if(shandeMchCheck.getType().equals("1")){
+                        mch.setBankChannelNo(null);
+                        mch.setBankChannelName(null);
+                    }
+                    tShandeMchService.updateById(mch);
+                    shandeMchCheck.setCheckType("1");
+                    shandeMchCheck.setModifyDate(new Date());
+                    tShandeMchCheckService.updateById(shandeMchCheck);
+                }
+            }else {
+                //拒绝
+                TShandeMchCheck tShandeMchCheck = tShandeMchCheckService.getById(id);
+                tShandeMchCheck.setModifyDate(new Date());
+                tShandeMchCheck.setCheckType("3");
+                tShandeMchCheckService.updateById(tShandeMchCheck);
+            }
+
         }
         return R.ok();
     }

+ 36 - 8
src/main/java/com/szwl/controller/TJoinpayMchController.java

@@ -45,18 +45,15 @@ public class TJoinpayMchController {
     TAdminService adminService;
     @ApiOperation(value = "查找汇聚收款账户信息")
     @PostMapping("/getOne")
-    public ResponseModel<?> findById(Long id,String username) {
-        TAdmin admin = adminService.getById(id);
-        if(!admin.getUsername().equals(username)){
-            return R.fail("username不符合!");
-        }
+    public ResponseModel<TJoinpayMch> getOne(String adminId) {
+        TAdmin admin = adminService.getById(adminId);
         LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
-        query.eq(TJoinpayMch::getAdminId,id);
+        query.eq(TJoinpayMch::getAdminId,adminId);
         List<TJoinpayMch> list = tJoinpayMchService.list(query);
         if(list.size()>0){
             //已经注册,就要查看是否有提交审核的
             LambdaQueryWrapper<TJoinpayMchCheck> query1 = Wrappers.lambdaQuery();
-            query1.eq(TJoinpayMchCheck::getAdminId,id);
+            query1.eq(TJoinpayMchCheck::getAdminId,adminId);
             List<TJoinpayMchCheck> list1 = tJoinpayMchCheckService.list(query1);
             if(list1.size()>0){
                 int i = 0;
@@ -96,6 +93,7 @@ public class TJoinpayMchController {
     @ApiOperation(value = "保存或提交审核")
     @PostMapping("/save")
     public ResponseModel<?> save(@RequestBody TJoinpayMch tJoinpayMch) {
+
         TAdmin admin = adminService.getById(tJoinpayMch.getAdminId());
         LambdaQueryWrapper<TJoinpayMch> query = Wrappers.lambdaQuery();
         query.eq(TJoinpayMch::getAdminId,tJoinpayMch.getAdminId());
@@ -107,11 +105,41 @@ public class TJoinpayMchController {
             return R.ok(list.get(0));
         }else {
             //没有,直接保存
+            tJoinpayMch.setStep("0");
             String result = tJoinpayMchService.createMch(tJoinpayMch);
             return R.fail("尚未注册!");
         }
     }
-
+    @ApiOperation(value = "签约")
+    @GetMapping("/altMchSign")
+    public ResponseModel<?> altMchSign(String id) {
+        TJoinpayMch mch = tJoinpayMchService.getById(id);
+        //签定协议
+        String str =tJoinpayMchService.altMchSign(mch);
+        return R.ok(str);
+    }
+    @ApiOperation(value = "上传图片")
+    @PostMapping("/sentImage")
+    public ResponseModel<?> sentImage(String id,String cardPositive,String cardNegative,String tradeLicence,String openAccountLicence,String type,String status) {
+        TJoinpayMch mch = tJoinpayMchService.getById(id);
+        if(type.equals("0")){
+            //对公
+            if(cardPositive==null||cardNegative==null||tradeLicence==null){
+                return R.fail("图片不能为空");
+            }
+            String str = tJoinpayMchService.sendCardBusiness(mch,cardPositive,cardNegative,tradeLicence,openAccountLicence,status);
+            R.ok(str);
+        }
+        if(type.equals("1")){
+            //个人
+            if(cardPositive==null||cardNegative==null){
+                return R.fail("图片不能为空");
+            }
+            String str = tJoinpayMchService.sendCard(mch,cardPositive,cardNegative,status);
+            R.ok(str);
+        }
+        return R.ok();
+    }
     @ApiOperation(value = "获取提现信息")
     @GetMapping("/getMch")
     public ResponseModel<TJoinpayMch> getMch(@RequestParam String id) {

+ 62 - 11
src/main/java/com/szwl/controller/TLabelController.java

@@ -18,13 +18,12 @@ import com.szwl.service.TPriceService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
+import org.json.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -49,7 +48,7 @@ public class TLabelController {
     TLabelService labelService;
 
     @ApiOperation(value = "添加标签")
-    @GetMapping("/add")
+    @PostMapping("/add")
     public ResponseModel<?> add(@RequestBody TLabel label) {
         if(StringUtils.isNotEmpty(label.getName())&&StringUtils.isNotEmpty(label.getType())&&label.getAdminId()!=null){
             label.setCreateDate(new Date());
@@ -90,12 +89,28 @@ public class TLabelController {
                    label.setEquipmentIds(ids.toString());
                 }
             }
+            labelService.save(label);
+            return R.ok();
         }else {
             return R.fail(ResponseCodesEnum.A0001);
         }
-        return R.ok();
     }
+    @ApiOperation(value = "添加标签")
+    @GetMapping("/delete")
+    public ResponseModel<?> delete(String id,String adminId) {
+        if(StringUtils.isNotEmpty(id)&&StringUtils.isNotEmpty(adminId)){
+            TLabel label = labelService.getById(id);
+            if(label!=null&&label.getAdminId()!=null){
+                if(adminId.equals(label.getAdminId().toString())){
+                    labelService.removeById(id);
+                    return R.ok();
+                }
+            }
+        }
+
+        return R.fail("删除失败");
 
+    }
     @ApiOperation(value = "获取标签列表")
     @GetMapping("/list")
     public ResponseModel<?> list(String adminId) {
@@ -192,17 +207,53 @@ public class TLabelController {
         if(tEquipment==null||tEquipment.getId()==null||StringUtils.isEmpty(labelIds)){
             return R.fail(ResponseCodesEnum.A0001);
         }
-        List<String> labelIdList = JSON.parseArray(labelIds, String.class);
+        String[] split = labelIds.split(",");
+        List<String> labelIdList = Arrays.asList(split);
+//        List<String> labelIdList = JSON.parseArray(labelIds, String.class);
         if(labelIdList.size()>0){
             for(String id:labelIdList){
                 TLabel label = labelService.getById(id);
                 if(label.getType().equals("1")){
                     String ids = label.getEquipmentIds();
                     List<String> list = JSON.parseArray(ids, String.class);
-                    list.add(equipmentId);
-                    label.setModifyDate(new Date());
-                    label.setEquipmentIds(list.toString());
-                    labelService.updateById(label);
+                    int i = 0 ;
+                    if(list.size()>0){
+                        for(String eid:list){
+                            if(eid.equals(equipmentId)){
+                                i++;
+                            }
+                        }
+                    }
+                    if(i==0){
+                        list.add(equipmentId);
+                        label.setModifyDate(new Date());
+                        label.setEquipmentIds(JSON.toJSON(list).toString());
+                        String equipmentNames = label.getEquipmentNames();
+//                        char a = equipmentNames.charAt(1);
+                        List<String> stringList = new ArrayList<>();
+//                        if(a!= 34){
+//                            equipmentNames=equipmentNames.substring(1,equipmentNames.length()-1);
+//                            String[] split1 = equipmentNames.split(",");
+//                            stringList = new ArrayList<>(Arrays.asList(split1));
+//                            String name = tEquipment.getName();
+//                            if(StringUtils.isNotEmpty(name)){
+//                                stringList.add(name);
+//                            }
+//
+//                        }else {
+//                            stringList = JSON.parseArray(equipmentNames, String.class);
+//                            if(StringUtils.isNotEmpty(tEquipment.getName())){
+//                                stringList.add(tEquipment.getName());
+//                            }
+//                        }
+                        stringList = JSON.parseArray(equipmentNames, String.class);
+                        if(StringUtils.isNotEmpty(tEquipment.getName())){
+                            stringList.add(tEquipment.getName());
+                        }
+                        label.setEquipmentNames(JSON.toJSON(stringList).toString());
+                        labelService.updateById(label);
+                    }
+
                 }
             }
         }

+ 25 - 4
src/main/java/com/szwl/controller/TOrderController.java

@@ -89,14 +89,34 @@ public class TOrderController {
 
         JSONArray altInfoArray = JSONArray.parseArray(order.getAltInfo());
         JSONArray altRefInfo = new JSONArray();
-
+        BigDecimal refusePrice = torder.getRefundAmount().setScale(2, RoundingMode.HALF_DOWN);
+        if(refusePrice.compareTo(new BigDecimal("0.00"))==0){
+            refusePrice = torder.getPrice();
+        }
+        BigDecimal p = BigDecimal.ZERO;
         BigDecimal price = BigDecimal.ZERO;
         for (int i = 0; i < altInfoArray.size(); i++) {
             JSONObject altInfoObject = altInfoArray.getJSONObject(i);
 
             JSONObject refInfo = new JSONObject();
             refInfo.put("altMchNo", altInfoObject.getString("altMchNo"));
-            refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+            String altAmount = altInfoObject.getString("altAmount");
+
+            BigDecimal pri = new BigDecimal(order.getPrice().toString()).setScale(2, RoundingMode.HALF_DOWN);
+
+            if(refusePrice.compareTo(pri)<0){
+                //退部分的钱
+                BigDecimal altAmountPrice = new BigDecimal(altAmount);
+                altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
+                p = p.add(altAmountPrice);
+                refInfo.put("altRefAmount", altAmountPrice.toString());
+            }else {
+                //退全部的钱
+                BigDecimal altAmountPrice = new BigDecimal(altAmount);
+                p = p.add(altAmountPrice);
+                refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+            }
+
 
             price = price.add(altInfoObject.getBigDecimal("altAmount"));
             if (!altInfoObject.getBigDecimal("altAmount").toString().equals("0.00")) {
@@ -105,7 +125,8 @@ public class TOrderController {
         }
         // 特殊处理下:添加多一个平台方分销的金额
         // 平台获得的收益
-        BigDecimal adminPrice = new BigDecimal(order.getPrice().toString()).subtract(price);
+//        BigDecimal adminPrice = new BigDecimal(order.getPrice().toString()).subtract(price);
+        BigDecimal adminPrice = refusePrice.subtract(p).setScale(2, RoundingMode.HALF_DOWN);
         JSONObject refInfo = new JSONObject();
         refInfo.put("altMchNo", JoinpayConstant.mch_no);
         refInfo.put("altRefAmount", adminPrice.toString());
@@ -274,7 +295,7 @@ public class TOrderController {
             }
         } else {
             try {
-                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId), price, "", notifyUrl, altRefInfo.toString());
+                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId), refusePrice, "", notifyUrl, altRefInfo.toString());
                 if (Constant.correct_code.equals(result)) {
                     order.setStatus(2);
                     payFeign.updateOrder(order);

+ 9 - 0
src/main/java/com/szwl/controller/TPromoCodeController.java

@@ -74,6 +74,15 @@ public class TPromoCodeController {
         IPage<TPromoCode> iPage = promoCodeService.page(page, query);
         return R.ok(iPage);
     }
+    @ApiOperation(value = "获取优惠码")
+    @GetMapping("/selectTPromoCode")
+    public ResponseModel<TPromoCode> selectTPromoCode(@RequestParam String  code,@RequestParam String  adminId) {
+        LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
+        query.eq(TPromoCode::getCode,code);
+        query.eq(TPromoCode::getAdminId,adminId);
+        List<TPromoCode> list = promoCodeService.list(query);
+        return R.ok(list.get(0));
+    }
     @ApiOperation(value = "修改优惠码")
     @GetMapping("/updatePromoCode")
     public void updatePromoCode(@RequestParam(value = "id")String id, @RequestParam(value = "type")String type) {

+ 27 - 2
src/main/java/com/szwl/controller/TProportionCheckController.java

@@ -15,6 +15,7 @@ import com.szwl.service.TProportionService;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -108,9 +109,9 @@ public class TProportionCheckController {
     }
 
     @ApiOperation(value = "平台审核是否通过")
-    @PostMapping("/shenhe")
+    @GetMapping("/shenhe")
     public ResponseModel<?> shenhe(Long id,String type) {
-        if(type.equals("0")){
+        if(type.equals("1")){
             //通过
             TProportionCheck tProportionCheck = tProportionCheckService.getById(id);
             LambdaQueryWrapper<TProportion> query = Wrappers.lambdaQuery();
@@ -132,10 +133,34 @@ public class TProportionCheckController {
                 tProportion.setAgencyProportion(tProportion.getAgencyProportion());
                 tProportion.setMerchantProportion(tProportion.getMerchantProportion());
                 tProportion.setPersonageProportion(tProportion.getPersonageProportion());
+                tProportion.setAgencyName(tProportionCheck.getAgencyName());
+                tProportion.setMerchantName(tProportionCheck.getMerchantName());
+                tProportion.setPersonageName(tProportionCheck.getPersonageName());
                 tProportionService.updateById(tProportion);
                 tProportionCheck.setCheckType("1");
                 tProportionCheck.setModifyDate(new Date());
                 tProportionCheckService.updateById(tProportionCheck);
+                //发短信 todo
+            }else{
+                TProportion tProportion = new TProportion();
+                tProportion.setModifyDate(new Date());
+                tProportion.setCreateDate(new Date());
+                tProportion.setAdminId(tProportionCheck.getAdminId());
+                tProportion.setEquipmentId(tProportionCheck.getEquipmentId());
+                tProportion.setClientId(tProportionCheck.getClientId());
+                tProportion.setType(tProportionCheck.getType());
+                tProportion.setProportion(tProportionCheck.getProportion());
+                tProportion.setAdminProportion(tProportionCheck.getAdminProportion());
+                tProportion.setAgencyId(tProportionCheck.getAgencyId());
+                tProportion.setMerchantId(tProportionCheck.getMerchantId());
+                tProportion.setPersonageId(tProportionCheck.getPersonageId());
+                tProportion.setAgencyProportion(tProportion.getAgencyProportion());
+                tProportion.setMerchantProportion(tProportion.getMerchantProportion());
+                tProportion.setPersonageProportion(tProportion.getPersonageProportion());
+                tProportion.setAgencyName(tProportionCheck.getAgencyName());
+                tProportion.setMerchantName(tProportionCheck.getMerchantName());
+                tProportion.setPersonageName(tProportionCheck.getPersonageName());
+                tProportionService.save(tProportion);
             }
         }else {
             //拒绝

+ 90 - 8
src/main/java/com/szwl/controller/TProportionController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.*;
@@ -40,15 +41,69 @@ public class TProportionController {
     TEquipmentService tEquipmentService;
     @Autowired
     TAdminService adminService;
+
+    @ApiOperation(value = "获取分销信息列表 分页 商户")
+    @GetMapping("/pageProportion")
+    public ResponseModel<IPage<?>> pageProportion(String adminId,String type,long current, long size ) {
+        TAdmin admin = adminService.getById(adminId);
+        if(StringUtils.isEmpty(adminId)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        if(type.equals("0")){
+            //未审核
+            LambdaQueryWrapper<TProportionCheck> query = Wrappers.lambdaQuery();
+            if(admin.getType()>1){
+                query.eq(TProportionCheck::getAdminId,admin.getId());
+                query.in(TProportionCheck::getCheckType,"0","2","3");
+            }
+            Page<TProportionCheck> page = new Page<>(current, size, true);
+            IPage<TProportionCheck> iPage = tProportionCheckService.page(page, query);
+            return R.ok(iPage);
+        }else {
+            //已审核
+            LambdaQueryWrapper<TProportion> query = Wrappers.lambdaQuery();
+            if(admin.getType()>1){
+                query.eq(TProportion::getAdminId,admin.getId());
+            }
+            Page<TProportion> page = new Page<>(current, size, true);
+            IPage<TProportion> iPage = tProportionService.page(page, query);
+            return R.ok(iPage);
+        }
+    }
+    @ApiOperation(value = "获取分销信息列表 分页 平台")
+    @GetMapping("/pageProportionAdmin")
+    public ResponseModel<IPage<?>> pageProportionAdmin(String adminId,String username,String type,long current, long size ) {
+        TAdmin admin = adminService.getById(adminId);
+        if(StringUtils.isEmpty(adminId)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        //未审核
+        LambdaQueryWrapper<TProportionCheck> query = Wrappers.lambdaQuery();
+        if(admin.getType()>1){
+            query.eq(TProportionCheck::getAdminId,admin.getId());
+        }
+        if(type.equals("0")){
+            query.eq(TProportionCheck::getType,type);
+        }
+        if(StringUtils.isNotEmpty(username)){
+            LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+            query1.eq(TAdmin::getUsername,username);
+            List<TAdmin> list = adminService.list(query1);
+            if(list.size()>0){
+                query.eq(TProportionCheck::getAdminId,list.get(0).getId());
+            }
+        }
+        Page<TProportionCheck> page = new Page<>(current, size, true);
+        IPage<TProportionCheck> iPage = tProportionCheckService.page(page, query);
+        return R.ok(iPage);
+
+    }
     @ApiOperation(value = "查找机器分销信息信息")
     @PostMapping("/getOne")
-    public ResponseModel<?> findById(Long adminid, String clientId) {
-        TAdmin admin = adminService.getById(adminid);
-//        if(!admin.getUsername().equals(username)){
-//            return R.fail("username不符合!");
-//        }
+    public ResponseModel<?> getOne(String adminId, String clientId) {
+        TAdmin admin = adminService.getById(adminId);
         LambdaQueryWrapper<TProportion> query = Wrappers.lambdaQuery();
-        query.eq(TProportion::getAdminId,adminid);
+        query.eq(TProportion::getAdminId,adminId);
         query.eq(TProportion::getClientId,clientId);
         List<TProportion> list = tProportionService.list(query);
         if(list.size()>0){
@@ -162,7 +217,7 @@ public class TProportionController {
         if(tProportion.getType()>3){
             //3个
             LambdaQueryWrapper<TAdmin> queryTAdmin2 = Wrappers.lambdaQuery();
-            queryTAdmin2.eq(TAdmin::getUsername,tProportion.getPersonageId());
+            queryTAdmin2.eq(TAdmin::getUsername,tProportion.getPersonageName());
             List<TAdmin> admins2 = adminService.list(queryTAdmin2);
             if(admins2.size()>0){
                 TAdmin tAdmin = admins2.get(0);
@@ -205,6 +260,9 @@ public class TProportionController {
                 proportionCheck.setAgencyProportion(tProportion.getAgencyProportion());
                 proportionCheck.setMerchantProportion(tProportion.getMerchantProportion());
                 proportionCheck.setPersonageProportion(tProportion.getPersonageProportion());
+                proportionCheck.setAgencyName(tProportion.getAgencyName());
+                proportionCheck.setMerchantName(tProportion.getMerchantName());
+                proportionCheck.setPersonageName(tProportion.getPersonageName());
                 proportionCheck.setCreateDate(new Date());
                 proportionCheck.setModifyDate(new Date());
                 proportionCheck.setCheckType("0");
@@ -239,6 +297,9 @@ public class TProportionController {
                 proportionCheck.setAgencyProportion(tProportion.getAgencyProportion());
                 proportionCheck.setMerchantProportion(tProportion.getMerchantProportion());
                 proportionCheck.setPersonageProportion(tProportion.getPersonageProportion());
+                proportionCheck.setAgencyName(tProportion.getAgencyName());
+                proportionCheck.setMerchantName(tProportion.getMerchantName());
+                proportionCheck.setPersonageName(tProportion.getPersonageName());
                 proportionCheck.setCreateDate(new Date());
                 proportionCheck.setModifyDate(new Date());
                 proportionCheck.setCheckType("0");
@@ -251,7 +312,28 @@ public class TProportionController {
 //            tProportionService.save(tProportion);
         }
     }
-
+    @ApiOperation(value = "")
+    @GetMapping("/getById")
+    public ResponseModel<?> getById( String id,String type) {
+        if(StringUtils.isEmpty(id)&&StringUtils.isEmpty(type)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        if(type.equals("0")){
+            //未审核
+            LambdaQueryWrapper<TProportionCheck> query = Wrappers.lambdaQuery();
+                query.eq(TProportionCheck::getId,id);
+            List<TProportionCheck> list = tProportionCheckService.list(query);
+            TProportionCheck tProportionCheck = list.get(0);
+            return R.ok(tProportionCheck);
+        }else {
+            //已审核
+            LambdaQueryWrapper<TProportion> query = Wrappers.lambdaQuery();
+            query.eq(TProportion::getId,id);
+            List<TProportion> list = tProportionService.list(query);
+            TProportion tProportion = list.get(0);
+            return R.ok(tProportion);
+        }
+    }
     @ApiOperation(value = "获取机器分销信息")
     @GetMapping("/getProportion")
     public ResponseModel<TProportion> getProportion(@RequestParam String equipmentId) {

+ 229 - 42
src/main/java/com/szwl/controller/TShandeMchController.java

@@ -1,20 +1,34 @@
 package com.szwl.controller;
 
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.*;
+import com.szwl.model.excel.ShandeMchCompanyListTarget;
+import com.szwl.model.excel.ShandeMchListTarget;
 import com.szwl.service.TAdminService;
 import com.szwl.service.TShandeMchCheckService;
 import com.szwl.service.TShandeMchService;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -36,56 +50,74 @@ public class TShandeMchController {
     @Autowired
     TAdminService adminService;
     @ApiOperation(value = "查找杉德收款账户信息")
-    @PostMapping("/getOne")
-    public ResponseModel<?> findById(Long id, String username) {
-        TAdmin admin = adminService.getById(id);
-        if(!admin.getUsername().equals(username)){
-            return R.fail("username不符合!");
-        }
+    @GetMapping("/getOne")
+    public ResponseModel<?> getOne(String adminId) {
+        TAdmin admin = adminService.getById(adminId);
         LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
-        query.eq(TShandeMch::getAdminId,id);
+        query.eq(TShandeMch::getAdminId,adminId);
         List<TShandeMch> list = tShandeMchService.list(query);
         if(list.size()>0){
-            //已经注册,就要查看是否有提交审核的
-            LambdaQueryWrapper<TShandeMchCheck> query1 = Wrappers.lambdaQuery();
-            query1.eq(TShandeMchCheck::getAdminId,id);
-            List<TShandeMchCheck> list1 = tShandeMchCheckService.list(query1);
-            if(list1.size()>0){
-                int i = 0;
-                for(TShandeMchCheck tShandeMchCheck:list1){
-                    if(tShandeMchCheck.getCheckType().equals("0")||tShandeMchCheck.getCheckType().equals("3")){
-                        i++;
-                    }
-                }
-                if(i==0){
-                    return R.ok(list.get(0));
-                }else {
-                    for(int j=list1.size()-1;j>=0;j--){
-                        if(!list1.get(j).getCheckType().equals("2")&!list1.get(j).getCheckType().equals("1")){
-                            if(list1.get(j).getCheckType().equals("3")){
-                                Date data = new Date();
-                                long time = data.getTime();
-                                long updateTime = list1.get(j).getModifyDate().getTime();
-                                if(3*24*60*60*1000l>time-updateTime){
-                                    //拒绝的审核,超过3天后不显示
-                                    return R.ok(list.get(0));
-                                }else {
-                                    return R.ok(list.get(j));
-                                }
-                            }
-                            return R.ok(list.get(j));
-                        }
-                    }
-                }
-            }else {
-                return R.ok(list.get(0));
-            }
             return R.ok(list.get(0));
+            //已经注册,就要查看是否有提交审核的
+//            LambdaQueryWrapper<TShandeMchCheck> query1 = Wrappers.lambdaQuery();
+//            query1.eq(TShandeMchCheck::getAdminId,adminId);
+//            List<TShandeMchCheck> list1 = tShandeMchCheckService.list(query1);
+//            if(list1.size()>0){
+//                int i = 0;
+//                for(TShandeMchCheck tShandeMchCheck:list1){
+//                    if(tShandeMchCheck.getCheckType().equals("0")||tShandeMchCheck.getCheckType().equals("3")){
+//                        i++;
+//                    }
+//                }
+//                if(i==0){
+//                    return R.ok(list.get(0));
+//                }else {
+//                    for(int j=list1.size()-1;j>=0;j--){
+//                        if(!list1.get(j).getCheckType().equals("2")&!list1.get(j).getCheckType().equals("1")){
+//                            if(list1.get(j).getCheckType().equals("3")){
+//                                Date data = new Date();
+//                                long time = data.getTime();
+//                                long updateTime = list1.get(j).getModifyDate().getTime();
+//                                if(3*24*60*60*1000l>time-updateTime){
+//                                    //拒绝的审核,超过3天后不显示
+//                                    return R.ok(list.get(0));
+//                                }else {
+//                                    return R.ok(list.get(j));
+//                                }
+//                            }
+//                            return R.ok(list.get(j));
+//                        }
+//                    }
+//                }
+//            }else {
+//                return R.ok(list.get(0));
+//            }
+//            return R.ok(list.get(0));
         }else {
             return R.fail("尚未注册!");
         }
     }
-
+    @ApiOperation(value = "获取杉德分账信息列表 分页")
+    @GetMapping("/pageShandeMch")
+    public ResponseModel<IPage<?>> pageShandeMch(String username, String type, long current, long size ){
+        LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(type)){
+            query.eq(TShandeMch::getType,type);
+        }else {
+            query.eq(TShandeMch::getType,"0");
+        }
+        if(StringUtils.isNotEmpty(username)){
+            LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+            query1.eq(TAdmin::getUsername,username);
+            List<TAdmin> list = adminService.list(query1);
+            if(list.size()>0){
+                query.eq(TShandeMch::getAdminId,list.get(0).getId());
+            }
+        }
+        Page<TShandeMch> page = new Page<>(current, size, true);
+        IPage<TShandeMch> iPage = tShandeMchService.page(page, query);
+        return R.ok(iPage);
+    }
     @ApiOperation(value = "保存或提交审核")
     @PostMapping("/save")
     public ResponseModel<?> save(@RequestBody TShandeMch tShandeMch) {
@@ -149,7 +181,57 @@ public class TShandeMchController {
         TShandeMch shandeMch = list.get(0);
         return R.ok(shandeMch);
     }
+    @ApiOperation(value = "结算处理")
+    @GetMapping("/jiesuan")
+    public ResponseModel<?> jiesuan(String username, String type, String namelist) {
+        if(StringUtils.isEmpty(type)){
+            return R.fail(ResponseCodesEnum.A0100);        }
+        LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
+        query.eq(TShandeMch::getType,type);
+        if(StringUtils.isNotEmpty(username)){
+            LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+            query1.eq(TAdmin::getUsername,username);
+            List<TAdmin> list = adminService.list(query1);
+            if(list.size()>0){
+                query.eq(TShandeMch::getAdminId,list.get(0).getId());
+            }
+        }
+        if(StringUtils.isNotEmpty(namelist)){
+            String[] names = namelist.split(",");
+            List<Long> ids = new ArrayList<>();
+            if(names.length>0){
+                for(int i=0;i<namelist.length();i++){
+                    LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+                    query1.eq(TAdmin::getUsername,username);
+                    List<TAdmin> list = adminService.list(query1);
+                    if(list.size()>0){
+                        ids.add(list.get(0).getId());
+                    }
+                }
+            }
+            if(ids.size()>0){
+                query.notIn(TShandeMch::getAdminId,ids);
+            }
+        }
+        List<TShandeMch> list = tShandeMchService.list(query);
+        for(TShandeMch shandeMch:list){
+            BigDecimal settleableBalance = shandeMch.getSettleableBalance();
+            if(settleableBalance!=null&&settleableBalance.compareTo(new BigDecimal(0))>0){
+                shandeMch.setSettleableDate(new Date());
+                BigDecimal totalSettleableBalance = shandeMch.getTotalSettleableBalance();
+                if(totalSettleableBalance!=null){
+                    shandeMch.setTotalSettleableBalance(settleableBalance.add(totalSettleableBalance));
+                }else {
+                    shandeMch.setTotalSettleableBalance(settleableBalance);
+                }
+                shandeMch.setSettleableBalance(new BigDecimal(0));
+                shandeMch.setLastSettleableBalance(settleableBalance);
+                tShandeMchService.updateById(shandeMch);
+            }
+        }
 
+        return R.ok();
+    }
     @ApiOperation(value = "ClientId查找设备")
     @GetMapping("/updateShandeMch")
     public void updateShandeMch(@RequestBody TShandeMch shandeMch) {
@@ -158,5 +240,110 @@ public class TShandeMchController {
             tShandeMchService.updateById(shandeMch);
         }
     }
+
+    @ApiOperation(value = "结算处理")
+    @GetMapping("/shandeMchListExport")
+    public ResponseModel<?> shandeMchListExport(HttpServletResponse response, String username, String type, String namelist) {
+        if(StringUtils.isEmpty(type)){
+            return R.fail(ResponseCodesEnum.A0100);
+        }
+        LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
+        query.eq(TShandeMch::getType,type);
+        if(StringUtils.isNotEmpty(username)){
+            LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+            query1.eq(TAdmin::getUsername,username);
+            List<TAdmin> list = adminService.list(query1);
+            if(list.size()>0){
+                query.eq(TShandeMch::getAdminId,list.get(0).getId());
+            }
+        }
+        if(StringUtils.isNotEmpty(namelist)){
+            String[] names = namelist.split(",");
+            List<Long> ids = new ArrayList<>();
+            if(names.length>0){
+                for(int i=0;i<namelist.length();i++){
+                    LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+                    query1.eq(TAdmin::getUsername,username);
+                    List<TAdmin> list = adminService.list(query1);
+                    if(list.size()>0){
+                        ids.add(list.get(0).getId());
+                    }
+                }
+            }
+            if(ids.size()>0){
+                query.notIn(TShandeMch::getAdminId,ids);
+            }
+        }
+        List<TShandeMch> list = tShandeMchService.list(query);
+        ExportParams exportParams = new ExportParams(null, "sheet1");
+        Workbook workbook = null;
+        //账号类型  0:对公   1:私人
+        if(type.equals("0")){
+            List<ShandeMchCompanyListTarget> shandeMchCompanyListTargets = new ArrayList<>();
+            int i = 0;
+            for(TShandeMch shandeMch: list){
+                BigDecimal settleableBalance = shandeMch.getSettleableBalance();
+                if(settleableBalance.compareTo(new BigDecimal(0))== 1){
+                    i++;
+                    ShandeMchCompanyListTarget shandeMchCompanyListTarget = new ShandeMchCompanyListTarget();
+                    shandeMchCompanyListTarget.setBankName(shandeMch.getBankName());
+                    shandeMchCompanyListTarget.setBankNo(shandeMch.getBankNo());
+                    shandeMchCompanyListTarget.setSettleableBalance(String.valueOf(shandeMch.getSettleableBalance()));
+                    shandeMchCompanyListTarget.setNo(String.valueOf(i));
+                    shandeMchCompanyListTarget.setBankChannelName(shandeMch.getBankChannelName());
+                    shandeMchCompanyListTarget.setBankChannelNo(shandeMch.getBankChannelNo());
+                    shandeMchCompanyListTargets.add(shandeMchCompanyListTarget);
+                }
+
+            }
+            workbook = ExcelExportUtil.exportExcel(exportParams, ShandeMchCompanyListTarget.class, shandeMchCompanyListTargets);
+        }
+        if(type.equals("1")){
+            List<ShandeMchListTarget> shandeMchListTargetList = new ArrayList<>();
+            int i = 0;
+            for(TShandeMch shandeMch: list){
+                BigDecimal settleableBalance = shandeMch.getSettleableBalance();
+                if(settleableBalance.compareTo(new BigDecimal(0))== 1){
+                    i++;
+                    ShandeMchListTarget shandeMchListTarget = new ShandeMchListTarget();
+                    shandeMchListTarget.setBankName(shandeMch.getBankName());
+                    shandeMchListTarget.setBankNo(shandeMch.getBankNo());
+                    shandeMchListTarget.setSettleableBalance(String.valueOf(shandeMch.getSettleableBalance()));
+                    shandeMchListTarget.setNo(String.valueOf(i));
+                    shandeMchListTargetList.add(shandeMchListTarget);
+                }
+
+            }
+            workbook = ExcelExportUtil.exportExcel(exportParams, ShandeMchListTarget.class, shandeMchListTargetList);
+        }
+        if (workbook != null) {
+            OutputStream os = null;
+            try {
+                os = response.getOutputStream();
+                SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日HHmmss");
+                response.setContentType("application/vnd.ms-excel;charset=utf-8");
+                if(type.equals("0")){
+                    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("对公账户" + format.format(new Date()) + ".xls", "UTF-8"));
+                }else {
+                    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("个人账号" + format.format(new Date()) + ".xls", "UTF-8"));
+                }
+//                    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
+                workbook.write(os);
+                return  R.ok("导出成功");
+            } catch (Exception e) {
+                e.printStackTrace();
+                return  R.fail("导出错误");
+            } finally {
+                try {
+                    os.close();
+                    workbook.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+        return R.ok();
+    }
 }
 

+ 2 - 2
src/main/java/com/szwl/controller/TTimeRuleController.java

@@ -49,8 +49,8 @@ public class TTimeRuleController {
     private static final String[] times = {"0-1", "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8",
             "8-9", "9-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-20"
             , "20-21", "21-22", "22-23", "23-24"};
-    @GetMapping("/pageAd")
-    public ResponseModel<IPage<?>> pageAd(long current, long size ) {
+    @GetMapping("/pageTimeRule")
+    public ResponseModel<IPage<?>> pageTimeRule(long current, long size ) {
         LambdaQueryWrapper<TTimeRule> query = Wrappers.lambdaQuery();
         Page<TTimeRule> page = new Page<>(current, size, true);
         IPage<TTimeRule> iPage = timeRuleService.page(page, query);

+ 1 - 1
src/main/java/com/szwl/model/entity/TAdmin.java

@@ -40,7 +40,7 @@ public class TAdmin implements Serializable {
     @ApiModelProperty(value = "邮箱;")
     private String email;
 
-    @ApiModelProperty(value = "设置是否普通管理员(0:管理员,1:子账户);")
+    @ApiModelProperty(value = "设置是否普通管理员(1:管理员,0:子账户);")
     private Boolean isAdmined;
 
     @ApiModelProperty(value = "是否启用;")

+ 4 - 1
src/main/java/com/szwl/model/entity/TJoinpayMch.java

@@ -135,6 +135,9 @@ public class TJoinpayMch implements Serializable {
     private String approveStatus;
 
     private String type;
-
+    /**
+     * 步骤  0:图片未上传  1:图片已上传
+     */
+    private String step;
 
 }

+ 4 - 2
src/main/java/com/szwl/model/entity/TJoinpayMchCheck.java

@@ -103,6 +103,8 @@ public class TJoinpayMchCheck implements Serializable {
      * 审核状态  0:未审核  1:通过  2:取消  3:不通过
      */
     private String type;
-
-
+    /**
+     * 步骤  0:图片未上传  1:图片已上传
+     */
+    private String step;
 }

+ 119 - 0
src/main/java/com/szwl/model/excel/ShandeMchCompanyListTarget.java

@@ -0,0 +1,119 @@
+package com.szwl.model.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+
+//订单导出
+public class ShandeMchCompanyListTarget {
+
+    /**
+     *
+     */
+    @Excel(name = "序号(选填)", width = 20.0D)
+    private String no;
+
+    /**
+     *
+     */
+    @Excel(name = "收款方名称(必填)", width = 35.0D)
+    private String bankName;
+
+    /**
+     *
+     */
+    @Excel(name = "收款方对公银行账号(必填)", width = 35.0D)
+    private String bankNo;
+
+    /**
+     *收款方账户联行号(必填)
+     */
+    @Excel(name = "收款方账户联行号(必填)", width = 30.0D)
+    private String bankChannelNo;
+
+    /**
+     *收款方账户联行号(必填)
+     */
+    @Excel(name = "收款方账户开户行(必填,精确到支行)", width = 40.0D)
+    private String bankChannelName;
+
+    /**
+     *
+     */
+    @Excel(name = "金额(必填,单位:元)", width = 20.0D)
+    private String settleableBalance;
+
+    /**
+     *
+     */
+    @Excel(name = "附言(选填)", width = 20.0D)
+    private String zengyan;
+
+    /**
+     *
+     */
+    @Excel(name = "收款人手机号(选填)", width = 20.0D)
+    private String phone;
+
+    public String getNo() {
+        return no;
+    }
+
+    public void setNo(String no) {
+        this.no = no;
+    }
+
+    public String getBankName() {
+        return bankName;
+    }
+
+    public void setBankName(String bankName) {
+        this.bankName = bankName;
+    }
+
+    public String getBankNo() {
+        return bankNo;
+    }
+
+    public void setBankNo(String bankNo) {
+        this.bankNo = bankNo;
+    }
+
+    public String getSettleableBalance() {
+        return settleableBalance;
+    }
+
+    public void setSettleableBalance(String settleableBalance) {
+        this.settleableBalance = settleableBalance;
+    }
+
+    public String getZengyan() {
+        return zengyan;
+    }
+
+    public void setZengyan(String zengyan) {
+        this.zengyan = zengyan;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getBankChannelNo() {
+        return bankChannelNo;
+    }
+
+    public void setBankChannelNo(String bankChannelNo) {
+        this.bankChannelNo = bankChannelNo;
+    }
+
+    public String getBankChannelName() {
+        return bankChannelName;
+    }
+
+    public void setBankChannelName(String bankChannelName) {
+        this.bankChannelName = bankChannelName;
+    }
+}

+ 91 - 0
src/main/java/com/szwl/model/excel/ShandeMchListTarget.java

@@ -0,0 +1,91 @@
+package com.szwl.model.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+
+//订单导出
+public class ShandeMchListTarget {
+
+    /**
+     *
+     */
+    @Excel(name = "序号(选填)", width = 20.0D)
+    private String no;
+
+    /**
+     *
+     */
+    @Excel(name = "收款方名称(必填)", width = 30.0D)
+    private String bankName;
+
+    /**
+     *
+     */
+    @Excel(name = "收款方杉德宝账号(必填)", width = 30.0D)
+    private String bankNo;
+
+    /**
+     *
+     */
+    @Excel(name = "金额(必填,单位:元)", width = 20.0D)
+    private String settleableBalance;
+
+    /**
+     *
+     */
+    @Excel(name = "转账附言(选填)", width = 20.0D)
+    private String zengyan;
+
+    /**
+     *
+     */
+    @Excel(name = "收款人手机号(选填)", width = 20.0D)
+    private String phone;
+
+    public String getNo() {
+        return no;
+    }
+
+    public void setNo(String no) {
+        this.no = no;
+    }
+
+    public String getBankName() {
+        return bankName;
+    }
+
+    public void setBankName(String bankName) {
+        this.bankName = bankName;
+    }
+
+    public String getBankNo() {
+        return bankNo;
+    }
+
+    public void setBankNo(String bankNo) {
+        this.bankNo = bankNo;
+    }
+
+    public String getSettleableBalance() {
+        return settleableBalance;
+    }
+
+    public void setSettleableBalance(String settleableBalance) {
+        this.settleableBalance = settleableBalance;
+    }
+
+    public String getZengyan() {
+        return zengyan;
+    }
+
+    public void setZengyan(String zengyan) {
+        this.zengyan = zengyan;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}

+ 6 - 0
src/main/java/com/szwl/model/param/AddLoginUserParam.java

@@ -28,6 +28,12 @@ public class AddLoginUserParam {
     @ApiModelProperty(value = "邮箱")
     private String email;
 
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "当前登录账户id")
+    private Long adminId;
+
     @NotNull
     @ApiModelProperty(value = "是否启用")
     private Boolean isEnabled;

+ 8 - 0
src/main/java/com/szwl/service/TJoinpayMchService.java

@@ -26,5 +26,13 @@ public interface TJoinpayMchService extends MyIService<TJoinpayMch> {
                          String isShowPic , String openId , String authCode , String appid , String transactionModel , String tradeMerchantNo ,
                          String buyerId , String isAlt , String altType , JSONArray altInfo , String altUrl , BigDecimal marketingAmount) throws UnsupportedEncodingException;
 
+    /**
+     *   协议内容签约接口
+     * @return : Constant.correct_code=成功,其他String表示错误信息
+     */
+    String altMchSign(TJoinpayMch mch);
 
+    String sendCard(TJoinpayMch mch, String cardPositive, String cardNegative, String status);
+
+    String sendCardBusiness(TJoinpayMch mch, String cardPositive, String cardNegative, String tradeLicence, String openAccountLicence, String status);
 }

+ 272 - 0
src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java

@@ -29,6 +29,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -324,6 +325,277 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         return Constant.correct_code;
     }
 
+    //  协议内容签约接口
+    @Override
+    public String altMchSign(TJoinpayMch mch) {
+
+        String url = "https://www.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAltMchNo())){
+            return "找不到商家编号";
+        }
+        Date currentTime = new Date();
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String dateString = formatter.format(currentTime);
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAltMchNo());
+        requestData.put("sign_status" , "P1000");
+        requestData.put("sign_time" , dateString);
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altMchSign.sign");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+//            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+                if(JoinpayConstant.resp_code2.equals(resp_code)){
+                    org.json.JSONObject data = jsonObject.getJSONObject("data");
+                    if(data.has("biz_msg")){
+                        return data.getString("biz_msg");
+                    }else{
+                        return JoinpayConstant.resp_code.get(resp_code);
+                    }
+                }
+            }else{
+                return "请求失败";
+            }
+
+
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                if(biz_code.equals("B100000")){
+                    String sign_trx_no = data.getString("sign_trx_no");
+                    String sign_status = data.getString("sign_status");
+                    if(sign_status.equals("P1000")){
+                        sign_status="签约成功";
+                    }else {
+                        sign_status="签约失败";
+                    }
+                    mch.setSignStatus(sign_status);
+                    mch.setSignTrxNo(sign_trx_no);
+                    back = sign_status;
+
+                }
+                updateById(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+
+    /**
+     * 传送身份证图片
+     * @param
+     * @return
+     */
+    @Override
+    public String sendCard(TJoinpayMch mch,String cardPositive,String cardNegative,String staus) {
+
+//        String url = "https://www.joinpay.com/allocFunds";
+        String url = "https://upload.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAltMchNo())){
+            return "找不到商家编号";
+        }
+//        String card_positive = ImageToBase64ByLocal(cardPositive);
+        String card_positive = cardPositive;
+//        String card_negative = ImageToBase64ByLocal(cardNegative);
+        String card_negative = cardNegative;
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAltMchNo());
+        requestData.put("card_positive" , card_positive);
+        requestData.put("card_negative" , card_negative);
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        if(staus.equals("0")){
+            requestJson.put("method", "altMchPics.uploadPic");
+        }else{
+            requestJson.put("method", "altMchPics.modifyPic");
+        }
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+//            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+            }else{
+                return "请求失败";
+            }
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                if(biz_code.equals("B100000")){
+                    String approve_status = "审核中";
+                    mch.setApproveStatus(approve_status);
+                    mch.setApproveNote("");
+                    mch.setStep("1");
+                    back = approve_status;
+                }
+                if(biz_code.equals("B100002")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApproveNote(approve_note);
+                    mch.setApproveStatus(approve_status);
+                    back = approve_status;
+                }
+                if(biz_code.equals("B101017")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApproveNote(approve_note);
+                    mch.setApproveStatus(approve_status);
+                    back = approve_status;
+                }
+                updateById(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+    /**
+     * 传送身份证图片
+     * @param
+     * @return
+     */
+    @Override
+    public String sendCardBusiness(TJoinpayMch mch, String cardPositive, String cardNegative, String tradeLicence, String openAccountLicence,String staus) {
+
+//        String url = "https://www.joinpay.com/allocFunds";
+        String url = "https://upload.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAltMchNo())){
+            return "找不到商家编号";
+        }
+//        String card_positive = ImageToBase64ByLocal(cardPositive);
+        String card_positive = cardPositive;
+//        String card_negative = ImageToBase64ByLocal(cardNegative);
+        String card_negative = cardNegative;
+        String trade_licence = tradeLicence;
+        String open_account_licence = openAccountLicence;
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAltMchNo());
+        requestData.put("card_positive" , card_positive);
+        requestData.put("card_negative" , card_negative);
+        requestData.put("trade_licence" , trade_licence);
+        requestData.put("open_account_licence" , open_account_licence);
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        if(staus.equals("0")){
+            requestJson.put("method", "altMchPics.uploadPic");
+            // 格式为16 位随机字符串:16 位随机字符串
+//            String aes_key1 = getRandomString(16);
+//            String aes_key2 = getRandomString(16);
+//            requestJson.put("aes_key", RSAUtil.encrypt(aes_key1+":"+aes_key2 , JoinpayConstant.publickey ));
+        }else{
+            requestJson.put("method", "altMchPics.modifyPic");
+        }
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+        String s = requestJson.toString();
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+//            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+            }else{
+                return "请求失败";
+            }
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                if(biz_code.equals("B100000")){
+                    String approve_status = "审核中";
+                    mch.setApproveStatus(approve_status);
+                    mch.setApproveNote("");
+                    back = approve_status;
+                    mch.setStep("1");
+                }
+                if(biz_code.equals("B100002")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApproveNote(approve_note);
+                    mch.setApproveStatus(approve_status);
+                    back = approve_status;
+                }
+                if(biz_code.equals("B101017")){
+                    String approve_status = "上传失败";
+                    String approve_note = data.getString("biz_msg");
+                    mch.setApproveNote(approve_note);
+                    mch.setApproveStatus(approve_status);
+                    back = approve_status;
+                }
+                updateById(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+
+
     /**
      * 获取随机字符串
      * @return