Search in sources :

Example 1 with MakeSealServer

use of com.itrus.portal.db.MakeSealServer in project portal by ixinportal.

the class BillWebController method makeSeal.

/**
 * 获取签章模版信息
 *
 * @param billId
 * @param uiModel
 * @throws EncDecException
 * @throws Exception
 */
private void makeSeal(Long billId, Model uiModel) throws EncDecException, Exception {
    // 获取签章模版
    Bill bill = sqlSession.selectOne("com.itrus.portal.db.BillMapper.selectByPrimaryKey", billId);
    // 查询项目产品
    Product product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", bill.getProduct());
    if (null == product.getMakeSealServer() || product.getMakeSealServer() <= 0) {
        // log.error("该产品未配置签章服务");
        return;
    }
    MakeSealServer makeSealServer = sqlSession.selectOne("com.itrus.portal.db.MakeSealServerMapper.selectByPrimaryKey", product.getMakeSealServer());
    // 签章服务配置
    List<MakeSealConfig> makeSealConfigs = sqlSession.selectList("com.itrus.portal.db.MakeSealConfigMapper.selectByExample");
    if (makeSealConfigs.isEmpty()) {
        log.error("没有找到签章服务配置");
        return;
    }
    MakeSealConfig makeSealConfig = makeSealConfigs.get(0);
    makeSealConfig.setAddressKey(AESencrp.decrypt(makeSealConfig.getAddressKey(), dbEncKey));
    uiModel.addAttribute("makeSealConfig", makeSealConfig);
    // 替换-印章名称
    if (StringUtils.isNotBlank(makeSealServer.getSealName())) {
        UIDInfoUtils uidutils = new UIDInfoUtils();
        uidutils.initService(businessService, orgCodeService, taxCertService, identityCardService, userInfoService, enterpriseService);
        makeSealServer.setSealName(uidutils.getUidInfo(billId, makeSealServer.getSealName()));
    }
    uiModel.addAttribute("makeSealServer", makeSealServer);
}
Also used : UIDInfoUtils(com.itrus.portal.utils.UIDInfoUtils) MakeSealServer(com.itrus.portal.db.MakeSealServer) MakeSealConfig(com.itrus.portal.db.MakeSealConfig) EditBill(com.itrus.portal.db.EditBill) Bill(com.itrus.portal.db.Bill) Product(com.itrus.portal.db.Product)

Example 2 with MakeSealServer

use of com.itrus.portal.db.MakeSealServer in project portal by ixinportal.

the class MakeCertController method makeSealBaiRun.

/**
 * 百润制章
 *
 * @param billId
 *            订单id
 * @param csr
 *            证书base64编码
 * @param request
 * @param response
 * @return
 * @throws EncDecException
 * @throws Exception
 */
