package com.yeshi.fanli.service.impl.user;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.SQLQuery;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.yeshi.fanli.dao.mybatis.user.ShamUserMapper;
|
import com.yeshi.fanli.dao.user.ShamUserDao;
|
import com.yeshi.fanli.entity.bus.user.ShamUser;
|
import com.yeshi.fanli.service.inter.config.ConfigService;
|
import com.yeshi.fanli.service.inter.user.ShamUserService;
|
import com.yeshi.fanli.util.StringUtil;
|
|
import net.sf.json.JSONArray;
|
|
@Service
|
public class ShamUserServiceImpl implements ShamUserService {
|
|
@Resource
|
private ShamUserDao dao;
|
|
@Resource
|
private ShamUserMapper shamUserMapper;
|
|
@Resource
|
private ConfigService configService;
|
|
|
@Transactional
|
public void addShamUser(ShamUser shamUser) {
|
dao.save(shamUser);
|
}
|
|
public List<ShamUser> getAll() {
|
return dao.list("from ShamUser");
|
}
|
|
|
@SuppressWarnings("unchecked")
|
public List<ShamUser> findShamUserList(int sum){
|
return (List<ShamUser>) dao.excute(new HibernateCallback<List<ShamUser>>() {
|
|
public List<ShamUser> doInHibernate(Session session)
|
throws HibernateException {
|
SQLQuery query = session.createSQLQuery("SELECT * FROM yeshi_ec_sham_user").addEntity(ShamUser.class);
|
query.setFirstResult(0);
|
query.setMaxResults(sum);
|
List<ShamUser> list = query.list();
|
return list;
|
}
|
});
|
}
|
|
|
@Transactional
|
public void delete(final long id) {
|
dao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session)
|
throws HibernateException {
|
session.createQuery(" delete ShamUser su where su.id = ? ").setParameter(0, id).executeUpdate();
|
return null;
|
}
|
});
|
}
|
|
|
|
@Override
|
public int deleteByPrimaryKey(Long id) {
|
return shamUserMapper.deleteByPrimaryKey(id);
|
}
|
|
@Override
|
public int insert(ShamUser record) {
|
return shamUserMapper.insert(record);
|
}
|
|
@Override
|
public int insertSelective(ShamUser record) {
|
return shamUserMapper.insertSelective(record);
|
}
|
|
@Override
|
public ShamUser selectByPrimaryKey(Long id) {
|
return shamUserMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public int updateByPrimaryKeySelective(ShamUser record) {
|
return shamUserMapper.updateByPrimaryKeySelective(record);
|
}
|
|
@Override
|
public int updateByPrimaryKey(ShamUser record) {
|
return shamUserMapper.updateByPrimaryKey(record);
|
}
|
|
|
@Override
|
public List<ShamUser> listDistinctPicUrl(long start, int count) {
|
return shamUserMapper.listByDistinctPicUrl(start, count);
|
}
|
|
@Override
|
public int insertBatch(List<ShamUser> list) {
|
return shamUserMapper.insertBatch(list);
|
}
|
|
@Override
|
public int updateBatchSelective(List<ShamUser> list) {
|
return shamUserMapper.updateBatchSelective(list);
|
}
|
|
@Override
|
public List<ShamUser> listRandCouponUser(int count, int smallTime, int largeTime) {
|
List<Integer> listTime = new ArrayList<Integer>();
|
|
while (listTime.size() < count) {
|
int time = smallTime + (int) (Math.random() * (largeTime - smallTime + 1));
|
if (!listTime.contains(Integer.valueOf(time))) {
|
listTime.add(Integer.valueOf(time));
|
}
|
}
|
|
Collections.sort(listTime);
|
|
List<ShamUser> listRand = shamUserMapper.listRand(count);
|
|
for (int i = 1; i <= count; i++) {
|
ShamUser shamUser = (ShamUser) listRand.get(i - 1);
|
|
transformId(shamUser);
|
|
shamUser.setMsg(listTime.get(listTime.size() - i) + "秒前领券购买了这个商品");
|
}
|
|
return listRand;
|
}
|
|
@Override
|
public List<ShamUser> listRandShareUser(int count, BigDecimal shareMoney, int small, int large) {
|
|
List<Integer> listMultiple = new ArrayList<Integer>();
|
|
while (listMultiple.size() < count) {
|
int Multiple = small + (int) (Math.random() * (large - small + 1));
|
listMultiple.add(Integer.valueOf(Multiple));
|
}
|
|
List<String> imgList = new ArrayList<String>();
|
String value = configService.get("shareBonusPicture");
|
|
if (!StringUtil.isNullOrEmpty(value)) {
|
JSONArray array = JSONArray.fromObject(value);
|
if (array != null) {
|
for (int n = 0; n < array.size(); n++) {
|
imgList.add(array.optString(n));
|
}
|
}
|
|
}
|
|
List<ShamUser> listRand = shamUserMapper.listRand(count);
|
|
for (int i = 0; i < count; i++) {
|
ShamUser shamUser = (ShamUser) listRand.get(i);
|
|
transformId(shamUser);
|
|
if (imgList.size() > 0) {
|
int randBonusPic = (int) (Math.random() * imgList.size());
|
shamUser.setShareBonusPic((String) imgList.get(randBonusPic));
|
}
|
|
BigDecimal money = shareMoney.multiply(new BigDecimal(((Integer) listMultiple.get(i)).intValue())).setScale(2, 1);
|
// 必须包含 【奖金¥】 这3个符号, 用于前端颜色区分
|
shamUser.setMsg("分享了这个商品,累计获得奖金¥" + money);
|
}
|
|
return listRand;
|
}
|
|
public void transformId(ShamUser shamUser) {
|
String id = shamUser.getId() + "";
|
|
if (id.length() == 1) {
|
shamUser.setShowId("2****" + id);
|
} else {
|
shamUser.setShowId(id.substring(0, 1) + "****" + id.substring(id.length() - 2, id.length() - 1));
|
}
|
}
|
|
|
@Override
|
public List<ShamUser> listRandUser(int count) {
|
return shamUserMapper.listRand(count);
|
}
|
}
|