package com.oying.modules.system.service.impl; import cn.hutool.core.util.IdUtil; import com.oying.modules.system.domain.Merchant; import com.oying.modules.system.domain.UserMerchant; import com.oying.modules.system.mapper.MerchantMapper; import com.oying.modules.system.service.UserMerchantService; import com.oying.utils.FileUtil; import com.oying.utils.enums.MerchantRole; import lombok.RequiredArgsConstructor; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.oying.modules.system.service.MerchantService; import com.oying.modules.system.domain.dto.MerchantsQueryCriteria; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.oying.utils.PageUtil; import java.util.List; import java.util.Map; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.LinkedHashMap; import com.oying.utils.PageResult; /** * @author lixin * @description 服务实现 * @date 2025-05-29 **/ @Service @RequiredArgsConstructor public class MerchantServiceImpl extends ServiceImpl implements MerchantService { private final MerchantMapper merchantMapper; private final UserMerchantService userMerchantService; @Override public PageResult queryAll(MerchantsQueryCriteria criteria, Page page) { return PageUtil.toPage(merchantMapper.findAll(criteria, page)); } @Override public List queryAll(MerchantsQueryCriteria criteria) { return merchantMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(Merchant resources) { resources.setMerchantCode(IdUtil.getSnowflakeNextIdStr()); merchantMapper.insert(resources); UserMerchant userMerchant = new UserMerchant(); userMerchant.setMerchantId(resources.getMerchantId()); userMerchant.setUserId(resources.getUserId()); userMerchant.setRoleType(MerchantRole.OWNER.getRole()); userMerchantService.create(userMerchant); } @Override @Transactional(rollbackFor = Exception.class) public void update(Merchant resources) { Merchant merchant = getById(resources.getMerchantId()); merchant.copy(resources); merchantMapper.updateById(merchant); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List ids) { merchantMapper.deleteBatchIds(ids); } @Override public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (Merchant merchant : all) { Map map = new LinkedHashMap<>(); map.put("商户类型", merchant.getMerchantType()); map.put("名称", merchant.getMerchantName()); map.put("商户编码", merchant.getMerchantCode()); map.put("营业执照号", merchant.getBusinessLicense()); map.put("营业执照号路径", merchant.getBusinessLicensePath()); map.put("联系手机", merchant.getContactMobile()); map.put("排序", merchant.getMerchantSort()); map.put("状态", merchant.getEnabled()); map.put("审核人", merchant.getAuditUser()); map.put("审核时间", merchant.getAuditTime()); map.put("审核信息", merchant.getAuditMessage()); map.put("创建者", merchant.getCreateBy()); map.put("更新者", merchant.getUpdateBy()); map.put("创建日期", merchant.getCreateTime()); map.put("更新时间", merchant.getUpdateTime()); list.add(map); } FileUtil.downloadExcel(list, response); } }