@RequestMapping(value = "/makeSealBaiRun", method = RequestMethod.POST)
public void makeSealBaiRun(@RequestParam(value = "billId", required = true) Long billId, @RequestParam(value = "sealpic", required = true) String sealpic, @RequestParam(value = "csr", required = true) String csr, @RequestParam(value = "productId", required = false) Long productId, HttpServletRequest request, HttpServletResponse response) throws EncDecException, Exception {
    // Map<String, Object> map = new HashMap<String, Object>();
    // map.put("retCode", 0);
    // 获取签章模版
    Bill bill = sqlSession.selectOne("com.itrus.portal.db.BillMapper.selectByPrimaryKey", billId);
    // 查询项目产品
    Product product = null;
    // 如为组合产品productId不为空
    if (null == productId) {
        product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", bill.getProduct());
    } else {
        product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", productId);
    }
    /*
		 * if (null == product.getMakeSealServer() ||
		 * product.getMakeSealServer() <= 0) { map.put("retMsg", "该产品未配置签章服务");
		 * return map; }
		 */
    MakeSealServer makeSealServer = sqlSession.selectOne("com.itrus.portal.db.MakeSealServerMapper.selectByPrimaryKey", product.getMakeSealServer());
    // 签章服务配置
    List<MakeSealConfig> makeSealConfigs = sqlSession.selectList("com.itrus.portal.db.MakeSealConfigMapper.selectByExample");
    /*
		 * if (makeSealConfigs.isEmpty()) { map.put("retMsg", "没有找到签章服务配置");
		 * return map; }
		 */
    Map<String, Object> param = new HashMap<>();
    param.put("id", bill.getId());
    UserCertExample userc = new UserCertExample();
    UserCertExample.Criteria us = userc.createCriteria();
    us.andIdNotEqualTo(bill.getId());
    userc.setOrderByClause("cert_start_time desc");
    userc.setLimit(1);
    UserCert usercert = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByExample", userc);
    CertBufExample certbuf = new CertBufExample();
    CertBufExample.Criteria cert = certbuf.createCriteria();
    cert.andIdEqualTo(usercert.getCertBuf());
    CertBuf organ = sqlSession.selectOne("com.itrus.portal.db.CertBufMapper.selectByExample", certbuf);
    if (makeSealConfigs.get(1).getName().contains(makeSealServer.getFirm())) {
        MakeSealConfig makeSealConfig = makeSealConfigs.get(0);
        // 替换-印章名称
        if (StringUtils.isNotBlank(makeSealServer.getSealName())) {
            UIDInfoUtils uidutils = new UIDInfoUtils();
            uidutils.initService(businessService, orgCodeService, taxCertService, identityCardService, userInfoService, enterpriseService);
            makeSealServer.setSealName(uidutils.getUidInfo(billId, makeSealServer.getSealName()));
        }
        try {
            log.error("request.getLocalAddr : " + request.getLocalAddr() + ",CSR:" + organ.getCertBuf());
            boolean userbool = true;
            if (usercert.getIsRegister() == null || !usercert.getIsRegister().equals(1)) {
                usercert.setIsRegister(1);
                sqlSession.update("com.itrus.portal.db.UserCertMapper.updateByPrimaryKeySelective", usercert);
                // 注册用户
                userbool = UserSDK.addUser(null, makeSealConfig.getAddressKey(), organ.getCertBuf(), makeSealServer.getAccount(), Constant.APP, Constant.Token);
                log.error("makeCertController userbool : " + userbool);
            // log.info(makeSealConfig.getAddressKey());
            // log.info(String.valueOf(userbool));
            }
            // 制作印章
            Map<String, Object> result = SealSDK.makeSeal(makeSealServer.getSealName(), organ.getCertBuf(), sealpic, "公章", Constant.APP, Constant.Token);
            if (userbool && (Boolean) result.get("state")) {
                // 制章完成后的印章数据,返回到前台用作导章
                log.error("SealSDK : context");
            } else {
                log.error("SealSDK : ");
            // map.put("retMsg", "制章异常");
            }
            response.setCharacterEncoding("GBK");
            response.setContentType("text/html");
            OutputStream out = response.getOutputStream();
            out.write(result.get("data").toString().getBytes("GBK"));
            // map.put("bairun_ret",
            // result.get("data").toString().getBytes("GBK"));
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        // map.put("retMsg", e.getMessage());
        }
    } else {
        MakeSealConfig makeSealConfig = makeSealConfigs.get(1);
        // 替换-印章名称
        if (StringUtils.isNotBlank(makeSealServer.getSealName())) {
            UIDInfoUtils uidutils = new UIDInfoUtils();
            uidutils.initService(businessService, orgCodeService, taxCertService, identityCardService, userInfoService, enterpriseService);
            makeSealServer.setSealName(uidutils.getUidInfo(billId, makeSealServer.getSealName()));
        }
        try {
            log.error("request.getLocalAddr : " + request.getLocalAddr() + ",CSR:" + organ.getCertBuf());
            boolean userbool = true;
            if (usercert.getIsRegister() != null && !usercert.getIsRegister().equals(1)) {
                usercert.setIsRegister(1);
                sqlSession.update("com.itrus.portal.db.UserCertMapper.updateByPrimaryKeySelective", usercert);
                // 注册用户
                userbool = UserSDK.addUser(null, makeSealConfig.getAddressKey(), organ.getCertBuf(), Constant.TianWeiChenXin, Constant.APP, Constant.Token);
            }
            // 制作印章
            Map<String, Object> result = SealSDK.makeSeal(makeSealServer.getSealName(), organ.getCertBuf(), sealpic, "公章", Constant.APP, Constant.Token);
            String s = Constant.IP;
            if (userbool && (Boolean) result.get("state")) {
                // 制章完成后的印章数据,返回到前台用作导章
                log.error("SealSDK : " + result.get("data").toString());
            } else {
                log.error("SealSDK : ");
            // map.put("retMsg", "制章异常");
            }
            response.setCharacterEncoding("GBK");
            response.setContentType("text/html");
            OutputStream out = response.getOutputStream();
            out.write(result.get("data").toString().getBytes("GBK"));
            // map.put("bairun_ret",
            // result.get("data").toString().getBytes("GBK"));
            out.flush();
            out.close();
            System.out.println(result.get("data").toString().getBytes("GBK").toString() + ":JS");
        } catch (Exception e) {
            e.printStackTrace();
        // map.put("retMsg", e.getMessage());
        }
    }
// map.put("retCode", 1);
// return map;
}
Also used : HashMap(java.util.HashMap) UserCertExample(com.itrus.portal.db.UserCertExample) OutputStream(java.io.OutputStream) Product(com.itrus.portal.db.Product) EncDecException(com.itrus.portal.exception.EncDecException) IOException(java.io.IOException) RaServiceUnavailable_Exception(cn.topca.tca.ra.service.RaServiceUnavailable_Exception) UIDInfoUtils(com.itrus.portal.utils.UIDInfoUtils) MakeSealServer(com.itrus.portal.db.MakeSealServer) MakeSealConfig(com.itrus.portal.db.MakeSealConfig) Bill(com.itrus.portal.db.Bill) CertBuf(com.itrus.portal.db.CertBuf) JSONObject(com.alibaba.fastjson.JSONObject) CertBufExample(com.itrus.portal.db.CertBufExample) UserCert(com.itrus.portal.db.UserCert) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with MakeSealServer

