一个Controller层

首先是 swagger 的API

@Api(tags = "ActivityManage", description = "活动管理相关接口")
public interface ActivityManageApi {
@ApiOperation(value = "活动管理列表分页查询接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "activityListDto", dataType = "ActivityListDto", value = "活动管理列表查询接口请求参数", paramType = "body")
})
//dto 我泛指用于展示层与服务层之间的数据传输对象
//vo 某个指定页面(或组件)的所有数据封装起来
Result<Page<ActivityManageListVo>> getActivityPage(@RequestBody ActivityListDto activityListDto);

}

然后是Controller

@RestController
@RequestMapping("/activityManage")
public class ActivityManageController implements ActivityManageApi {
@Autowired
private ActivityManageService activityManageService;
 
/**
* 活动管理列表分页查询接口
*
* @param activityListDto 活动管理列表查询接口请求参数实体
* @return Result<Page < ActivityManageListVo>>
*/
@Override
@PostMapping(value = "/getActivityPage")
public Result<Page<ActivityManageListVo>> getActivityPage(@Valid @RequestBody ActivityListDto activityListDto) {
Page<ActivityManageListVo> activityListVoPage;
try {
activityListVoPage = activityManageService.getActivityPage(activityListDto);
} catch (ScoreMallException scoreCenterException) {
throw scoreCenterException;
} catch (Exception e) {
LOGGER.error("活动管理列表分页查询接口异常", e);
throw new ScoreMallException(ErrorCode.BACK_MANAGEMENT_LOTTERY_ACTIVITY_SERVICE_ERROR, "活动管理列表分页查询失败");
}
return Result.successData(activityListVoPage);
}
}

Server层

@Service
public class ActivityManageService {
@Autowired
private ActivityDao activityDao;
/**
     * 活动列表分页查询服务
     *
     * @param activityListDto 查询条件
     * @return Page<ActivityManageListVo> 活动列表信息分页数据
     */
    public Page<ActivityManageListVo> getActivityPage(ActivityListDto activityListDto) {

        return activityDao.findActivityPage(activityListDto.getStartTime(), activityListDto.getEndTime(),
                activityListDto.getStatus(), activityListDto.getKeyword(), activityListDto.getPageNo(), activityListDto.getPageSize(), activityListDto.getSiteId());
    }
}

Dao层

@Repository
public class ActivityDao extends BaseDao<Activity> {

/**
     * 活动列表分页查询
     *
     * @param startTime 活动起始时间
     * @param endTime   活动截止时间
     * @param status    活动状态
     * @param keyword   模糊查询关键词
     * @param pageNo    页码
     * @param pageSize  页数
     * @return Page<ActivityManageListVo> 活动信息列表
     */
    public Page<ActivityManageListVo> findActivityPage(String startTime, String endTime, Integer status, String keyword, Integer pageNo, Integer pageSize,Integer siteId) {
        Map<String, Object> paramMap = new HashMap<>();
        StringBuilder sql = new StringBuilder("select * from ").append(Activity.TABLE_NAME).append(" where 1=1 ");
        if (StrKit.isNotEmpty(startTime)) {
            sql.append(" and (START_TIME >= to_date(:startTime, 'yyyy-mm-dd hh24:mi:ss') or END_TIME >= to_date(:startTime, 'yyyy-mm-dd hh24:mi:ss')) ");
            paramMap.put("startTime", startTime);
        }
        if (StrKit.isNotEmpty(endTime)) {
            sql.append(" and (START_TIME <= to_date(:endTime, 'yyyy-mm-dd hh24:mi:ss') or END_TIME <= to_date(:endTime, 'yyyy-mm-dd hh24:mi:ss')) ");
            paramMap.put("endTime", endTime);
        }
        if (Objects.nonNull(status)) {
            sql.append(" and STATUS = :status ");
            paramMap.put("status", status);
        }
        if (StrKit.isNotEmpty(keyword)) {
            sql.append(" and (NAME like :keyword or DESCRIPTION like :keyword) ");
            paramMap.put("keyword", "%" + keyword + "%");
        }
        if (Objects.nonNull(siteId)) {
            sql.append(" and SITE_ID = :siteId ");
            paramMap.put("siteId", siteId);
        }
        sql.append(" and IS_DELETE = 0 ");
        sql.append(" order by CREATED_TIME desc ");
        return slaverSeasonDao.findPage(ActivityManageListVo.class, pageNo, pageSize, paramMap, sql.toString());
    }
}

最后通过通用的Dao 完成对数据库的操作

posted @ 2021-08-09 16:07  代码改变世界01  阅读(92)  评论(0)    收藏  举报