发表于: 2019-11-13 23:33:34

1 1101


今天完成的事情:

组员接口太多,做不过来,帮他把banner图后台管理和前台展示做了。

后台banner

特殊的地方就是排序了。先把上架的排前面,再按照拖动所排列的顺序排序,最后按照时间排。

排序的话是前端传要排序的id集合,是有序的。后端用for循环赋值修改就行了。

@RestController
public class BannerController {
   private final Logger log = LogManager.getLogger(this.getClass());
   @Autowired
   BannerServer bannerServer;

   /**
    * banner图列表查询
    */
   @GetMapping("/a/u/list/banner")
   public Map<String, Object> bannerListSelect(Banner banner,
                                               @RequestParam(value = "page", defaultValue = "1") Integer page,
                                               @RequestParam(value = "size", defaultValue = "10") Integer size) {
       HashMap<String, Object> result = new HashMap<>(16);
       log.info("获取第{}页共{}行banner:{}", page, size, banner);
       try {
           /*先按照拖动排序顺序,再按照创建时间倒序*/
           PageHelper.startPage(page, size, "b.status desc,b.display_order,b.create_at desc");
           List<Banner> bannerList = bannerServer.selectSelective(banner);
           PageInfo<Banner> pageInfo = new PageInfo<>(bannerList);
           Long total = pageInfo.getTotal();
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           result.put("total", total);
           result.put("data", bannerList);
           /*查询到的id集合*/
           List<Long> selectBannerIdList = new ArrayList();
           for (Banner banner1 : bannerList) {
               selectBannerIdList.add(banner1.getId());
           }
           log.info("查到的banner ID:{}", selectBannerIdList);
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }

   /**
    * banner详细查询
    */
   @GetMapping("/a/u/banner")
   public Map<String, Object> bannerSelect(Long id) {
       HashMap<String, Object> result = new HashMap<>(16);
       try {
           log.info("要查询的banner ID:{}", id);
           Banner banner = bannerServer.selectByPrimaryKey(id);
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           result.put("data", banner);
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }

   /**
    * banner新增
    */
   @PostMapping("/a/u/banner")
   public Map<String, Object> studyInsert(Banner banner) {
       HashMap<String, Object> result = new HashMap<>(16);
       log.info("新增banner:{}", banner);
       try {
           /*获取当前用户ID*/
           long userId = ShiroUtil.getAccountId();
           /*新增默认为下架状态*/
           banner.setStatus(0);
           banner.setCreateBy(userId);
           banner.setUpdateBy(userId);
           int bannerInsertSuccess = bannerServer.insertSelective(banner);
           if (bannerInsertSuccess == 1) {
               result.put("id", banner.getId());
               result.put("msg", SUCCESS.getMsg());
               result.put("code", SUCCESS.getCode());
               log.info("新增的学习对象ID:{}", banner.getId());
           }
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }

   /**
    * 删除
    * */
   @DeleteMapping("/a/u/banner")
   public Map<String, Object> bannerDelete(Long id) {
       HashMap<String, Object> result = new HashMap<>(16);
       try {
           log.info("删除的banner id:{}", id);
           bannerServer.deleteByPrimaryKey(id);
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           log.info("成功删除学习对象的对应id:{}", id);
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }
   /**
    * 修改
    * */
   @PutMapping("/a/u/banner")
   public Map<String, Object> studyUpdate(Banner banner) {
       HashMap<String, Object> result = new HashMap<>(16);
       log.info("修改的banner:{}", banner);
       try {
           long userId = ShiroUtil.getAccountId();
           banner.setUpdateBy(userId);
           int updateSuccess = bannerServer.updateByPrimaryKeySelective(banner);
           if (updateSuccess == 1) {
               result.put("code", SUCCESS.getCode());
               result.put("msg", SUCCESS.getMsg());
               log.info("成功修改banner:{}", userId);
           }
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }

   /**
    * 后台学习对象上下架
    * */
   @PutMapping("/a/u/banner/status")
   public Map<String, Object> studyStatus(long id,int status) {
       HashMap<String, Object> result = new HashMap<>(16);
       log.info("上下架操作:{}", status);
       try {
           long userId = ShiroUtil.getAccountId();
           Banner banner=new Banner();
           banner.setStatus(status);
           /*如果下架,将排序设为null*/
           if(status==0){
               banner.setDisplayOrder(null);
           }
           banner.setUpdateBy(userId);
           banner.setId(id);
           int statusSuccess = bannerServer.updateByPrimaryKeySelective(banner);
           if (statusSuccess == 1) {
               result.put("code", SUCCESS.getCode());
               result.put("msg", SUCCESS.getMsg());
               log.info("上下架操作{}成功", status);
           }
           return result;
       } catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }
   /**
    * 上架banner排序
    * */
   @PutMapping("/a/u/banner/sort")
   public Map<String, Object> studyStatusSort(List<Long> idList){
       HashMap<String, Object> result = new HashMap<>(16);
       log.info("排序操作:{}", idList);
       try {
           for (int i=0;i<idList.size();i++){
               Banner banner=new Banner();
               banner.setDisplayOrder(i);
               banner.setId(idList.get(i));
               bannerServer.updateByPrimaryKeySelective(banner);
           }
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           return result;
       }catch (Exception e) {
           e.printStackTrace();
           result.put("code", REQUEST_FAILED.getCode());
           result.put("msg", REQUEST_FAILED.getMsg());
           return result;
       }
   }

}

前台就简单了,只要查询出来就行了。默认是上架的。

/**
* banner图列表查询
*/
@GetMapping("/a/list/banner")
public Map<String, Object> bannerListSelect(Integer type,
                                           @RequestParam(value = "status", defaultValue = "1") Integer status,
                                           @RequestParam(value = "page", defaultValue = "1") Integer page,
                                           @RequestParam(value = "size", defaultValue = "10") Integer size) {
   HashMap<String, Object> result = new HashMap<>(16);
   log.info("获取第{}页共{}行类型:{}的banner", page, size, type);
   try {
       Banner banner=new Banner();
       banner.setStatus(status);
       banner.setType(type);
       /*先按照拖动排序顺序,再按照创建时间倒序*/
       PageHelper.startPage(page, size, "display_order,create_at desc");
       List<Banner> bannerList = bannerServer.selectSelective(banner);
       PageInfo<Banner> pageInfo = new PageInfo<>(bannerList);
       Long total = pageInfo.getTotal();
       result.put("code", SUCCESS.getCode());
       result.put("msg", SUCCESS.getMsg());
       result.put("total", total);
       result.put("data", bannerList);
       /*查询到的id集合*/
       List<Long> selectBannerIdList = new ArrayList();
       for (Banner banner1 : bannerList) {
           selectBannerIdList.add(banner1.getId());
       }
       log.info("查到的banner ID:{}", selectBannerIdList);
       return result;
   } catch (Exception e) {
       e.printStackTrace();
       result.put("code", REQUEST_FAILED.getCode());
       result.put("msg", REQUEST_FAILED.getMsg());
       return result;
   }
}

微信支付还是没看。唉


明天计划的事情:

用新增接口给数据库填点真实数据。用来演示用。


遇到的问题:

编点数据出来?想着就不舒服。如果有的抄就好了。我手机不知道什么原因,打开逗你学公众号页面就会死。


收获:



返回列表 返回列表
评论

    分享到