Skip to content
CAI
Software that uses CAICheck a score

fuzhengwei/Lottery

53.4

Adequate · 22 September 2026

1.1k

lines of production code

Java

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a lottery and draw management system built on a multi-module Maven architecture. It provides domain models and repository interfaces for managing activities and strategies, while implementing specific draw algorithms like Fibonacci hashing for probability-based selection. The system exposes RPC services via Dubbo and manages data persistence through MyBatis.

Features

Add core lottery system components including draw algorithms, domain models, and infrastructure mappers

This change introduces the foundational code for a lottery/draw system. It adds domain models for strategy and draw operations (DrawReq, DrawResult, StrategyRich, AwardRateInfo), repository interfaces and implementations for querying strategy data, and two specific draw algorithms (DefaultRateRandomDrawAlgorithm and SingleRateRandomDrawAlgorithm) that use Fibonacci hashing for probability-based selection. It also includes infrastructure layer components such as MyBatis mappers and POJOs for Activity, Award, Strategy, and StrategyDetail, along with a Dubbo RPC interface for activity management and corresponding test cases.

(repo-wide) · high confidence

Dependencies

Initial Maven project structure for the Lottery application

The project is initialized with a multi-module Maven build, establishing the core architecture for the lottery system. The root pom.xml defines a parent POM using Spring Boot 2.3.5.RELEASE and manages dependencies like hutool-all 5.5.0. Six sub-modules are introduced: lottery-application, lottery-common, lottery-domain, lottery-infrastructure, lottery-interfaces, and lottery-rpc. The lottery-domain module includes dependencies on Spring Boot Starter Web and MyBatis, while lottery-infrastructure specifies MyBatis Spring Boot Starter 2.1.4. The lottery-interfaces module, packaged as a WAR, integrates Dubbo 2.7.1, Fastjson 1.2.58, and MySQL Connector/J 5.1.34, indicating support for RPC services and database connectivity.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 52 → 53 (+1.0)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (-0.2)
  • Architecture 100 → 79 (-21.0)
  • Maturity 52 → 54 (+1.2)
  • Readiness 26 → 33 (+7.7)
  • Security 100 → 100 (+0.0)

Resolved (9)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient

New (17)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (99 lines × 2) (lottery-infrastructure/src/main/java/cn/itedus/lottery/infrastructure/po/Activity.java)
  • No ADRs found
  • No direct assertions: test_DrawStrategy (lottery-interfaces/src/test/java/cn/itedus/lottery/test/ApiTest.java)
  • No direct assertions: test_drawExec (lottery-interfaces/src/test/java/cn/itedus/lottery/test/SpringRunnerTest.java)
  • No direct assertions: test_idx (lottery-interfaces/src/test/java/cn/itedus/lottery/test/ApiTest.java)
  • No direct assertions: test_insert (lottery-interfaces/src/test/java/cn/itedus/lottery/test/SpringRunnerTest.java)
  • No direct assertions: test_random (lottery-interfaces/src/test/java/cn/itedus/lottery/test/ApiTest.java)
  • No direct assertions: test_randomDrawAlgorithm (lottery-interfaces/src/test/java/cn/itedus/lottery/test/DrawAlgorithmTest.java)
  • No direct assertions: test_select (lottery-interfaces/src/test/java/cn/itedus/lottery/test/SpringRunnerTest.java)
  • No direct assertions: test_strategy (lottery-interfaces/src/test/java/cn/itedus/lottery/test/ApiTest.java)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Test project verifies nothing: lottery-interfaces (lottery-interfaces/src/test/java/cn/itedus/lottery/test/ApiTest.java)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

fuzhengwei/Lottery was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 8457679abd804d32f5628038215ab7c61cd30b48 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-90d5d2fe38ee.