From fd2a98540297027a2496edcf032f61cc3a94b58d Mon Sep 17 00:00:00 2001 From: ptapqzhfn <511003099@qq.com> Date: Tue, 29 Apr 2025 16:26:13 +0800 Subject: [PATCH] ADD file via upload --- ExchangePointProductsServiceImpl.java | 249 ++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 ExchangePointProductsServiceImpl.java diff --git a/ExchangePointProductsServiceImpl.java b/ExchangePointProductsServiceImpl.java new file mode 100644 index 0000000..f04db00 --- /dev/null +++ b/ExchangePointProductsServiceImpl.java @@ -0,0 +1,249 @@ +package com.rabbiter.market.service.sale_management.exchange_point_products.impl; + +import com.rabbiter.market.common.redis.service.RedisTemplateService; +import com.rabbiter.market.domain.goods_management.goods.Goods; +import com.rabbiter.market.domain.goods_management.point_products.PointProducts; +import com.rabbiter.market.domain.member_management.member.Member; +import com.rabbiter.market.domain.personnel_management.employee.Employee; +import com.rabbiter.market.domain.sale_management.exchange_point_products.ExchangePointProducts; +import com.rabbiter.market.mapper.sale_management.exchange_point_products.ExchangePointProductsMapper; +import com.rabbiter.market.qo.exchange_point_products_records.QueryExchangePointProductsRecords; +import com.rabbiter.market.service.goods_management.goods.IGoodsService; +import com.rabbiter.market.service.goods_management.point_products.IPointProductsService; +import com.rabbiter.market.service.member_management.member.IMemberService; +import com.rabbiter.market.service.sale_management.exchange_point_products.IExchangePointProductsService; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.*; + +@Service +public class ExchangePointProductsServiceImpl extends ServiceImpl implements IExchangePointProductsService { +// 渚濊禆娉ㄥ叆... + + /** + * 鏍规嵁浼氬憳ID鏌ヨ鍙厬鎹㈠晢鍝侀�夐」 + * @param memberId 浼氬憳ID锛堝彲涓虹┖锛� + * @return 鍖呭惈鍟嗗搧ID鍜屽悕绉扮殑Map鍒楄〃 + * 閫昏緫璇存槑锛� + * - 褰搈emberId涓虹┖鏃讹紝杩斿洖鎵�鏈夐渶瑕佺Н鍒嗙殑鍟嗗搧 + * - 褰搈emberId瀛樺湪鏃讹紝鍙繑鍥炰細鍛樺綋鍓嶇Н鍒嗗彲鍏戞崲鐨勫晢鍝� + */ + @Autowired + private IMemberService memberService; + @Autowired + private IPointProductsService pointProductsService; + @Autowired + private RedisTemplateService redisTemplateService; + @Autowired + private IGoodsService goodsService; + + @Override + public List> queryPointProductBymemberId(Long memberId) { + /** + * 閫氳繃鍟嗗搧ID鑾峰彇绉垎鍟嗗搧璇︽儏 + * @param goodsId 鍟嗗搧ID + * @return 绉垎鍟嗗搧瀹炰綋 + */ + Member member = memberService.getById(memberId); + + QueryWrapper pointProductsQueryWrapper = new QueryWrapper(); + if (memberId == null) { + pointProductsQueryWrapper.gt("integral", 0L); + } else { + pointProductsQueryWrapper.le("integral", member.getIntegral()); + } + + List list = pointProductsService.list(pointProductsQueryWrapper); + List> mapArrayList = new ArrayList<>(); + for (PointProducts pointProducts : list) { + Map map = new HashMap<>(); + map.put("id", pointProducts.getGoodsId()); + map.put("name", pointProducts.getGoodsName()); + mapArrayList.add(map); + } + return mapArrayList; + } + + @Override + public PointProducts queryPointProductByGoodsId(Long goodsId) { + /** + * 淇濆瓨绉垎鍏戞崲璁板綍 + * @param exchangePointProducts 鍏戞崲璁板綍瀹炰綋 + * @param token 鐢ㄦ埛浠ょ墝 + * 鏍稿績閫昏緫锛� + * 1. 鐢熸垚鍞竴鍏戞崲鍗曞彿 + * 2. 璁剧疆鎿嶄綔浜轰俊鎭紙浠嶳edis鑾峰彇锛� + * 3. 鏇存柊浼氬憳绉垎 + * 4. 淇濆瓨鍏戞崲璁板綍 + */ + PointProducts pointProducts = pointProductsService.getOne(new QueryWrapper().eq(goodsId != null, "goods_id", goodsId)); + return pointProducts; + } + + @Override + public void saveExchangePointProductRecords(ExchangePointProducts exchangePointProducts, String token) { + /** + * 鏌ヨ鏈夊厬鎹㈣褰曠殑浼氬憳鎵嬫満鍙烽�夐」 + * @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃 + * 娉ㄦ剰锛氫粎鏌ヨ鐘舵�佹甯哥殑鍏戞崲璁板綍 + */ + Employee employee = JSONObject.parseObject(redisTemplateService.getCacheObject(token), Employee.class); + exchangePointProducts.setCn(IdWorker.getIdStr()); + exchangePointProducts.setUpdateby(employee.getNickName()); + exchangePointProducts.setUpdateId(employee.getId()); + exchangePointProducts.setUpdateTime(new Date()); + exchangePointProducts.setState(ExchangePointProducts.STATE_NORMAL); + Member member = memberService.getById(exchangePointProducts.getMemberId()); + member.setIntegral(member.getIntegral() - exchangePointProducts.getIntegral()); + memberService.updateById(member); + super.save(exchangePointProducts); + + } + + @Override + public List> queryOptionsMemberPhone() { + /** + * 閫昏緫鍒犻櫎鍏戞崲璁板綍锛堟爣璁板垹闄わ級 + * @param cn 鍏戞崲鍗曞彿 + */ + QueryWrapper wrapper = new QueryWrapper() + .select("member_id") + .eq("state", ExchangePointProducts.STATE_NORMAL) + .groupBy("member_id"); + List list = super.list(wrapper); + List memberIds = new ArrayList<>(); + for (ExchangePointProducts exchangePointProducts : list) { + memberIds.add(exchangePointProducts.getMemberId()); + } + if (memberIds==null || memberIds.size()<=0){ + return null; + } + List members = memberService.listByIds(memberIds); + List> vos = new ArrayList<>(); + for (Member member : members) { + Map map = new HashMap<>(); + map.put("id", member.getId()); + map.put("name", member.getPhone()); + vos.add(map); + } + + return vos; + } + + @Override + public void delExchangePointProducts(String cn) { + /** + * 鍒嗛〉鏌ヨ鍏戞崲璁板綍 + * @param qo 鏌ヨ鏉′欢瀵硅薄 + * @return 鍒嗛〉缁撴灉锛堝寘鍚叧鑱旂殑浼氬憳鎵嬫満鍙峰拰鍟嗗搧淇℃伅锛� + * 鍔熻兘鐗圭偣锛� + * - 鏀寔鏃堕棿鑼冨洿杩囨护 + * - 鏀寔浼氬憳ID杩囨护 + * - 鏀寔鍗曞彿妯$硦鏌ヨ + * - 鑷姩琛ュ厖鍟嗗搧灏侀潰鍜屽悕绉� + */ + UpdateWrapper wrapper = new UpdateWrapper() + .set("state", ExchangePointProducts.STATE_DEL) + .eq("cn", cn); + super.update(wrapper); + } + + @Override + public Page queryPageByQoExchangePointProducts(QueryExchangePointProductsRecords qo) { + /** + * 鏌ヨ鎵�鏈夊彲鍏戞崲鍟嗗搧閫夐」 + * @return 鍖呭惈鍟嗗搧ID鍜屽悕绉扮殑Map鍒楄〃 + */ + Page page = new Page<>(qo.getCurrentPage(), qo.getPageSize()); + QueryWrapper queryWrapper = new QueryWrapper() + .eq("state", ExchangePointProducts.STATE_NORMAL) + .eq(qo.getMemberId() != null, "member_id", qo.getMemberId()) + .ge(StringUtils.hasText(qo.getStartTime()), "update_time", qo.getStartTime()) + .le(StringUtils.hasText(qo.getEndTime()), "update_time", qo.getEndTime()) + .likeRight(StringUtils.hasText(qo.getCn()), "cn", qo.getCn()); + super.page(page, queryWrapper); + for (ExchangePointProducts record : page.getRecords()) { + Member member = memberService.getById(record.getMemberId()); + record.setMemberPhone(member.getPhone()); + Goods goods = goodsService.getById(record.getGoodsId()); + record.setGoodsCoverUrl(goods.getCoverUrl()); + record.setGoodsName(goods.getName()); + } + return page; + } + + @Override + public List> queryOptionsPointProducts() { /** + * 鏌ヨ鎵�鏈夋甯哥姸鎬佷細鍛橀�夐」 + * @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃 + */ + QueryWrapper wrapper = new QueryWrapper() + .eq("state", PointProducts.STATE_NORMAL); + List list = pointProductsService.list(wrapper); + List> vos = new ArrayList<>(); + for (PointProducts pointProducts : list) { + Map map = new HashMap<>(); + map.put("id", pointProducts.getGoodsId()); + map.put("name", pointProducts.getGoodsName()); + vos.add(map); + } + return vos; + } + + @Override + public List> queryOptionsMember() { + /** + * 鏍规嵁鍟嗗搧ID鏌ヨ鏈夎冻澶熺Н鍒嗗厬鎹㈢殑浼氬憳 + * @param goodsId 鍟嗗搧ID锛堝彲涓虹┖锛� + * @return 鍖呭惈浼氬憳ID鍜屾墜鏈哄彿鐨凪ap鍒楄〃 + * 閫昏緫璇存槑锛� + * - 褰撳晢鍝両D瀛樺湪鏃讹紝鏌ヨ绉垎瓒冲鐨勪細鍛� + * - 褰撳晢鍝両D涓虹┖鏃讹紝杩斿洖鎵�鏈夋湁绉垎鐨勪細鍛� + */ + List> vos = new ArrayList<>(); + QueryWrapper wrapper = new QueryWrapper() + .groupBy("id") + .eq("state", Member.STATE_NORMAL); + List list = memberService.list(wrapper); + for (Member member : list) { + Map map = new HashMap<>(); + map.put("id", member.getId()); + map.put("name", member.getPhone()); + vos.add(map); + } + return vos; + } + + @Override + public List> queryMemberByGoodsId(Long goodsId) { + + List members = new ArrayList<>(); + QueryWrapper memberQueryWrapper = new QueryWrapper(); + memberQueryWrapper.eq("state", Member.STATE_NORMAL); + if (goodsId != null) { + PointProducts pointProducts = pointProductsService.getOne(new QueryWrapper() + .eq("goods_id", goodsId) + .eq("state", PointProducts.STATE_NORMAL)); + memberQueryWrapper.ge("integral", pointProducts.getIntegral()); + } else { + memberQueryWrapper.gt("integral", 0); + } + members = memberService.list(memberQueryWrapper); + List> vos = new ArrayList<>(); + for (Member member : members) { + Map map = new HashMap<>(); + map.put("id", member.getId()); + map.put("name", member.getPhone()); + vos.add(map); + } + return vos; + } +}