package com.stylefeng.guns.modular.system.controller.general; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.base.tips.ErrorTip; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.cloudPayment.example.MchApplicationExample; import com.stylefeng.guns.modular.huifu.biz.DouGongBasicDataBiz; import com.stylefeng.guns.modular.system.controller.util.Base64Util; import com.stylefeng.guns.modular.system.model.TBank; import com.stylefeng.guns.modular.system.model.TBankNext; import com.stylefeng.guns.modular.system.model.TImgMid; import com.stylefeng.guns.modular.system.model.TRegion; import com.stylefeng.guns.modular.system.service.ITBankNextService; import com.stylefeng.guns.modular.system.service.ITBankService; import com.stylefeng.guns.modular.system.service.ITImgMidService; import com.stylefeng.guns.modular.system.service.ITRegionService; import com.unionpay.upyzt.exception.UpyztException; import com.unionpay.upyzt.resp.MchApplicationResp; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.beans.factory.annotation.Autowired; import com.stylefeng.guns.core.log.LogObjectHolder; import org.springframework.web.bind.annotation.RequestParam; import com.stylefeng.guns.modular.system.model.TEnterpriseWithdrawal; import com.stylefeng.guns.modular.system.service.ITEnterpriseWithdrawalService; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /** * 控制器 * * @author fengshuonan * @Date 2023-03-17 15:33:03 */ @Controller @RequestMapping("/tEnterpriseWithdrawal") public class TEnterpriseWithdrawalController extends BaseController { private String PREFIX = "/system/tEnterpriseWithdrawal/"; @Autowired private ITEnterpriseWithdrawalService tEnterpriseWithdrawalService; @Autowired private ITBankService bankService; @Autowired private ITBankNextService bankNextService; @Autowired private ITRegionService tRegionService; @Autowired private DouGongBasicDataBiz douGongBasicDataBiz; /** * 跳转到首页 */ @RequestMapping("") public String index(Model model) throws UpyztException { TEnterpriseWithdrawal companyId = tEnterpriseWithdrawalService.selectOne(new EntityWrapper().eq("companyId", ShiroKit.getUser().getObjectId())); List provinceList = tRegionService.selectList(new EntityWrapper().eq("parent_id", 0)); model.addAttribute("provinceList",provinceList); if(companyId!=null){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); model.addAttribute("item",companyId); model.addAttribute("time1",companyId.getBusinessExpireTime().split(",")[0]); model.addAttribute("time11",companyId.getBusinessExpireTime().split(",")[1]); model.addAttribute("time2",companyId.getUnifiedSocialCreditCodeExpireTime().split(",")[0]); model.addAttribute("time22",companyId.getUnifiedSocialCreditCodeExpireTime().split(",")[1]); model.addAttribute("time3",companyId.getCertificateExpireTime().split(",")[0]); model.addAttribute("time33",companyId.getCertificateExpireTime().split(",")[1]); String depositBank = companyId.getDepositBank(); TBankNext tBankNext = bankNextService.selectById(depositBank); TBank bankCode = bankService.selectOne(new EntityWrapper().eq("bankCode", tBankNext.getDrecCode())); model.addAttribute("bank",bankCode.getBankName()); model.addAttribute("bankNext",tBankNext.getBankName()); model.addAttribute("bankCode",bankCode.getBankCode()); model.addAttribute("bankNextCode",tBankNext.getId()); String businessLicenseProvinceCode = companyId.getBusinessLicenseProvinceCode(); TRegion province = tRegionService.selectOne(new EntityWrapper().eq("code", businessLicenseProvinceCode)); if (Objects.nonNull(province)) { List cityList = tRegionService.selectList(new EntityWrapper().eq("parent_id", province.getId())); model.addAttribute("cityList", cityList); String businessLicenseCityCode = companyId.getBusinessLicenseCityCode(); TRegion city = tRegionService.selectOne(new EntityWrapper().eq("code", businessLicenseCityCode)); if (Objects.nonNull(city)) { List districtList = tRegionService.selectList(new EntityWrapper().eq("parent_id", city.getId())); model.addAttribute("districtList", districtList); } } if("auditing".equals(companyId.getApplicationStatus()) || "".equals(companyId.getApplicationStatus())){ return PREFIX + "tEnterpriseWithdrawal_detail.html"; }else if("account_need_verify".equals(companyId.getApplicationStatus())){ model.addAttribute("bank",bankService.selectList(null)); model.addAttribute("bankOne",bankNextService.selectList(null)); MchApplicationResp mchApplicationResp = MchApplicationExample.retrieveById(companyId.getMchApplicationId()); System.out.println(mchApplicationResp); String type = mchApplicationResp.getAcctValidation().getType(); model.addAttribute("type",Integer.valueOf(type)); if("1".equals(type)){ model.addAttribute("money",mchApplicationResp.getAcctValidation().getPayAmount()); model.addAttribute("no",mchApplicationResp.getAcctValidation().getDestAcctNo()); } return PREFIX + "tEnterpriseWithdrawal_edit.html"; }else if("succeeded".equals(companyId.getApplicationStatus())){ model.addAttribute("bank",bankService.selectList(null)); model.addAttribute("bankOne",bankNextService.selectList(null)); model.addAttribute("type",3); return PREFIX + "tEnterpriseWithdrawal_edit.html"; }else { model.addAttribute("bankOne",bankNextService.selectList(null)); model.addAttribute("bank",bankService.selectList(null)); return PREFIX + "tEnterpriseWithdrawal_fail.html"; } }else { model.addAttribute("item",new TEnterpriseWithdrawal()); model.addAttribute("bank",bankService.selectList(null)); return PREFIX + "tEnterpriseWithdrawal_add.html"; } } /** * 跳转到添加 */ @RequestMapping("/tEnterpriseWithdrawal_add") public String tEnterpriseWithdrawalAdd() { return PREFIX + "tEnterpriseWithdrawal_add.html"; } /** * 跳转到修改 */ @RequestMapping("/tEnterpriseWithdrawal_update/{tEnterpriseWithdrawalId}") public String tEnterpriseWithdrawalUpdate(@PathVariable Integer tEnterpriseWithdrawalId, Model model) { TEnterpriseWithdrawal tEnterpriseWithdrawal = tEnterpriseWithdrawalService.selectById(tEnterpriseWithdrawalId); model.addAttribute("item",tEnterpriseWithdrawal); LogObjectHolder.me().set(tEnterpriseWithdrawal); return PREFIX + "tEnterpriseWithdrawal_edit.html"; } /** * 获取列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { return tEnterpriseWithdrawalService.selectList(null); } @RequestMapping(value = "/cityList") @ResponseBody public Object cityList(String code,String name) { return bankNextService.selectList(new EntityWrapper().eq("drecCode",code).like("bankName",name)); } @Resource private ITImgMidService itImgMidService; /** * 新增 */ @RequestMapping(value = "/add") @ResponseBody @Transactional(readOnly = false,propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public Object add(TEnterpriseWithdrawal tEnterpriseWithdrawal,Integer accountType,String code,String businessExpireTimeOne,String unifiedSocialCreditCodeExpireTimeOne,String certificateExpireTimeOne) { tEnterpriseWithdrawal.setCode(code); List companyId = tEnterpriseWithdrawalService.selectList(new EntityWrapper().eq("companyId", ShiroKit.getUser().getObjectId())); if(companyId.size()>0){ return "5001"; } if(ToolUtil.isNotEmpty(businessExpireTimeOne)){ tEnterpriseWithdrawal.setBusinessExpireTime(tEnterpriseWithdrawal.getBusinessExpireTime()+","+businessExpireTimeOne); }else { tEnterpriseWithdrawal.setBusinessExpireTime(tEnterpriseWithdrawal.getBusinessExpireTime()+",长期"); } if(ToolUtil.isNotEmpty(unifiedSocialCreditCodeExpireTimeOne)){ tEnterpriseWithdrawal.setUnifiedSocialCreditCodeExpireTime(tEnterpriseWithdrawal.getUnifiedSocialCreditCodeExpireTime()+","+unifiedSocialCreditCodeExpireTimeOne); }else { tEnterpriseWithdrawal.setUnifiedSocialCreditCodeExpireTime(tEnterpriseWithdrawal.getUnifiedSocialCreditCodeExpireTime()+",长期"); } if(ToolUtil.isNotEmpty(certificateExpireTimeOne)){ tEnterpriseWithdrawal.setCertificateExpireTime(tEnterpriseWithdrawal.getCertificateExpireTime()+","+certificateExpireTimeOne); }else { tEnterpriseWithdrawal.setCertificateExpireTime(tEnterpriseWithdrawal.getCertificateExpireTime()+",长期"); } tEnterpriseWithdrawal.setIsAudit(1); tEnterpriseWithdrawal.setCompanyId(ShiroKit.getUser().getObjectId()); tEnterpriseWithdrawal.setAccountType(accountType); String randomString = ToolUtil.getRandomString(32); tEnterpriseWithdrawal.setOutRequestNo(randomString); if(tEnterpriseWithdrawal.getEnterpriseType()==1){ tEnterpriseWithdrawal.setAccountType(2); } try { String depositBank = tEnterpriseWithdrawal.getDepositBank(); TBankNext tBankNext = bankNextService.selectById(depositBank); tEnterpriseWithdrawal.setBankCode(tBankNext.getDrecCode()); tEnterpriseWithdrawal.setBankBranchCode(tBankNext.getBankCode()); tEnterpriseWithdrawal.setCopy1(itImgMidService.selectOne(new EntityWrapper().eq("url",tEnterpriseWithdrawal.getBusinessLicense())).getMid()); tEnterpriseWithdrawal.setCopy2(itImgMidService.selectOne(new EntityWrapper().eq("url",tEnterpriseWithdrawal.getCorporateIdCardFrontPicture())).getMid()); tEnterpriseWithdrawal.setCopy3(itImgMidService.selectOne(new EntityWrapper().eq("url",tEnterpriseWithdrawal.getCorporateIdCardReversePicture())).getMid()); System.out.println("----------"+"进件gogogo"+"----------"); //MchApplicationStoreResp mchApplicationStoreResp = MchApplicationExample.create(tEnterpriseWithdrawal); Map resultMap = douGongBasicDataBiz.userBasicDataEnt(tEnterpriseWithdrawal); String respCode = (String) resultMap.get("resp_code"); if(!"00000000".equals(respCode)) { return new ErrorTip(500, (String) resultMap.get("resp_desc")); } Map map = douGongBasicDataBiz.entBusinessOpen(tEnterpriseWithdrawal); if(!"00000000".equals(map.get("resp_code"))) { return new ErrorTip(500, (String) resultMap.get("resp_desc")); } tEnterpriseWithdrawal.setHuifuId((String) resultMap.get("huifu_id")); tEnterpriseWithdrawal.setTokenNo((String) map.get("token_no")); tEnterpriseWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(tEnterpriseWithdrawal.getTransactionAuthorizationCode())); tEnterpriseWithdrawal.setBusinessLicense(tEnterpriseWithdrawal.getBusinessLicense()); tEnterpriseWithdrawal.setCorporateIdCardFrontPicture(tEnterpriseWithdrawal.getCorporateIdCardFrontPicture()); tEnterpriseWithdrawal.setCorporateIdCardReversePicture(tEnterpriseWithdrawal.getCorporateIdCardReversePicture()); tEnterpriseWithdrawal.setApplicationStatus("auditing"); tEnterpriseWithdrawalService.insert(tEnterpriseWithdrawal); return SUCCESS_TIP; }catch (UpyztException e){ e.printStackTrace(); return e.getIssue(); } catch (Exception e) { e.printStackTrace(); return ERROR; } } /** * 删除 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer tEnterpriseWithdrawalId) { tEnterpriseWithdrawalService.deleteById(tEnterpriseWithdrawalId); return SUCCESS_TIP; } /** * 修改 */ @RequestMapping(value = "/update") @ResponseBody public Object update(TEnterpriseWithdrawal tEnterpriseWithdrawal,Integer accountType,String businessExpireTimeOne,String unifiedSocialCreditCodeExpireTimeOne,String certificateExpireTimeOne) { tEnterpriseWithdrawal.setIsAudit(1); tEnterpriseWithdrawal.setAccountType(accountType); if(tEnterpriseWithdrawal.getEnterpriseType()==1){ tEnterpriseWithdrawal.setAccountType(2); } if(ToolUtil.isNotEmpty(businessExpireTimeOne)){ tEnterpriseWithdrawal.setBusinessExpireTime(tEnterpriseWithdrawal.getBusinessExpireTime()+","+businessExpireTimeOne); }else { tEnterpriseWithdrawal.setBusinessExpireTime(tEnterpriseWithdrawal.getBusinessExpireTime()+",长期"); } if(ToolUtil.isNotEmpty(unifiedSocialCreditCodeExpireTimeOne)){ tEnterpriseWithdrawal.setUnifiedSocialCreditCodeExpireTime(tEnterpriseWithdrawal.getUnifiedSocialCreditCodeExpireTime()+","+unifiedSocialCreditCodeExpireTimeOne); }else { tEnterpriseWithdrawal.setUnifiedSocialCreditCodeExpireTime(tEnterpriseWithdrawal.getUnifiedSocialCreditCodeExpireTime()+",长期"); } if(ToolUtil.isNotEmpty(certificateExpireTimeOne)){ tEnterpriseWithdrawal.setCertificateExpireTime(tEnterpriseWithdrawal.getCertificateExpireTime()+","+certificateExpireTimeOne); }else { tEnterpriseWithdrawal.setCertificateExpireTime(tEnterpriseWithdrawal.getCertificateExpireTime()+",长期"); } try { Map map = douGongBasicDataBiz.userBasicDataEntModify(tEnterpriseWithdrawal); if(!"00000000".equals(map.get("resp_code"))) { return new ErrorTip(500, (String) map.get("resp_desc")); } TEnterpriseWithdrawal enterpriseWithdrawal = tEnterpriseWithdrawalService.selectById(tEnterpriseWithdrawal.getId()); //MchApplicationResp mchApplicationResp = MchApplicationExample.retrieveById(enterpriseWithdrawal.getMchApplicationId()); //System.err.println(mchApplicationResp); //if(enterpriseWithdrawal.getMchId()!=null){ // tEnterpriseWithdrawal.setMchId(enterpriseWithdrawal.getMchId()); //}else { // tEnterpriseWithdrawal.setMchId(mchApplicationResp.getMchId()); //} tEnterpriseWithdrawal.setOutRequestNo(ToolUtil.getRandomString(32)); //String copy1 = tEnterpriseWithdrawalService.getmid(tEnterpriseWithdrawal.getCorporateIdCardFrontPicture()); //String copy2 = tEnterpriseWithdrawalService.getmid(tEnterpriseWithdrawal.getCorporateIdCardReversePicture()); //String copy3 = tEnterpriseWithdrawalService.getmid(tEnterpriseWithdrawal.getBusinessLicense()); //tEnterpriseWithdrawal.setCopy1(copy3); //tEnterpriseWithdrawal.setCopy2(copy1); //tEnterpriseWithdrawal.setCopy3(copy2); tEnterpriseWithdrawal.setBankBranchCode(tEnterpriseWithdrawal.getBankBranchCode()); String depositBank = tEnterpriseWithdrawal.getDepositBank(); TBankNext tBankNext = bankNextService.selectById(depositBank); tEnterpriseWithdrawal.setBankCode(tBankNext.getDrecCode()); tEnterpriseWithdrawal.setBankBranchCode(tBankNext.getBankCode()); //MchApplicationResp renew = MchApplicationExample.renew(tEnterpriseWithdrawal); //tEnterpriseWithdrawal.setOutRequestNo(renew.getOutRequestNo()); //tEnterpriseWithdrawal.setMchApplicationId(renew.getMchApplicationId()); Map resultMap = douGongBasicDataBiz.entBusinessOpenModify(tEnterpriseWithdrawal); if(!"00000000".equals(resultMap.get("resp_code"))) { return new ErrorTip(500, (String) map.get("resp_desc")); } tEnterpriseWithdrawalService.updateById(tEnterpriseWithdrawal); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } /** * 详情 */ @RequestMapping(value = "/detail/{tEnterpriseWithdrawalId}") @ResponseBody public Object detail(@PathVariable("tEnterpriseWithdrawalId") Integer tEnterpriseWithdrawalId) { return tEnterpriseWithdrawalService.selectById(tEnterpriseWithdrawalId); } @RequestMapping(value = "/change") @ResponseBody public Object change(@RequestParam Integer code) { List list = new ArrayList<>(); if (SinataUtil.isNotEmpty(code)){ TRegion region = tRegionService.selectOne(new EntityWrapper().eq("code", code)); if (Objects.nonNull(region)) { list = tRegionService.selectList(new EntityWrapper().eq("parent_id", region.getId())); } } return list; } }