From 0912f56a392bdf48315747c64ec0c18bf0aa29a6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 30 六月 2021 19:07:11 +0800
Subject: [PATCH] 礼金红包兼容
---
fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushCouponServiceImpl.java | 483 ++++++++++++++++++++++++++++-------------------------
1 files changed, 253 insertions(+), 230 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 bb45644..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,230 +1,253 @@
-package com.yeshi.fanli.service.impl.push;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-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) {
- throw new PushCouponException(1, "鍒告暟閲忎笉鑳戒负绌�");
- } else if (amount < 1 || amount > 5) {
- throw new PushCouponException(1, "鍒告暟閲忚寖鍥存槸 1~5");
- }
-
- BigDecimal percent = record.getPercent();
- if (percent != null && (percent.compareTo(new BigDecimal(60)) > 0
- || percent.compareTo(new BigDecimal(1)) < 0)) {
- throw new PushCouponException(1, "鍒告瘮渚嬭寖鍥存槸1~60 鐨勬鏁存暟");
- }
-
-
- 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, "璇ヨ褰曞凡涓嶅瓨鍦�");
- }
-
- if(current.isPushed()) {
- 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, "鎺ㄩ�佷俊鎭凡涓嶅瓨鍦�");
- }
-
- if(pushCoupon.isPushed()) {
- 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> listVersion = null;
- String versions = pushCoupon.getVersions();
- if (versions != null && versions.trim().length() > 0) {
- listVersion = Arrays.asList(versions.split(","));
- if (listVersion == null || listVersion.size() == 0) {
- throw new PushCouponException(1, "鐗堟湰鍙锋牸寮忎笉姝g‘\"");
- }
- }
-
- if (listuid == null) {
- // 鍏ㄦ帹
- pushService.pushWelfareCenter(null, title, content, listVersion);
-
- } else {
- // 鎸囧畾鐢ㄦ埛鎺ㄩ��
- for (String str_uid: listuid) {
- if (str_uid != null && str_uid.trim().length() > 0) {
- pushService.pushWelfareCenter(Long.parseLong(str_uid), title, content, listVersion);
- }
- }
- }
-
- // 宸叉帹閫�
- 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