学习记录(day13-changgou后台:管理员登录、商品规格管理)

changgou后台-day01

[TOC]

1、管理员登录

Admin

@Table(name="tb_admin")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Admin implements Serializable {
    @Id
    private Integer id;

    @Column(name = "login_name")
    private String LoginName;			//用户名
    private String password;			//密码
    private String status;				//状态56
}

AdminController

@RestController
public class AdminController {

    @Resource
    private AdminService adminService;

    @PostMapping("/access_token")
    public BaseResult login(@RequestBody Admin admin) {
        System.out.println(admin);
        Admin loginAdmin = adminService.login(admin.getLoginName(), admin.getPassword());
        if (loginAdmin != null) {
            return BaseResult.ok("登录成功").append("loginAdmin", loginAdmin).append("token", "abc");
        } else {
            return BaseResult.error("登录用户名或密码不匹配");
        }
    }
}

AdminServiceImpl

@Service
@Transactional
public class AdminServiceImpl implements AdminService {
    @Resource
    private AdminMapper adminMapper;

    @Override
    public Admin login(String loginName, String password) {
        //1 查询条件
        Admin admin = new Admin();
        admin.setLoginName(loginName);
        //2 通过用户名查询
        Admin queryAdmin = adminMapper.selectOne(admin);
        if (queryAdmin == null) {
            return null;
        }
        //3 密码是否匹配 (密码采用BCrypt加密)
        if (!BCrypt.checkpw(password, queryAdmin.getPassword())) {
            return null;
        }
        return queryAdmin;
    }
}

2、商品规格管理(同商品参数管理)

2.1、给指定分类添加规格

Spec

/**
 * @author 庭前云落
 * @date 2019/11/14 16:02
 * @description
 */
@Data
@Table(name = "tb_spec")
@AllArgsConstructor
@NoArgsConstructor
public class Spec {
    @Id
    private Integer id;
    private String name;
    private String options;
    private Integer seq;
    @Column(name = "category_id")
    private Integer categoryId;
    
}

SpeController

/**
 * @author 庭前云落
 * @date 2019/11/14 16:11
 * @description
 */
@RestController
@RequestMapping("/spec")
public class SpeController {

    @Resource
    private SpecService specServiceImpl;

    @PostMapping
    public BaseResult add(@RequestBody Spec spec){
       BaseResult baseResult = specServiceImpl.add(spec);
       return baseResult;
    }
    
}

SpecServiceImpl

/**
 * @author 庭前云落
 * @date 2019/11/14 16:10
 * @description
 */
@Service
@Transactional
public class SpecServiceImpl implements SpecService {
    @Resource
    private CategoryMapper categoryMapper;

    @Resource
    private SpecMapper specMapper;

    @Override
    public BaseResult add(Spec spec) {
        Category category = categoryMapper.selectByPrimaryKey(spec.getCategoryId());
        if(category==null){
            return BaseResult.error("当前分类不存在");
        }

        Example example = new Example(Spec.class);
        example.createCriteria()
                .andEqualTo("name",spec.getName())
                .andEqualTo("categoryId",spec.getCategoryId());
        int count = specMapper.selectCountByExample(example);
        if(count>0){
            return BaseResult.error("【"+spec.getName()+"】参数已存在");
        }
        spec.setSeq(1);
        specMapper.insertSelective(spec);
        return BaseResult.ok("添加成功");
    }

}
2.2、查询指定分类所有的规格

SpeController

/**
 * @author 庭前云落
 * @date 2019/11/14 16:11
 * @description
 */
@RestController
@RequestMapping("/spec")
public class SpeController {

    @Resource
    private SpecService specServiceImpl;


    @GetMapping("/category/{cid}")
    public BaseResult selectAllSpecByCid(@PathVariable("cid") Integer categoryId){
        List<Spec> slist = specServiceImpl.selectAllSpecByCid(categoryId);
        return BaseResult.ok("查询成功",slist);
    }
}

SpecServiceImpl

/**
 * @author 庭前云落
 * @date 2019/11/14 16:10
 * @description
 */
@Service
@Transactional
public class SpecServiceImpl implements SpecService {
    
    @Resource
    private SpecMapper specMapper;

    @Override
    public List<Spec> selectAllSpecByCid(Integer categoryId) {
        // 第一种:拼凑条件
        // Example example = new Example(Spec.class);
        // Example.Criteria criteria = example.createCriteria();
        // criteria.andEqualTo("categoryId",categoryId);
        // return specMapper.selectByExample(example);

        //第二种:手写SQL
        return specMapper.selectAllSpecByCid(categoryId);
    }
}

SpecMapper

/**
 * @author 庭前云落
 * @date 2019/11/14 16:10
 * @description
 */
public interface SpecMapper extends Mapper<Spec> {
    //第二种:手写SQL
    @Select("select * from tb_spec where category_id=#{categoryId}")
    List<Spec> selectAllSpecByCid(@Param("categoryId") Integer categoryId);
}

日常学习的总结,主要是为了自己以后看,当然大家有什么好的建议,欢迎评论留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值