private boolean isStatusTag(User.SupplierTag tag) { return Arrays.asList( User.SupplierTag.REGISTER_SUPPLIER.value(), User.SupplierTag.COMPLETE_SUPPLIER.value(), User.SupplierTag.STANDARD_SUPPLIER.value(), User.SupplierTag.IN_SUPPLIER.value(), User.SupplierTag.ALTERNATIVE.value(), User.SupplierTag.DIE_OUT.value()) .contains(tag.value()); }
@Override public Response<Boolean> updateTagsByCompany(Long userId, Company company) { Response<Boolean> result = new Response<Boolean>(); if (userId == null) { log.error("user id can not be null"); result.setError("user.id.not.null.fail"); return result; } if (company == null) { log.error("company can not be null"); result.setError("company.not.null.fail"); return result; } try { User user = userDao.findById(userId); if (user == null) { log.error("user(user id={}) not found", userId); result.setError("user.not.found"); return result; } List<String> tags = user.buildTags(); if (Objects.equal(company.getWorldTop(), Company.WorldTop.IS_WORLD_TOP_500.value())) { add(tags, User.SupplierTag.WORLD_TOP_SUPPLIER.toString()); } else if (Objects.equal(company.getWorldTop(), Company.WorldTop.NO_WORLD_TOP_500.value())) { remove(tags, User.SupplierTag.WORLD_TOP_SUPPLIER.toString()); } if (!Strings.isNullOrEmpty(company.getSupplierCode())) { add(tags, User.SupplierTag.IN_SUPPLIER.toString()); } user.setTagsFromList(tags); userDao.update(user); result.setResult(Boolean.TRUE); } catch (Exception e) { log.error( "fail to update tag where user id={},company={},cause:{}", userId, company, Throwables.getStackTraceAsString(e)); result.setError("add.tag.fail"); } return result; }
private boolean canMove(User.SupplierTag from, User.SupplierTag to) { if (isNull(from)) { return Objects.equal(to.value(), User.SupplierTag.REGISTER_SUPPLIER.value()); } if (Objects.equal(from.value(), User.SupplierTag.REGISTER_SUPPLIER.value())) { return Arrays.asList( User.SupplierTag.COMPLETE_SUPPLIER.value(), User.SupplierTag.STANDARD_SUPPLIER.value(), User.SupplierTag.ALTERNATIVE.value(), User.SupplierTag.IN_SUPPLIER.value(), User.SupplierTag.DIE_OUT.value()) .contains(to.value()); } if (Objects.equal(from.value(), User.SupplierTag.COMPLETE_SUPPLIER.value())) { return Arrays.asList( User.SupplierTag.STANDARD_SUPPLIER.value(), User.SupplierTag.ALTERNATIVE.value(), User.SupplierTag.IN_SUPPLIER.value(), User.SupplierTag.DIE_OUT.value()) .contains(to.value()); } if (Objects.equal(from.value(), User.SupplierTag.STANDARD_SUPPLIER.value())) { return Arrays.asList( User.SupplierTag.ALTERNATIVE.value(), User.SupplierTag.IN_SUPPLIER.value(), User.SupplierTag.DIE_OUT.value()) .contains(to.value()); } if (Objects.equal(from.value(), User.SupplierTag.ALTERNATIVE.value())) { return Arrays.asList(User.SupplierTag.IN_SUPPLIER.value(), User.SupplierTag.DIE_OUT.value()) .contains(to.value()); } if (Objects.equal(from.value(), User.SupplierTag.IN_SUPPLIER.value())) { return Objects.equal(to.value(), User.SupplierTag.DIE_OUT.value()); } if (Objects.equal(from.value(), User.SupplierTag.DIE_OUT.value())) { return Objects.equal(to.value(), User.SupplierTag.ALTERNATIVE.value()); } return false; }