use of com.itrus.portal.db.MakeSealServer in project portal by ixinportal.

the class MakeCertController method update.

// 显示制证详情
@RequestMapping(value = "/update/{id}", produces = "text/html")
public String update(@PathVariable("id") Long id, Model uiModel) throws EncDecException, Exception {
    List<Map> makecerts = sqlSession.selectList("com.itrus.portal.db.BillMapper.selectBillByMakecert", id);
    uiModel.addAttribute("makecerts", makecerts);
    uiModel.addAttribute("enterpriseSn", makecerts.get(0).get("enterprise_sn"));
    DigitalCert digitalcert = null;
    ProductSpec productSpec = null;
    Product product = null;
    Map<String, Object> params = new HashMap<String, Object>();
    // 添加组合产品
    if (makecerts.get(0).get("is_combined") != null && makecerts.get(0).get("is_combined").equals(1)) {
        try {
            uiModel.addAttribute("billStr", jsonTool.writeValueAsString(makecerts.get(0)));
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 得到三条组合产品的产品信息
        for (int i = 1; i < 4; i++) {
            if (makecerts.get(0).get("product" + i) == null) {
                uiModel.addAttribute("usercertallStr" + i, "{}");
                continue;
            }
            product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", makecerts.get(0).get("product" + i));
            uiModel.addAttribute("product" + i, product);
            digitalcert = sqlSession.selectOne("com.itrus.portal.db.DigitalCertMapper.selectByPrimaryKey", product.getCert());
            uiModel.addAttribute("digitalcert" + i, digitalcert);
            params.put("id", id);
            params.put("pid", product.getId());
            List<Map<String, Object>> makecertexall = sqlSession.selectList("com.itrus.portal.db.UserCertMapper.selectByPrimaryBillAndProductKey", params);
            uiModel.addAttribute("makecertexall" + i, makecertexall);
            // 获取产品规格
            if (makecerts.get(0).containsKey("product_spec" + i) && !"0".equals(makecerts.get(0).get("product_spec" + i))) {
                productSpec = productSpecService.getProductSpec((Long) makecerts.get(0).get("product_spec" + i));
            }
            uiModel.addAttribute("productSpec" + i, productSpec);
            try {
                uiModel.addAttribute("digitalcertStr" + i, jsonTool.writeValueAsString(digitalcert));
                uiModel.addAttribute("productStr" + i, jsonTool.writeValueAsString(product));
                uiModel.addAttribute("productSpecStr" + i, jsonTool.writeValueAsString(productSpec));
                uiModel.addAttribute("usercertallStr" + i, jsonTool.writeValueAsString(makecertexall));
            } catch (Exception e) {
                e.printStackTrace();
            }
            // 解析项目产品中,certinfo配置信息
            JSONArray certinfo = JSONArray.parseArray(product.getCertinfo());
            for (int j = 0; certinfo != null && j < certinfo.size(); j++) {
                JSONObject obj = certinfo.getJSONObject(j);
                String autoid = obj.getString("autoid");
                if (autoid == null)
                    continue;
                String autoidType = obj.getString("autoidType");
                String autoidPrev = obj.getString("autoidPrev");
                String autoidPrevDate = obj.getString("autoidPrevDate");
                String autoidLength = obj.getString("autoidLength");
                // 从user_cert表查询,该autoidType的最大值,如果没有最大值,则设置为0
                Map param = new HashMap();
                String enterpriseId = makecerts.get(0).get("enterprise").toString();
                param.put("enterpriseId", makecerts.get(0).get("enterprise"));
                param.put("type", autoidType);
                Integer autoidValue = null;
                if (autoidPrevDate == null)
                    autoidValue = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByConditon", param);
                else
                    autoidValue = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByConditonDate", param);
                if (autoidValue == null)
                    autoidValue = 0;
                uiModel.addAttribute("enterpriseId" + i, enterpriseId);
                uiModel.addAttribute("autoidType" + i, autoidType);
                uiModel.addAttribute("autoidPrev" + i, autoidPrev);
                uiModel.addAttribute("autoidLength" + i, autoidLength);
                uiModel.addAttribute("autoidValue" + i, autoidValue);
                break;
            }
            // 签章服务配置
            List<MakeSealConfig> makeSealConfigs = sqlSession.selectList("com.itrus.portal.db.MakeSealConfigMapper.selectByExample");
            if (!makeSealConfigs.isEmpty()) {
                MakeSealConfig makeSealConfig = makeSealConfigs.get(0);
                makeSealConfig.setAddressKey(AESencrp.decrypt(makeSealConfig.getAddressKey(), dbEncKey));
                uiModel.addAttribute("makeSealConfig", makeSealConfig);
            }
            MakeSealServer makeSealServer = sqlSession.selectOne("com.itrus.portal.db.MakeSealServerMapper.selectByPrimaryKey", product.getMakeSealServer());
            if (null != makeSealServer) {
                // 替换-印章名称
                if (StringUtils.isNotBlank(makeSealServer.getSealName())) {
                    UIDInfoUtils uidutils = new UIDInfoUtils();
                    uidutils.initService(businessService, orgCodeService, taxCertService, identityCardService, userInfoService, enterpriseService);
                    makeSealServer.setSealName(uidutils.getUidInfo(id, makeSealServer.getSealName()));
                }
                uiModel.addAttribute("makeSealServer" + i, makeSealServer);
            }
        }
        return "makecert/update1";
    }
    List<Map> makecertexall = sqlSession.selectList("com.itrus.portal.db.UserCertMapper.selectByPrimaryBillKey", id);
    uiModel.addAttribute("makecertexall", makecertexall);
    digitalcert = sqlSession.selectOne("com.itrus.portal.db.DigitalCertMapper.selectByPrimaryKey", makecerts.get(0).get("cert"));
    uiModel.addAttribute("digitalcert", digitalcert);
    if (makecerts.get(0).containsKey("product_spec") && !"0".equals(makecerts.get(0).get("product_spec"))) {
        productSpec = productSpecService.getProductSpec((Long) makecerts.get(0).get("product_spec"));
    }
    uiModel.addAttribute("productSpec", productSpec);
    product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", makecerts.get(0).get("product"));
    uiModel.addAttribute("product", product);
    try {
        uiModel.addAttribute("billStr", jsonTool.writeValueAsString(makecerts.get(0)));
        uiModel.addAttribute("usercertallStr", jsonTool.writeValueAsString(makecertexall));
        uiModel.addAttribute("digitalcertStr", jsonTool.writeValueAsString(digitalcert));
        uiModel.addAttribute("productStr", jsonTool.writeValueAsString(product));
        uiModel.addAttribute("productSpecStr", jsonTool.writeValueAsString(productSpec));
    } catch (Exception e) {
        e.printStackTrace();
    }
    // System.out.println(makecerts.get(0).get("product_num"));
    // 处理autoid自动编号信息
    // 解析项目产品中,certinfo配置信息
    JSONArray certinfo = JSONArray.parseArray(product.getCertinfo());
    for (int i = 0; certinfo != null && i < certinfo.size(); i++) {
        JSONObject obj = certinfo.getJSONObject(i);
        String autoid = obj.getString("autoid");
        if (autoid == null)
            continue;
        String autoidType = obj.getString("autoidType");
        String autoidPrev = obj.getString("autoidPrev");
        String autoidPrevDate = obj.getString("autoidPrevDate");
        String autoidLength = obj.getString("autoidLength");
        // 从user_cert表查询,该autoidType的最大值,如果没有最大值,则设置为0
        Map param = new HashMap();
        String enterpriseId = makecerts.get(0).get("enterprise").toString();
        param.put("enterpriseId", makecerts.get(0).get("enterprise"));
        param.put("type", autoidType);
        Integer autoidValue = null;
        if (autoidPrevDate == null)
            autoidValue = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByConditon", param);
        else
            autoidValue = sqlSession.selectOne("com.itrus.portal.db.UserCertMapper.selectByConditonDate", param);
        if (autoidValue == null)
            autoidValue = 0;
        uiModel.addAttribute("enterpriseId", enterpriseId);
        uiModel.addAttribute("autoidType", autoidType);
        uiModel.addAttribute("autoidPrev", autoidPrev);
        uiModel.addAttribute("autoidLength", autoidLength);
        uiModel.addAttribute("autoidValue", autoidValue);
        break;
    }
    // 签章服务配置
    List<MakeSealConfig> makeSealConfigs = sqlSession.selectList("com.itrus.portal.db.MakeSealConfigMapper.selectByExample");
    if (!makeSealConfigs.isEmpty()) {
        MakeSealConfig makeSealConfig = makeSealConfigs.get(0);
        makeSealConfig.setAddressKey(AESencrp.decrypt(makeSealConfig.getAddressKey(), dbEncKey));
        uiModel.addAttribute("makeSealConfig", makeSealConfig);
    }
    MakeSealServer makeSealServer = sqlSession.selectOne("com.itrus.portal.db.MakeSealServerMapper.selectByPrimaryKey", product.getMakeSealServer());
    if (null != makeSealServer) {
        // 替换-印章名称
        if (StringUtils.isNotBlank(makeSealServer.getSealName())) {
            UIDInfoUtils uidutils = new UIDInfoUtils();
            uidutils.initService(businessService, orgCodeService, taxCertService, identityCardService, userInfoService, enterpriseService);
            makeSealServer.setSealName(uidutils.getUidInfo(id, makeSealServer.getSealName()));
        }
        uiModel.addAttribute("makeSealServer", makeSealServer);
    }
    return "makecert/update";
}
Also used : HashMap(java.util.HashMap) JSONArray(com.alibaba.fastjson.JSONArray) Product(com.itrus.portal.db.Product) ProductSpec(com.itrus.portal.db.ProductSpec) EncDecException(com.itrus.portal.exception.EncDecException) IOException(java.io.IOException) RaServiceUnavailable_Exception(cn.topca.tca.ra.service.RaServiceUnavailable_Exception) BigInteger(java.math.BigInteger) UIDInfoUtils(com.itrus.portal.utils.UIDInfoUtils) DigitalCert(com.itrus.portal.db.DigitalCert) MakeSealConfig(com.itrus.portal.db.MakeSealConfig) MakeSealServer(com.itrus.portal.db.MakeSealServer) JSONObject(com.alibaba.fastjson.JSONObject) JSONObject(com.alibaba.fastjson.JSONObject) Map(java.util.Map) HashMap(java.util.HashMap) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with MakeSealServer

use of com.itrus.portal.db.MakeSealServer in project portal by ixinportal.

the class MakeSealServerController method show.

/**
 * 查看详情
 *
 * @param id
 * @param uiModel
 * @return
 */
@RequestMapping(value = "/{id}", produces = "text/html")
public String show(@PathVariable("id") Long id, Model uiModel) {
    MakeSealServer makeSealServer = makeSealServerService.selectMakeSealServer(id);
    uiModel.addAttribute("makeSealServer", makeSealServer);
    return "makesealserver/show";
}
Also used : MakeSealServer(com.itrus.portal.db.MakeSealServer) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with MakeSealServer

use of com.itrus.portal.db.MakeSealServer in project portal by ixinportal.

the class MakeSealServerController method list.

@RequestMapping(produces = "text/html")
public String list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
    // page,size
    if (page == null || page < 1)
        page = 1;
    if (size == null || size < 1)
        size = 10;
    Integer count = makeSealServerService.selectCount(null);
    uiModel.addAttribute("count", count);
    uiModel.addAttribute("pages", (count + size - 1) / size);
    // page, size
    if (page > 1 && size * (page - 1) >= count) {
        page = (count + size - 1) / size;
    }
    uiModel.addAttribute("page", page);
    uiModel.addAttribute("size", size);
    Integer offset = size * (page - 1);
    MakeSealServerExample mssExample = new MakeSealServerExample();
    mssExample.setOffset(offset);
    mssExample.setLimit(size);
    List<MakeSealServer> makeSealServers = makeSealServerService.selectMakeSealServers(mssExample);
    uiModel.addAttribute("makeSealServers", makeSealServers);
    uiModel.addAttribute("itemcount", makeSealServers.size());
    return "makesealserver/list";
}
Also used : MakeSealServer(com.itrus.portal.db.MakeSealServer) MakeSealServerExample(com.itrus.portal.db.MakeSealServerExample) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

MakeSealServer (com.itrus.portal.db.MakeSealServer)8 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)6 MakeSealConfig (com.itrus.portal.db.MakeSealConfig)5 Product (com.itrus.portal.db.Product)4 UIDInfoUtils (com.itrus.portal.utils.UIDInfoUtils)4 JSONObject (com.alibaba.fastjson.JSONObject)3 Bill (com.itrus.portal.db.Bill)3 HashMap (java.util.HashMap)3 RaServiceUnavailable_Exception (cn.topca.tca.ra.service.RaServiceUnavailable_Exception)2 EncDecException (com.itrus.portal.exception.EncDecException)2 IOException (java.io.IOException)2 JSONArray (com.alibaba.fastjson.JSONArray)1 CertBuf (com.itrus.portal.db.CertBuf)1 CertBufExample (com.itrus.portal.db.CertBufExample)1 DigitalCert (com.itrus.portal.db.DigitalCert)1 EditBill (com.itrus.portal.db.EditBill)1 MakeSealServerExample (com.itrus.portal.db.MakeSealServerExample)1 ProductSpec (com.itrus.portal.db.ProductSpec)1 UserCert (com.itrus.portal.db.UserCert)1 UserCertExample (com.itrus.portal.db.UserCertExample)1