學習記錄(day13-changgou後臺:管理員登陸、商品規格管理)

changgou後臺-day01

[TOC]java

一、管理員登陸

Adminapp

@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
}

AdminControlleride

@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.一、給指定分類添加規格

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;
    
}

SpeControllercode

/**
 * @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;
    }
    
}

SpecServiceImplblog

/**
 * @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.二、查詢指定分類全部的規格

SpeControllertoken

/**
 * @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);
    }
}

SpecServiceImplip

/**
 * @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);
    }
}

SpecMapperci

/**
 * @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);
}

平常學習的總結,主要是爲了本身之後看,固然你們有什麼好的建議,歡迎評論留言。

相關文章
相關標籤/搜索