From 62a447d89331aee1feae7724c7616aa1bb2cfe79 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 16 十月 2024 14:28:37 +0800
Subject: [PATCH] 将CMQ替换为rabbitmq

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java |  451 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 253 insertions(+), 198 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java
index a0e3225..0657e31 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java
@@ -1,198 +1,253 @@
-package com.yeshi.fanli.service.impl.push;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-import javax.transaction.Transactional;
-
-import org.springframework.stereotype.Service;
-
-import com.yeshi.fanli.dao.mybatis.push.PushCouponMapper;
-import com.yeshi.fanli.entity.push.PushCoupon;
-import com.yeshi.fanli.exception.PushException;
-import com.yeshi.fanli.exception.push.PushCouponException;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.push.PushCouponRecordService;
-import com.yeshi.fanli.service.inter.push.PushCouponService;
-import com.yeshi.fanli.service.inter.push.PushService;
-
-@Service
-public class PushCouponServiceImpl implements PushCouponService {
-
-	@Resource
-	private PushService pushService;
-
-	@Resource
-	private ConfigService configService;
-
-	@Resource
-	private PushCouponMapper pushCouponMapper;
-	
-	@Resource
-	private PushCouponRecordService pushCouponRecordService;
-	
-	@Override
-	public int deleteByPrimaryKey(Long id) {
-		return pushCouponMapper.deleteByPrimaryKey(id);
-	}
-
-	@Override
-	public int insert(PushCoupon record) {
-		return pushCouponMapper.insert(record);
-	}
-
-	@Override
-	public int insertSelective(PushCoupon record) {
-		return pushCouponMapper.insertSelective(record);
-	}
-
-	@Override
-	public PushCoupon selectByPrimaryKey(Long id) {
-		return pushCouponMapper.selectByPrimaryKey(id);
-	}
-
-	@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 long countQuery(String key, Integer state) {
-		return pushCouponMapper.countQuery(key, state);
-	}
-
-	@Override
-	@Transactional
-	public void save(PushCoupon record) throws PushCouponException {
-		if (record == null) {
-			throw new PushCouponException(1, "鍙傛暟涓嶆纭�");
-		}
-
-		String title = record.getTitle();
-		String content = record.getContent();
-		if (title == null || title.trim().length() == 0 || content == null || content.trim().length() == 0) {
-			throw new PushCouponException(1, "鏍囬鎴栧唴瀹逛笉鑳戒负绌�");
-		}
-
-		Date startTime = record.getStartTime();
-		Date endTime = record.getEndTime();
-		if (startTime == null || endTime == null) {
-			throw new PushCouponException(1, "鏈夋晥鏈熸椂闂翠笉鑳戒负绌�");
-		}
-
-		Integer amount = record.getAmount();
-		if (amount == null || amount < 1) {
-			throw new PushCouponException(1, "鍒告暟閲忎笉鑳藉皬浜�1");
-		}
-
-		Long id = record.getId();
-		if (id == null) {
-			// 鏂板
-			record.setPushed(false);
-			record.setCreateTime(new Date());
-			record.setUpdateTime(new Date());
-
-			// 鎻掑叆鏁版嵁
-			insert(record);
-		} else {
-			// 淇敼
-			PushCoupon current = selectByPrimaryKey(id);
-			if (current == null) {
-				throw new PushCouponException(1, "璇ヨ褰曞凡涓嶅瓨鍦�");
-			}
-
-			current.setTitle(title);
-			current.setContent(content);
-			current.setAmount(amount);
-			current.setStartTime(startTime);
-			current.setEndTime(endTime);
-			current.setUids(record.getUids());
-			current.setRemark(record.getRemark());
-
-			// 鏇存柊鏁版嵁
-			updateByPrimaryKey(current);
-		}
-	}
-
-	@Override
-	@Transactional
-	public void executePush(Long id) throws Exception, PushCouponException, PushException {
-
-		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, "鏍囬鎴栧唴瀹逛笉鑳戒负绌�");
-		}
-		
-		
-		String uids = pushCoupon.getUids();
-		if (uids == null || uids.trim().length() == 0) {
-			// 鍏ㄦ帹
-			pushService.pushWelfareCenter(null, title, content);
-			
-		} else {
-			// 鎸囧畾鐢ㄦ埛鎺ㄩ��
-			String[] uidArray = uids.split(",");
-			
-			if (uidArray != null) {
-				for (int i = 0; i < uidArray.length; i++) {
-					String str_uid = uidArray[i];
-					if (str_uid != null && str_uid.trim().length() > 0) {
-						pushService.pushWelfareCenter(Long.parseLong(str_uid), title, content);
-					}
-				}
-			}
-			
-		}
-		
-		// 宸叉帹閫�
-		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() {
-		return pushCouponMapper.listQueryEffective();
-	}
-	
-}
+package com.yeshi.fanli.service.impl.push;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.yeshi.fanli.dao.mybatis.push.PushCouponMapper;
+import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
+import com.yeshi.fanli.entity.push.PushCoupon;
+import com.yeshi.fanli.entity.push.PushCouponRecord;
+import com.yeshi.fanli.exception.push.PushCouponException;
+import com.yeshi.fanli.exception.push.PushException;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.push.PushCouponRecordService;
+import com.yeshi.fanli.service.inter.push.PushCouponService;
+import com.yeshi.fanli.service.inter.push.PushService;
+import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.util.StringUtil;
+
+import net.sf.json.JSONObject;
+
+@Service
+public class PushCouponServiceImpl implements PushCouponService {
+
+    @Resource
+    private PushService pushService;
+
+    @Resource
+    private PushCouponMapper pushCouponMapper;
+
+    @Resource
+    private PushCouponRecordService pushCouponRecordService;
+
+    @Override
+    public int deleteByPrimaryKey(Long id) {
+        return pushCouponMapper.deleteByPrimaryKey(id);
+    }
+
+    @Override
+    public int insert(PushCoupon record) {
+        return pushCouponMapper.insert(record);
+    }
+
+    @Override
+    public int insertSelective(PushCoupon record) {
+        return pushCouponMapper.insertSelective(record);
+    }
+
+    @Override
+    public PushCoupon selectByPrimaryKey(Long id) {
+        return pushCouponMapper.selectByPrimaryKey(id);
+    }
+
+    @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, SystemEnum system) {
+        return pushCouponMapper.listQuery(start, count, key, state, system);
+    }
+
+    @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, "鍙傛暟涓嶆纭�");
+        }
+
+        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");
+        }
+
+
+        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);
+//			if (current == null) {
+//				throw new PushCouponException(1, "璇ヨ褰曞凡涓嶅瓨鍦�");
+//			}
+//			
+//			if(current.isPushed()) {
+//				throw new PushCouponException(1, "宸叉帹閫佺殑淇℃伅涓嶈兘淇敼");
+//			}
+//			current.setAmount(amount);
+//			current.setUids(record.getUids());
+//			current.setRemark(record.getRemark());
+//			current.setUpdateTime(new Date());
+//			// 鏇存柊鏁版嵁
+//			updateByPrimaryKey(current);
+        }
+    }
+
+    @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, "鎺ㄩ�佺増鏈笉鑳戒负绌�");
+        }
+
+
+        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);
+    }
+
+}

--
Gitblit v1.8.0