package com.kucun.dataDo;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Dingdan;
import com.kucun.data.entity.DTO.DingdanKucunDTO;
@Repository
public interface DingdanRepository extends JpaRepository<Dingdan, Integer> {
boolean existsByNumber(String number);
//
//
// // 自定义查询:获取订单及相关库存信息
// @Query("SELECT new com.kucun.data.dto.OrderInventoryDTO(" +
// "d.id, d.number, dc.id, cp.bianhao, b.id, b.houdu, c.name, k.shuliang) " +
// "FROM Dingdan d " +
// "JOIN d.dingdan_chanpins dc " +
// "JOIN dc.chanping cp " +
// "JOIN cp.zujians cz " +
// "JOIN cz.bancai b " +
// "JOIN b.caizhi c " +
// "JOIN b.kucun k " +
// "WHERE d.id = :orderId")
// List<DingdanKucunDTO> findInventoryByOrderId(@Param("orderId") Integer orderId);
//订单号查询
@Query("SELECT DISTINCT d FROM Dingdan d " +
"WHERE d.number = :number")
Dingdan findByNumberWithFullDetails(@Param("number") String number);
}
package com.kucun.dataDo;
import org.springframework.data.jpa.repository.JpaRepository;
import com.kucun.data.entity.Chanpin;
import com.kucun.data.entity.Kucun;
//ChanpinRepository.java
public interface KucunRepository extends JpaRepository<Kucun, Integer> {
}
package com.kucun.dataDo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Mupi;
@Repository
public interface MupiRepository extends JpaRepository<Mupi,Integer>{
}
package com.kucun.dataDo;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.User;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// 登录
@Query(value="select * from user where andy=:andy and pass=:pass",nativeQuery = true)
User GetUsers(@Param(value="andy")String andy,
@Param("pass")String pass);
@Query(value="select * from user where andy=:andy",nativeQuery = true)
User findByAndy(@Param(value="andy")String andy);
}
package com.kucun.dataDo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Chanpin;
import com.kucun.data.entity.Zujian;
//ChanpinRepository.java
@Repository
public interface ZujianRepository extends JpaRepository<Zujian, Integer> {
boolean existsByName(String name);
}
package com.kucun.dataDo;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Bancai;
import com.kucun.data.entity.DTO.BancaiDTO;
@Repository
public interface BancaiRepository extends JpaRepository<Bancai, Integer> {
@Query("SELECT b FROM Bancai b " +
"JOIN b.caizhi c " +
"JOIN b.mupi1 m1 " +
"JOIN b.mupi2 m2 " +
"WHERE c.name = :caizhiName " +
"AND m1.name = :mupi1Name " +
"AND m2.name = :mupi2Name")
List<Bancai> findComplexJoin(@Param("caizhiName") String caizhiName,
@Param("mupi1Name") String mupi1Name,
@Param("mupi2Name") String mupi2Name);
@Query("SELECT COUNT(b) FROM Bancai b " +
"JOIN b.caizhi c " +
"JOIN b.mupi1 m1 " +
"JOIN b.mupi2 m2 " +
"WHERE c.id = :caizhiid " +
"AND m1.id = :mupi1id " +
"AND m2.id = :mupi2id")
Integer findComplexidCOUNT(@Param("caizhiid") Integer caizhiid,
@Param("mupi1id") Integer mupi1id,
@Param("mupi2id") Integer mupi2id);
// 使用JOIN FETCH预加载所有关联
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " +
"WHERE b.id = :id")
Optional<Bancai> findFullDetailById(@Param("id") Integer id);
// 获取板材及其关联的所有木皮信息(包括mupi1和mupi2)
@Query("SELECT b, c, m1, m2 FROM Bancai b " +
"JOIN b.caizhi c " +
"JOIN b.mupi1 m1 " +
"JOIN b.mupi2 m2 " +
"WHERE b.id = :id")
List<Object[]> findFullAssociations(@Param("id") Integer id);
// 批量获取多个板材的完整信息
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " +
"WHERE b.id IN :ids")
List<Bancai> findBatchDetails(@Param("ids") List<Integer> ids);
// 批量获取所有板材的完整信息
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " )
List<Bancai> findBatchALLDetails();
// 批量获取多个板材的完整信息
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " +
"WHERE b.houdu IN :hou")
List<Bancai> findBatchHoudu(@Param("hou") List<Double> hou);
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " +
"LEFT JOIN FETCH b.kucun " +
"WHERE b.id = :id")
Optional<Bancai> findByIdWithAssociations(@Param("id") int id);
@Query("SELECT b FROM Bancai b " +
"LEFT JOIN FETCH b.caizhi " +
"LEFT JOIN FETCH b.mupi1 " +
"LEFT JOIN FETCH b.mupi2 " +
"LEFT JOIN FETCH b.kucun ")
List<Bancai> findByAllWithAssociations();
}
package com.kucun.dataDo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Caizhi;
@Repository
public interface CaizhiRepository extends JpaRepository<Caizhi, Integer> {
}
package com.kucun.dataDo;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Chanpin;
//ChanpinRepository.java
@Repository
public interface ChanpinRepository extends JpaRepository<Chanpin, Integer> {
boolean existsByBianhao(String bianhao);
List<Chanpin> findByBianhao(String bianhao);
}
package com.kucun.dataDo;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Chanpin;
import com.kucun.data.entity.Chanpin_zujian;
import com.kucun.data.entity.Dingdan;
//ChanpinRepository.java
//ChanpinZujianRepository.java
@Repository
public interface ChanpinZujianRepository extends JpaRepository<Chanpin_zujian, Integer> {
boolean existsByChanpin_IdAndZujian_Id(Integer chanpinid, Integer zujianid);
Chanpin_zujian findByChanpin_IdAndZujian_Id(Integer chanpinid, Integer zujianid);
}
package com.kucun.dataDo;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Chanpin;
import com.kucun.data.entity.Dingdan_chanpin;
//DingdanChanpinRepository.java
@Repository
public interface DingdanChanpinRepository extends JpaRepository<Dingdan_chanpin, Integer> {
boolean existsByDingdan_IdAndChanpin_Id(Integer dingdanid, Integer chanpinid);
List<Dingdan_chanpin> findByChanpin_Id(Integer id);
}
package com.kucun.dataDo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.kucun.data.entity.Chanpin;
import com.kucun.data.entity.Dingdan_chanpin_zujian;
//ChanpinRepository.java
//DingdanChanpinZujianRepository.java
@Repository
public interface DingdanChanpinZujianRepository extends JpaRepository<Dingdan_chanpin_zujian, Integer> {
boolean existsByDingdan_IdAndZujian_Id(Integer dingdanid, Integer chanpin_zujianid);
}
package com.kucun.data.entity;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
@Entity
public class Jinhuo implements EntityBasis{
@Id
private Integer id;
@ManyToOne
@JsonSerialize(using = IdOnlySerializer.class)
private Dingdan dingdan;
@ManyToOne
@JsonSerialize(using = IdOnlySerializer.class)
private Chanpin chanpin;
@ManyToOne
@JsonSerialize(using = IdOnlySerializer.class)
private Zujian zujian;
@ManyToOne
@JsonSerialize(using = IdOnlySerializer.class)
private Bancai bancai;
private Integer shuliang;
private Date date;
@ManyToOne
@JsonSerialize(using = IdOnlySerializer.class)
private User user;
public Jinhuo(Integer id, Dingdan dingdan, Chanpin chanpin, Zujian zujian, Bancai bancai, Integer shuliang,
Date date, User user) {
super();
this.id = id;
this.dingdan = dingdan;
this.chanpin = chanpin;
this.zujian = zujian;
this.bancai = bancai;
this.shuliang = shuliang;
this.date = date;
this.user = user;
}
public Jinhuo() {
super();
// TODO Auto-generated constructor stub
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Dingdan getDingdan() {
return dingdan;
}
public void setDingdan(Dingdan dingdan) {
this.dingdan = dingdan;
}
public Chanpin getChanpin() {
return chanpin;
}
public void setChanpin(Chanpin chanpin) {
this.chanpin = chanpin;
}
public Zujian getZujian() {
return zujian;
}
public void setZujian(Zujian zujian) {
this.zujian = zujian;
}
public Bancai getBancai() {
return bancai;
}
public void setBancai(Bancai bancai) {
this.bancai = bancai;
}
public Integer getShuliang() {
return shuliang;
}
public void setShuliang(Integer shuliang) {
this.shuliang = shuliang;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package com.kucun.data.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 库存
* @author Administrator
*
*/
@Entity
public class Kucun implements EntityBasis{
@Id
private Integer id;
private Long shuliang;
@OneToOne(fetch = FetchType.LAZY) // 正确映射 Bancai 实体
@JoinColumn(name = "bancai_id", referencedColumnName = "id")
@JsonSerialize(using = IdOnlySerializer.class)
private Bancai bancai;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Bancai getBancai() {
return bancai;
}
public void setBancai(Bancai bancai) {
this.bancai = bancai;
}
public Long getShuliang() {
return shuliang;
}
public void setShuliang(Long shuliang) {
this.shuliang = shuliang;
}
public Kucun(Integer id, Bancai bancai, Long shuliang) {
super();
this.id = id;
this.bancai = bancai;
this.shuliang = shuliang;
}
public Kucun() {
super();
// TODO Auto-generated constructor stub
}
}
package com.kucun.data.entity;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 木皮
* @author Administrator
*
*/
@Entity
@Table(name="caizhi", uniqueConstraints = {
@UniqueConstraint(columnNames = "name")
})
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Mupi extends SimpleEntity implements EntityBasis{
/**
* 是否有油漆
*/
private Boolean you;
// 添加 OneToMany 映射
@OneToMany(mappedBy = "mupi1") // 指向 Bancai 中的 mupi1 字段
@JsonIgnore
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Bancai> bancaisForMupi1;
@OneToMany(mappedBy = "mupi2") // 指向 Bancai 中的 mupi2 字段
@JsonIgnore
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Bancai> bancaisForMupi2;
public List<Bancai> getBancaisForMupi1() {
return bancaisForMupi1;
}
public void setBancaisForMupi1(List<Bancai> bancaisForMupi1) {
this.bancaisForMupi1 = bancaisForMupi1;
}
public List<Bancai> getBancaisForMupi2() {
return bancaisForMupi2;
}
public void setBancaisForMupi2(List<Bancai> bancaisForMupi2) {
this.bancaisForMupi2 = bancaisForMupi2;
}
public Mupi() {
super();
}
public Boolean getYou() {
return you;
}
public void setYou(Boolean you) {
this.you = you;
}
}
package com.kucun.data.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class SimpleEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(nullable = false, unique = true)
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// Getters and Setters...
}
package com.kucun.data.entity;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* 用户
* @author Administrator
*
*/
@Entity
@Table(name="user")
public class User implements EntityBasis{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 名字
*/
@Column(nullable=false)
private String name;
/**
* 账号
*/
@Column(nullable=false)
private String andy;
/**
* 密码
*/
@Column(nullable=false)
private String pass;
/**
* 权限
*/
@Column(nullable=false)
private int role;
public User() {
super();
}
public User(int id, String name, String andy, String pass) {
super();
this.id = id;
this.name = name;
this.andy = andy;
this.pass = pass;
}
public Integer getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAndy() {
return andy;
}
public void setAndy(String andy) {
this.andy = andy;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public int getRole() {
System.out.println(role);
return role;
}
public void setRole(int role) {
this.role = role;
}
@Override
public String toString() {
return "{id:" + id + ", name:" + name + ", andy:" + andy + ", pass:" + pass + ", role:" + role + "}";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(id, user.id) &&
Objects.equals(name, user.name) &&
Objects.equals(andy, user.andy)&&
Objects.equals(role, user.role); //添加所有属性比较
}
@Override
public int hashCode() {
return Objects.hash(id, name, andy,pass,role);
}
}
package com.kucun.data.entity;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
@Entity
public class Zujian extends SimpleEntity implements EntityBasis{
// 反向关联到产品组件
@OneToMany(
mappedBy = "zujian",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Chanpin_zujian> chanpins;
public List<Chanpin_zujian> getChanpins() {
return chanpins;
}
public void setChanpins(List<Chanpin_zujian> chanpins) {
this.chanpins = chanpins;
}
}
package com.kucun.data.entity;
import java.lang.annotation.Annotation;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import com.kucun.data.entity.DTO.*;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* 板材
* @author Administrator
*
*/
@Entity
@Table(name="bancai")
public class Bancai implements EntityBasis {
@Id
private int id;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "caizhi_id") //
@JsonManagedReference // 标记为“主”关联方
@JsonSerialize(using = IdOnlySerializer.class)
private Caizhi caizhi;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "mupi1_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Mupi mupi1;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "mupi2_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Mupi mupi2;
private Double houdu;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "kucun_id", referencedColumnName = "id")
private Kucun kucun;
public Kucun getKucun() {
return kucun;
}
public void setKucun(Kucun kucun) {
this.kucun = kucun;
}
public Integer getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Caizhi getCaizhi() {
return caizhi;
}
public void setCaizhi(Caizhi caizhi) {
this.caizhi = caizhi;
}
public Mupi getMupi1() {
return mupi1;
}
public void setMupi1(Mupi mupi1) {
this.mupi1 = mupi1;
}
public Mupi getMupi2() {
return mupi2;
}
public void setMupi2(Mupi mupi2) {
this.mupi2 = mupi2;
}
public Double getHoudu() {
return houdu;
}
public void setHoudu(Double houdu) {
this.houdu = houdu;
}
public Bancai(int id, Caizhi caizhi, Mupi mupi1, Mupi mupi2, Double houdu) {
super();
this.id = id;
this.caizhi = caizhi;
this.mupi1 = mupi1;
this.mupi2 = mupi2;
this.houdu = houdu;
}
public Bancai() {
super();
}
}
package com.kucun.data.entity;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/**
* 板材材质
* @author Administrator
*
*/
@Entity
@Table(name="caizhi", uniqueConstraints = {
@UniqueConstraint(columnNames = "name")
})
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Caizhi extends SimpleEntity{
@OneToMany(mappedBy="caizhi")
@JsonIgnore
private List<Bancai> bancais;
public Caizhi() {
super();
}
// 添加反向关联维护方法
public void addBancai(Bancai bancai) {
bancais.add(bancai);
bancai.setCaizhi(this);
}
// 添加移除方法
public void removeBancai(Bancai bancai) {
bancais.remove(bancai);
bancai.setCaizhi(null);
}
public List<Bancai> getBancais() {
return bancais;
}
public void setBancais(List<Bancai> bancais) {
this.bancais = bancais;
}
}
package com.kucun.data.entity;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 产品类
* @author Administrator
*
*/
@Entity
@Table(name="chanpin", uniqueConstraints = {
@UniqueConstraint(columnNames = "bianhao")
})
public class Chanpin implements EntityBasis {
@Id
private Integer id;
// 关联订单产品
@OneToMany(
mappedBy = "chanpin",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Dingdan_chanpin> dingdans;
private String bianhao;
@OneToMany(
mappedBy = "chanpin",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
orphanRemoval = true
)
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Chanpin_zujian> zujians;
// 添加/移除组件的辅助方法
public void addZujian(Chanpin_zujian zujian) {
zujians.add(zujian);
zujian.setChanpin(this);
}
public void removeZujian(Chanpin_zujian zujian) {
zujians.remove(zujian);
zujian.setChanpin(null);
}
// 添加/移除组件的辅助方法
public void addDingdan(Dingdan_chanpin dingdan) {
dingdans.add(dingdan);
dingdan.setChanpin(this);
}
public void removeDingdan(Dingdan_chanpin dingdian) {
dingdans.remove(dingdian);
dingdian.setChanpin(null);
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public List<Dingdan_chanpin> getDingdans() {
return dingdans;
}
public void setDingdans(List<Dingdan_chanpin> dingdans) {
this.dingdans = dingdans;
}
public String getBianhao() {
return bianhao;
}
public void setBianhao(String bianhao) {
this.bianhao = bianhao;
}
public List<Chanpin_zujian> getZujians() {
return zujians;
}
public void setZujians(List<Chanpin_zujian> zujians) {
this.zujians = zujians;
}
public Chanpin(Integer id, List<Dingdan_chanpin> dingdians, String bianhao, List<Chanpin_zujian> zujians) {
super();
this.id = id;
this.dingdans = dingdians;
this.bianhao = bianhao;
this.zujians = zujians;
}
public Chanpin() {
super();
// TODO Auto-generated constructor stub
}
}
package com.kucun.data.entity;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 产品组件关联类
* @author Administrator
*
*/
@Entity
@Table(name="chanpin_zujian")
public class Chanpin_zujian implements EntityBasis {
@Id
private Integer id;
// 关联到产品
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "chanpin_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Chanpin chanpin;
// 关联到组件
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "zujian_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Zujian zujian;
// 关联到板材
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "bancai_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Bancai bancai;
private Double one_howmany;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Chanpin getChanpin() {
return chanpin;
}
public void setChanpin(Chanpin chanpin) {
this.chanpin = chanpin;
}
public Zujian getZujian() {
return zujian;
}
public void setZujian(Zujian zujian) {
this.zujian = zujian;
}
public Bancai getBancai() {
return bancai;
}
public void setBancai(Bancai bancai) {
this.bancai = bancai;
}
public Double getOne_howmany() {
return one_howmany;
}
public void setOne_howmany(Double one_howmany) {
this.one_howmany = one_howmany;
}
public Chanpin_zujian() {
super();
// TODO Auto-generated constructor stub
}
}
package com.kucun.data.entity;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 订单
* @author Administrator
*
*/
@Entity
@Table(name="dingdan", uniqueConstraints = {
@UniqueConstraint(columnNames = "number")
})
public class Dingdan implements EntityBasis{
@Id
private Integer id;
//订单号
private String number;
private Date xiadan;
private Date jiaohuo;
@OneToMany(
mappedBy = "dingdan",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
orphanRemoval = true
)
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Dingdan_chanpin> dingdan_chanpins;
// 优化订单与订单组件关联
@OneToMany(
mappedBy = "dingdan",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
orphanRemoval = true
)
@JsonSerialize(contentUsing = IdOnlySerializer.class)
private List<Dingdan_chanpin_zujian> dingdan_chanpins_zujians;
public Date getXiadan() {
return xiadan;
}
public void setXiadan(Date xiadan) {
this.xiadan = xiadan;
}
public Date getJiaohuo() {
return jiaohuo;
}
public void setJiaohuo(Date jiaohuo) {
this.jiaohuo = jiaohuo;
}
public List<Dingdan_chanpin_zujian> getDingdan_chanpins_zujians() {
return dingdan_chanpins_zujians;
}
public void setDingdan_chanpins_zujians(List<Dingdan_chanpin_zujian> dingdan_chanpins_zujians) {
this.dingdan_chanpins_zujians = dingdan_chanpins_zujians;
}
public List<Dingdan_chanpin> getDingdan_chanpins() {
return dingdan_chanpins;
}
public void setDingdan_chanpins(List<Dingdan_chanpin> dingdan_chanpins) {
this.dingdan_chanpins = dingdan_chanpins;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Dingdan(Integer id, String number) {
super();
this.id = id;
this.number = number;
}
public Dingdan() {
super();
// TODO Auto-generated constructor stub
}
}
package com.kucun.data.entity;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 订单和产品关联
* @author Administrator
*
*/
@Entity
@Table(name="dingdan_chanpin")
public class Dingdan_chanpin implements EntityBasis {
@Id
private Integer id;
//产品信息
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "dingdan_id") // 指
@JsonSerialize(using = IdOnlySerializer.class)
private Dingdan dingdan;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "chanpin_id") // 指
@JsonSerialize(using = IdOnlySerializer.class)
private Chanpin chanpin;
private Integer shuliang;//产品数量;
public Chanpin getChanpin() {
return chanpin;
}
public void setChanpin(Chanpin chanpin) {
this.chanpin = chanpin;
}
public Integer getShuliang() {
return shuliang;
}
public void setShuliang(Integer shuliang) {
this.shuliang = shuliang;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Dingdan getDingdan() {
return dingdan;
}
public void setDingdan(Dingdan dingdan) {
this.dingdan = dingdan;
}
public Chanpin getChanping() {
return chanpin;
}
public void setChanping(Chanpin chanping) {
this.chanpin = chanping;
}
}
package com.kucun.data.entity;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kucun.data.entity.DTO.IdOnlySerializer;
/**
* 一个订单中的产品组件订购板材数量
* @author Administrator
*
*/
@Entity
public class Dingdan_chanpin_zujian implements EntityBasis{
@Id
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "dingdan_id") // 指定外键列
@JsonSerialize(using = IdOnlySerializer.class)
private Dingdan dingdan;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "chanpin_zujian_id") // 指定外键列
@JsonSerialize(using = IdOnlySerializer.class)
private Chanpin_zujian zujian; // 修改为单数形式
//板材
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "bancai_id")
@JsonSerialize(using = IdOnlySerializer.class)
private Bancai bancai;
//订购数
private Integer shuliang ;
public Dingdan_chanpin_zujian() {
super();
// TODO Auto-generated constructor stub
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Dingdan getDingdan() {
return dingdan;
}
public void setDingdan(Dingdan dingdan) {
this.dingdan = dingdan;
}
public Bancai getBancai() {
return bancai;
}
public void setBancai(Bancai bancai) {
this.bancai = bancai;
}
public Chanpin_zujian getZujian() {
return zujian;
}
public void setZujian(Chanpin_zujian zujian) {
this.zujian = zujian;
}
public Integer getShuliang() {
return shuliang;
}
public void setShuliang(Integer shuliang) {
this.shuliang = shuliang;
}
}
package com.kucun.data.entity;
public interface EntityBasis {
Integer getId();
}
package com.kucun.data.entity;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* 通信类
* @author Administrator
*
*/
public class Information {
private static final ObjectMapper mapper = new ObjectMapper();
private Integer Status ;
private String text;
private Object data;
public Integer getStatus() {
return Status;
}
public void setStatus(Integer status) {
Status = status;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Information(Integer status, String text, Object data) {
super();
Status = status;
this.text = text;
this.data = data;
}
@SuppressWarnings({"unchecked","rawtypes"})
public Information(Integer status, String text, String data, Class T) throws Exception {
super();
Status = status;
this.text = text;
this.data = fromJson(data,T);
}
public Information() {
super();
// TODO Auto-generated constructor stub
}
public String DataJson() throws JsonProcessingException {
// Java对象转JSON
return mapper.writeValueAsString(this);
}
@SuppressWarnings("unchecked")
public <T> T fromJson(String json, Class<T> clazz) throws Exception {
data= mapper.readValue(json, clazz);
return (T) data;
}
public static Information NewSuccess(Object data) {
return new Information(200, "success", data);
}
public static Information NewSuccess(String data) {
return new Information(200, "success", data);
}
public static Information Newfail(Integer status,String text,Object data) {
return new Information(status, "success", data);
}
}
package com.kucun.data.entity.DTO;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.kucun.data.entity.EntityBasis;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public Module idOnlyModule() {
SimpleModule module = new SimpleModule();
module.addSerializer(EntityBasis.class, new IdOnlySerializer());
return module;
}
}
package com.kucun.data.entity.DTO;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.kucun.data.entity.EntityBasis;
import java.io.IOException;
public class IdOnlySerializer extends JsonSerializer<EntityBasis> {
@Override
public void serialize(EntityBasis entity, JsonGenerator gen, SerializerProvider provider)
throws IOException {
if (entity == null) {
gen.writeNull();
} else {
gen.writeStartObject();
gen.writeNumberField("id", entity.getId());
gen.writeEndObject();
}
}
}
/**
*1输出所有实体类
* @return
*/
@GetMapping("/alle")
public Map<String, Object> getAllDataWithChildIdse() {
Map<String, Object> response = new HashMap<>();
response.put("caizhis", (caizhiRepository.findAll()));
response.put("bancais", (bancaiRepository.findAll()));
response.put("chanpins", (chanpinRepository.findAll()));
response.put("dingdans", (dingdanRepository.findAll()));
response.put("mupis", (mupiRepository.findAll()));
response.put("zujians", (zujianRepository.findAll()));
response.put("kucuns", (kucunRepository.findAll()));
response.put("users", (userRepository.findAll()));
response.put("chanpin_zujians", (chanpinZujianRepository.findAll()));
response.put("chanpin_zujians", (dingdanChanpinZujianRepository.findAll()));
response.put("chanpin_zujians", (dingdanChanpinRepository.findAll()));
return response;
}
输出:{"bancais":[{"id":1},{"id":2}],"dingdans":[{"id":1}],"mupis":[{"id":1},{"id":2},{"id":3}],"chanpins":[{"id":1}],"kucuns":[{"id":1},{"id":2}],"chanpin_zujians":[{"id":1}],"zujians":[{"id":1}],"caizhis":[{"id":1,"name":"千和板"},{"id":3,"name":"杉木"},{"id":2,"name":"桃花芯"}],"users":[{"id":1}]} 我需要的是实体类中的下级类 只剩下id一个字段,不是全部
最新发布