package com.hongqiang.shop.modules.user.dao;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.FlushModeType;
import org.springframework.stereotype.Repository;
import com.hongqiang.shop.common.base.persistence.BaseDaoImpl;
import com.hongqiang.shop.common.base.persistence.Page;
import com.hongqiang.shop.common.utils.Filter;
import com.hongqiang.shop.common.utils.Order;
import com.hongqiang.shop.common.utils.Pageable;
import com.hongqiang.shop.modules.entity.MemberAttribute;
@Repository
public class MemberAttributeDaoImpl extends BaseDaoImpl<MemberAttribute,Long>
implements MemberAttributeDaoCustom {
@Override
public Integer findUnusedPropertyIndex() {
for (int i = 0; i < 10; i++) {
String str = "select count(*) from MemberAttribute memberAttribute where memberAttribute.propertyIndex = :propertyIndex";
Long localLong = (Long) this.getEntityManager()
.createQuery(str, Long.class)
.setFlushMode(FlushModeType.COMMIT)
.setParameter("propertyIndex", Integer.valueOf(i))
.getSingleResult();
if (localLong.longValue() == 0L)
return Integer.valueOf(i);
}
return null;
}
@Override
public Page<MemberAttribute> findPage(Pageable pageable) {
String qlString = "select memberAttribute from MemberAttribute memberAttribute where 1=1 ";
List<Object> parameter = new ArrayList<Object>();
return super.findPage(qlString, parameter, pageable);
}
@Override
public List<MemberAttribute> findList() {
String str = "select memberAttribute from MemberAttribute memberAttribute "+
"where memberAttribute.isEnabled = true order by memberAttribute.order asc";
return this.getEntityManager().createQuery(str, MemberAttribute.class)
.setFlushMode(FlushModeType.COMMIT).getResultList();
}
@Override
public List<MemberAttribute> findList(Integer first, Integer count,
List<Filter> filters, List<Order> orders) {
String qlString = "select memberAttribute from MemberAttribute memberAttribute where 1=1 ";
List<Object> parameter = new ArrayList<Object>();
return super.findList(qlString, parameter, first, count, filters, orders);
}
@Override
public List<MemberAttribute> findAll() {
return findList(null, null, null, null);
}
@Override
public void remove(MemberAttribute memberAttribute) {
if ((memberAttribute != null)
&& ((memberAttribute.getType() == MemberAttribute.Type.text)
|| (memberAttribute.getType() == MemberAttribute.Type.select) || (memberAttribute
.getType() == MemberAttribute.Type.checkbox))) {
String str1 = "attributeValue" + memberAttribute.getPropertyIndex();
String str2 = "update Member members set members." + str1
+ " is null";
this.getEntityManager().createQuery(str2)
.setFlushMode(FlushModeType.COMMIT).executeUpdate();
super.remove(memberAttribute);
}
}
}