| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import com.yeshi.fanli.entity.SystemEnum;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
|
| | |
| | | @Service
|
| | | public class PushCouponServiceImpl implements PushCouponService {
|
| | |
|
| | | @Resource
|
| | | private PushService pushService;
|
| | | @Resource
|
| | | private PushService pushService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | | @Resource
|
| | | private PushCouponMapper pushCouponMapper;
|
| | |
|
| | | @Resource
|
| | | private PushCouponMapper pushCouponMapper;
|
| | | |
| | | @Resource
|
| | | private PushCouponRecordService pushCouponRecordService;
|
| | | |
| | | @Resource
|
| | | private UserSystemCouponService userSystemCouponService;
|
| | | |
| | | @Override
|
| | | public int deleteByPrimaryKey(Long id) {
|
| | | return pushCouponMapper.deleteByPrimaryKey(id);
|
| | | }
|
| | | @Resource
|
| | | private PushCouponRecordService pushCouponRecordService;
|
| | |
|
| | | @Override
|
| | | public int insert(PushCoupon record) {
|
| | | return pushCouponMapper.insert(record);
|
| | | }
|
| | | @Override
|
| | | public int deleteByPrimaryKey(Long id) {
|
| | | return pushCouponMapper.deleteByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public int insertSelective(PushCoupon record) {
|
| | | return pushCouponMapper.insertSelective(record);
|
| | | }
|
| | | @Override
|
| | | public int insert(PushCoupon record) {
|
| | | return pushCouponMapper.insert(record);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public PushCoupon selectByPrimaryKey(Long id) {
|
| | | return pushCouponMapper.selectByPrimaryKey(id);
|
| | | }
|
| | | @Override
|
| | | public int insertSelective(PushCoupon record) {
|
| | | return pushCouponMapper.insertSelective(record);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public int updateByPrimaryKeySelective(PushCoupon record) {
|
| | | return pushCouponMapper.updateByPrimaryKeySelective(record);
|
| | | }
|
| | | @Override
|
| | | public PushCoupon selectByPrimaryKey(Long id) {
|
| | | return pushCouponMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public int updateByPrimaryKey(PushCoupon record) {
|
| | | return pushCouponMapper.updateByPrimaryKey(record);
|
| | | }
|
| | | @Override
|
| | | public int updateByPrimaryKeySelective(PushCoupon record) {
|
| | | return pushCouponMapper.updateByPrimaryKeySelective(record);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public int updateByPrimaryKey(PushCoupon record) {
|
| | | return pushCouponMapper.updateByPrimaryKey(record);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public List<PushCoupon> listQuery(long start, int count, String key, Integer state) {
|
| | | return pushCouponMapper.listQuery(start, count, key, state);
|
| | | }
|
| | | @Override
|
| | | public List<PushCoupon> listQuery(long start, int count, String key, Integer state, SystemEnum system) {
|
| | | return pushCouponMapper.listQuery(start, count, key, state, system);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countQuery(String key, Integer state) {
|
| | | return pushCouponMapper.countQuery(key, state);
|
| | | }
|
| | | @Override
|
| | | public long countQuery(String key, Integer state, SystemEnum system) {
|
| | | return pushCouponMapper.countQuery(key, state, system);
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public void save(PushCoupon record) throws PushCouponException,Exception {
|
| | | if (record == null) {
|
| | | throw new PushCouponException(1, "参数不正确");
|
| | | }
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void save(PushCoupon record) throws PushCouponException, Exception {
|
| | | if (record == null) {
|
| | | throw new PushCouponException(1, "参数不正确");
|
| | | }
|
| | |
|
| | | String uids = record.getUids();
|
| | | if (StringUtil.isNullOrEmpty(uids)) {
|
| | | throw new PushCouponException(1, "发放用户不能为空");
|
| | | }
|
| | | |
| | | Integer amount = record.getAmount();
|
| | | if (amount == null) {
|
| | | throw new PushCouponException(1, "券数量不能为空");
|
| | | } else if (amount < 1 || amount > 5) {
|
| | | throw new PushCouponException(1, "券数量范围是 1~5");
|
| | | }
|
| | | |
| | | String uids = record.getUids();
|
| | | if (StringUtil.isNullOrEmpty(uids)) {
|
| | | throw new PushCouponException(1, "发放用户不能为空");
|
| | | }
|
| | |
|
| | | Long id = record.getId();
|
| | | if (id == null) {
|
| | | // 新增
|
| | | record.setCreateTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | // 插入数据
|
| | | pushCouponMapper.insert(record);
|
| | | |
| | | String[] uidArray = uids.split(",");
|
| | | |
| | | if (uidArray != null) {
|
| | | for (int i = 0; i < uidArray.length; i++) {
|
| | | Integer amount = record.getAmount();
|
| | | if (amount == null) {
|
| | | throw new PushCouponException(1, "券数量不能为空");
|
| | | } else if (amount < 1 || amount > 5) {
|
| | | throw new PushCouponException(1, "券数量范围是 1~5");
|
| | | }
|
| | |
|
| | | Long uid = Long.parseLong(uidArray[i]);
|
| | | // 插入记录
|
| | | PushCouponRecord pushCouponRecord = new PushCouponRecord();
|
| | | pushCouponRecord.setPushCoupon(record);
|
| | | pushCouponRecord.setUid(uid);
|
| | | pushCouponRecord.setCreateTime(new Date());
|
| | | |
| | | // 插入领取记录
|
| | | //pushCouponRecordService.insertSelective(pushCouponRecord);
|
| | | // 直接发送券
|
| | | //userSystemCouponService.randomRewardCoupon(amount, uid, UserSystemCoupon.SOURCE_SYSTEM_PUSH);
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | } else {
|
| | |
|
| | | Long id = record.getId();
|
| | | if (id == null) {
|
| | | // 新增
|
| | | record.setCreateTime(new Date());
|
| | | record.setUpdateTime(new Date());
|
| | | // 插入数据
|
| | | pushCouponMapper.insert(record);
|
| | |
|
| | | String[] uidArray = uids.split(",");
|
| | |
|
| | | if (uidArray != null) {
|
| | | for (int i = 0; i < uidArray.length; i++) {
|
| | |
|
| | | Long uid = Long.parseLong(uidArray[i]);
|
| | | // 插入记录
|
| | | PushCouponRecord pushCouponRecord = new PushCouponRecord();
|
| | | pushCouponRecord.setPushCoupon(record);
|
| | | pushCouponRecord.setUid(uid);
|
| | | pushCouponRecord.setCreateTime(new Date());
|
| | |
|
| | | // 插入领取记录
|
| | | //pushCouponRecordService.insertSelective(pushCouponRecord);
|
| | | // 直接发送券
|
| | | //userSystemCouponService.randomRewardCoupon(amount, uid, UserSystemCoupon.SOURCE_SYSTEM_PUSH);
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | } else {
|
| | | //
|
| | | // // 修改
|
| | | // PushCoupon current = selectByPrimaryKey(id);
|
| | |
| | | // current.setUpdateTime(new Date());
|
| | | // // 更新数据
|
| | | // updateByPrimaryKey(current);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public void executePush(Long id) throws Exception, PushCouponException, PushException {
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void executePush(Long id) throws Exception, PushCouponException, PushException {
|
| | |
|
| | | PushCoupon pushCoupon = selectByPrimaryKey(id);
|
| | | if (pushCoupon == null) {
|
| | | throw new PushCouponException(1, "推送信息已不存在");
|
| | | }
|
| | | |
| | | if(pushCoupon.isPushed()) {
|
| | | throw new PushCouponException(1, "该信息不能重复推送");
|
| | | }
|
| | | String versions = pushCoupon.getVersions();
|
| | | if (versions == null || versions.trim().length() == 0 ) {
|
| | | throw new PushCouponException(1, "推送版本不能为空");
|
| | | }
|
| | | |
| | | PushCoupon pushCoupon = selectByPrimaryKey(id);
|
| | | if (pushCoupon == null) {
|
| | | throw new PushCouponException(1, "推送信息已不存在");
|
| | | }
|
| | |
|
| | | String title = pushCoupon.getTitle();
|
| | | String content = pushCoupon.getContent();
|
| | | if (title == null || title.trim().length() == 0 || content == null || content.trim().length() == 0) {
|
| | | throw new PushCouponException(1, "标题或内容不能为空");
|
| | | }
|
| | | |
| | | |
| | | List<String> listuid = null;
|
| | | String uids = pushCoupon.getUids();
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | throw new PushCouponException(1, "用户id格式不正确");
|
| | | }
|
| | | }
|
| | | |
| | | List<String> listIOS = new ArrayList<String>();
|
| | | JSONObject json = JSONObject.fromObject(versions);
|
| | | String versionsIOS = json.getString("IOS");
|
| | | if (versionsIOS != null && versionsIOS.trim().length() > 0) {
|
| | | if (versionsIOS.contains("全推")) {
|
| | | listIOS = null;
|
| | | } else {
|
| | | listIOS = Arrays.asList(versionsIOS.split(","));
|
| | | }
|
| | | }
|
| | | |
| | | List<String> listAndroid = new ArrayList<String>();
|
| | | String versionsAndroid = json.getString("Android");
|
| | | if (versionsAndroid != null && versionsAndroid.trim().length() > 0) {
|
| | | if (versionsAndroid.contains("全推")) {
|
| | | listAndroid = null;
|
| | | } else {
|
| | | listAndroid = Arrays.asList(versionsAndroid.split(","));
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | if (listuid == null) {
|
| | | // 全推
|
| | | pushService.pushWelfareCenter(null, title, content, listIOS, listAndroid);
|
| | | |
| | | } else {
|
| | | // 指定用户推送
|
| | | for (String str_uid: listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | pushService.pushWelfareCenter(Long.parseLong(str_uid), title, content, listIOS, listAndroid);
|
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | // 已推送
|
| | | pushCoupon.setPushed(true);
|
| | | // 推送时间
|
| | | pushCoupon.setPushTime(new Date());
|
| | | // 更新时间
|
| | | pushCoupon.setUpdateTime(new Date());
|
| | | |
| | | updateByPrimaryKeySelective(pushCoupon);
|
| | | }
|
| | | |
| | | if (pushCoupon.isPushed()) {
|
| | | throw new PushCouponException(1, "该信息不能重复推送");
|
| | | }
|
| | | String versions = pushCoupon.getVersions();
|
| | | if (versions == null || versions.trim().length() == 0) {
|
| | | throw new PushCouponException(1, "推送版本不能为空");
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void deleteBatchByPrimaryKey(List<Long> list) {
|
| | | if (list == null || list.size() == 0) {
|
| | | return;
|
| | | }
|
| | | |
| | | for (Long id: list) {
|
| | | long receivedCount = pushCouponRecordService.countByPushId(id);
|
| | | // 领取数量
|
| | | if (receivedCount > 0) {
|
| | | continue;
|
| | | }
|
| | | |
| | | pushCouponMapper.deleteByPrimaryKey(id);
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<PushCoupon> listQueryEffective() {
|
| | | return pushCouponMapper.listQueryEffective();
|
| | | }
|
| | | |
| | | String title = pushCoupon.getTitle();
|
| | | String content = pushCoupon.getContent();
|
| | | if (title == null || title.trim().length() == 0 || content == null || content.trim().length() == 0) {
|
| | | throw new PushCouponException(1, "标题或内容不能为空");
|
| | | }
|
| | |
|
| | |
|
| | | List<String> listuid = null;
|
| | | String uids = pushCoupon.getUids();
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | throw new PushCouponException(1, "用户id格式不正确");
|
| | | }
|
| | | }
|
| | |
|
| | | List<String> listIOS = new ArrayList<String>();
|
| | | JSONObject json = JSONObject.fromObject(versions);
|
| | | String versionsIOS = json.getString("IOS");
|
| | | if (versionsIOS != null && versionsIOS.trim().length() > 0) {
|
| | | if (versionsIOS.contains("全推")) {
|
| | | listIOS = null;
|
| | | } else {
|
| | | listIOS = Arrays.asList(versionsIOS.split(","));
|
| | | }
|
| | | }
|
| | |
|
| | | List<String> listAndroid = new ArrayList<String>();
|
| | | String versionsAndroid = json.getString("Android");
|
| | | if (versionsAndroid != null && versionsAndroid.trim().length() > 0) {
|
| | | if (versionsAndroid.contains("全推")) {
|
| | | listAndroid = null;
|
| | | } else {
|
| | | listAndroid = Arrays.asList(versionsAndroid.split(","));
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | if (listuid == null) {
|
| | | // 全推
|
| | | pushService.pushWelfareCenter(null, title, content, listIOS, listAndroid, pushCoupon.getSystem());
|
| | |
|
| | | } else {
|
| | | // 指定用户推送
|
| | | for (String str_uid : listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | pushService.pushWelfareCenter(Long.parseLong(str_uid), title, content, listIOS, listAndroid, pushCoupon.getSystem());
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // 已推送
|
| | | pushCoupon.setPushed(true);
|
| | | // 推送时间
|
| | | pushCoupon.setPushTime(new Date());
|
| | | // 更新时间
|
| | | pushCoupon.setUpdateTime(new Date());
|
| | |
|
| | | updateByPrimaryKeySelective(pushCoupon);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void deleteBatchByPrimaryKey(List<Long> list) {
|
| | | if (list == null || list.size() == 0) {
|
| | | return;
|
| | | }
|
| | |
|
| | | for (Long id : list) {
|
| | | long receivedCount = pushCouponRecordService.countByPushId(id);
|
| | | // 领取数量
|
| | | if (receivedCount > 0) {
|
| | | continue;
|
| | | }
|
| | |
|
| | | pushCouponMapper.deleteByPrimaryKey(id);
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<PushCoupon> listQueryEffective(SystemEnum system) {
|
| | | return pushCouponMapper.listQueryEffective(system);
|
| | | }
|
| | |
|
| | | }
|