Springboot整合jpa进行增删改查操作

pom.xml引入jpa包

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

domian层

import java.util.Date;
import java.util.UUID;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "unionpay_speciallist")
public class UnionpaySpeciallist extends CommonEntity {

    @Id
    @Column(length = 32)
    private String id = UUID.randomUUID().toString().replace("-", "");

    // 银行IC卡号
    @Column(length = 20,name="card_number")
    private String cardNumber;

    // 类型(1黑名单,0白名单)
    private Boolean type;

    // 有效期至(NULL则永久有效,默认NULL)
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="valid_time")
    private Date validTime;

    // 状态(0未启用,1启用,2失效)
    @Column(length = 1)
    private String status;

    
    public UnionpaySpeciallist() {
        super();
    }

    public UnionpaySpeciallist(String status) {
        super();
        this.status = status;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCardNumber() {
        return cardNumber;
    }

    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }

    public Boolean getType() {
        return type;
    }

    public void setType(Boolean type) {
        this.type = type;
    }

    public Date getValidTime() {
        return validTime;
    }

    public void setValidTime(Date validTime) {
        this.validTime = validTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}
 

repository层

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface SpecialRepository extends JpaRepository<UnionpaySpeciallist> {


    Page<UnionpaySpeciallist> findByStatus(String string, Pageable p);

}
 

service层

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;

@Component
public class BlacklistService {

    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

    @Autowired
    private BlacklistRepository blacklistRepository;

    @Autowired
    private SpecialRepository specialRepository;

    @Autowired
    private BlacklistRPC blacklistRPC;

/**

*查

**/

    public Page<UnionpaySpeciallist> list(Pageable pageable, String card_number, String createTime, String lastReviseTime, Boolean type,
            String status) {
        return specialRepository.findAll(new Specification<UnionpaySpeciallist>() {

            @Override
            public Predicate toPredicate(Root<UnionpaySpeciallist> root, CriteriaQuery<?> query, CriteriaBuilder cb) {

                List<Predicate> predicates = new ArrayList<>();

                if (!CommonUtil.isEmtpy(card_number)) {
                    predicates.add(cb.like(root.get("cardNumber").as(String.class), "%" +card_number + "%"));
                }
                if (!CommonUtil.isEmtpy(createTime)) {
                    try {
                        Date st = sdf.parse(createTime + " 00:00:00 000");
                        Date et = sdf.parse(createTime + " 23:59:59 999");
                        predicates.add(cb.between(root.get("createTime"), st, et));
                    } catch (ParseException e) {
                        throw new IllegalArgumentException("createTime格式错误!");
                    }
                }
                if (!CommonUtil.isEmtpy(lastReviseTime)) {
                    try {
                        Date st = sdf.parse(lastReviseTime + " 00:00:00 000");
                        Date et = sdf.parse(lastReviseTime + " 23:59:59 999");
                        predicates.add(cb.between(root.get("lastReviseTime"), st, et));
                    } catch (ParseException e) {
                        throw new IllegalArgumentException("lastReviseTime格式错误!");
                    }
                }
                if (!CommonUtil.isEmtpy(type)) {
                    predicates.add(cb.equal(root.get("type"), type));
                }
                if (!CommonUtil.isEmtpy(status)) {
                    predicates.add(cb.equal(root.get("status"), status));
                }
                return cb.and(predicates.toArray(new Predicate[0]));
            }
        }, pageable);
    }

 

/**

*增

**/

    public UnionpaySpeciallist save(UnionpaySpeciallist list) {
        return specialRepository.save(list);
    }

 

/**

*查

**/

    public UnionpaySpeciallist findById(String id) {
        return specialRepository.findOne(id);
    }

 

/**

*删

**/

public void delete(String id) {
        timerRepository.delete(id);
    }

  

}
 

controller层

@RestController
@RequestMapping("/blacklist")
@Api(tags = "银联黑名单管理")
public class BlacklistController {

    @Autowired
    private BlacklistService blacklistService;
 

@GetMapping(value = "/list")
    @ApiOperation(value = "分页获取特殊黑名单列表", produces = MediaType.APPLICATION_JSON_VALUE)
    public JsonResponse<?> list(
            @ApiParam(value = StaticFinalStringUtil.AFC_SPECIAL_STRING) @PageableDefault(page = 0, size = 10) Pageable pageable,
            @ApiParam(value = "银联IC卡号", required = false) @RequestParam(name = "cardNumber", required = false) String cardNumber,
            @ApiParam(value = "创建日期", required = false) @RequestParam(name = "createTime", required = false) String createTime,
            @ApiParam(value = "修改日期", required = false) @RequestParam(name = "lastReviseTime", required = false) String lastReviseTime,
            @ApiParam(value = "类型", required = false) @RequestParam(name = "type", required = false) Boolean type,
            @ApiParam(value = "状态", required = false) @RequestParam(name = "status", required = false) String status) {
        try {
            return new JsonResponse<>(blacklistService.list(pageable, cardNumber, createTime, lastReviseTime,type, status));
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponse<>(500, e.getMessage());
        }
    }

    @PostMapping(value = "/add")
    @ApiOperation(value = "新增特殊黑名单", produces = MediaType.APPLICATION_JSON_VALUE)
    public JsonResponse<?> add(HttpServletRequest request, @ApiParam("") @RequestBody UnionpaySpeciallist list) {
        try {
            User user = sessionService.getLoginUser(request);
            list.setCreator(user.getUserName());
            list.setLastReviser(user.getUserName());
            list.setCreateTime(sdf.parse(sdf.format(new Date())));
            list.setLastReviseTime(sdf.parse(sdf.format(new Date())));
            list.setValidTime(sdf.parse(sdf.format(list.getValidTime())));
            return new JsonResponse<>(blacklistService.save(list));
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponse<>(500, e.getMessage());
        }
    }

    @PostMapping(value = "/update")
    @ApiOperation(value = "更新特殊黑名单", produces = MediaType.APPLICATION_JSON_VALUE)
    public JsonResponse<?> update(HttpServletRequest request, @ApiParam("") @RequestBody UnionpaySpeciallist list,
            @ApiParam("") @RequestParam String id) {
        try {
            UnionpaySpeciallist speciallist = blacklistService.findById(id);
            if (speciallist == null) {
                return new JsonResponse<>(500, "找不到该条数据");
            } else {
                User user = sessionService.getLoginUser(request);
                speciallist.setCardNumber(list.getCardNumber());
                speciallist.setLastReviseTime(sdf.parse(sdf.format(new Date())));
                speciallist.setLastReviser(user.getUserName());
                speciallist.setStatus(list.getStatus());
                speciallist.setType(list.getType());
                speciallist.setValidTime(sdf.parse(sdf.format(list.getValidTime())));
                return new JsonResponse<>(blacklistService.save(speciallist));
            }
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponse<>(500, e.getMessage());
        }
    }

 

@PostMapping("/delete")
    @ApiOperation(value = "删除特殊黑名单", produces = MediaType.APPLICATION_JSON_VALUE)
    public JsonResponse<?> delete(@ApiParam(value = "特殊黑名单id") @RequestParam(required = true) String ids) {
        try {
            blacklistService.delete(id);
            return new JsonResponse<>(200, "删除成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponse<>(500, e.getMessage());
        }
    }

 

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值