In Geek Time's "Advanced Go Training Camp", it is generally recommended that 70% of tests be small tests (unit tests), 20% be medium tests (integration tests), and 10% be large tests.
It depends on the business scenario. If the business is relatively simple, writing unit tests for every layer may not be much faster than writing a single integration test. You can primarily rely on integration tests to cover most branches across layers at once, and then use unit tests to cover the remaining ones.
If you find that running integration tests in GoLand sometimes passes and sometimes fails, it is most likely not a GoLand issue but a concurrency problem caused by repeatedly using the same test data. For example, if you simulate generated phone numbers as 138888888XX (with XX ranging from 00 to 99), then all your tests will use 13888888800 in the first round, which very likely causes concurrency issues.