oying-system/src/main/java/com/oying/modules/system/domain/Merchants.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/java/com/oying/modules/system/domain/dto/MerchantsQueryCriteria.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/java/com/oying/modules/system/mapper/MerchantsMapper.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/java/com/oying/modules/system/rest/MerchantsController.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/java/com/oying/modules/system/service/MerchantsService.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/java/com/oying/modules/system/service/impl/MerchantsServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
oying-system/src/main/resources/mapper/system/MerchantsMapper.xml | ●●●●● patch | view | raw | blame | history |
oying-system/src/main/java/com/oying/modules/system/domain/Merchants.java
New file @@ -0,0 +1,68 @@ package com.oying.modules.system.domain; import com.oying.base.BaseEntity; import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.ApiModelProperty; import cn.hutool.core.bean.copier.CopyOptions; import java.sql.Timestamp; import javax.validation.constraints.NotBlank; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; import lombok.Setter; /** * @description / * @author lixin * @date 2025-05-29 **/ @Getter @Setter @TableName("sys_merchants") public class Merchants extends BaseEntity implements Serializable { @TableId(value = "merchants_id", type = IdType.AUTO) @ApiModelProperty(value = "ID") private Long merchantsId; @NotBlank @ApiModelProperty(value = "名称") private String merchantName; @NotBlank @ApiModelProperty(value = "商户编码") private String merchantCode; @NotBlank @ApiModelProperty(value = "营业执照号") private String businessLicense; @NotBlank @ApiModelProperty(value = "营业执照号路径") private String businessLicensePath; @NotBlank @ApiModelProperty(value = "联系手机") private String contactMobile; @ApiModelProperty(value = "排序") private Integer merchantsSort; @ApiModelProperty(value = "状态") private String enabled = "1"; @ApiModelProperty(value = "审核人") private String authUser; @ApiModelProperty(value = "审核时间") private Timestamp authTime; @ApiModelProperty(value = "审核信息") private String authMessage; public void copy(Merchants source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } } oying-system/src/main/java/com/oying/modules/system/domain/dto/MerchantsQueryCriteria.java
New file @@ -0,0 +1,36 @@ package com.oying.modules.system.domain.dto; import lombok.Data; import java.sql.Timestamp; import java.util.List; import io.swagger.annotations.ApiModelProperty; /** * @author lixin * @date 2025-05-29 **/ @Data public class MerchantsQueryCriteria{ @ApiModelProperty(value = "页码", example = "1") private Integer page = 1; @ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; @ApiModelProperty(value = "名称") private String merchantName; @ApiModelProperty(value = "商户编码") private String merchantCode; @ApiModelProperty(value = "营业执照号") private String businessLicense; @ApiModelProperty(value = "联系手机") private String contactMobile; @ApiModelProperty(value = "状态") private String enabled; private List<Timestamp> createTime; } oying-system/src/main/java/com/oying/modules/system/mapper/MerchantsMapper.java
New file @@ -0,0 +1,22 @@ package com.oying.modules.system.mapper; import com.oying.modules.system.domain.Merchants; import com.oying.modules.system.domain.dto.MerchantsQueryCriteria; import java.util.List; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; /** * @author lixin * @date 2025-05-29 **/ @Mapper public interface MerchantsMapper extends BaseMapper<Merchants> { IPage<Merchants> findAll(@Param("criteria") MerchantsQueryCriteria criteria, Page<Object> page); List<Merchants> findAll(@Param("criteria") MerchantsQueryCriteria criteria); } oying-system/src/main/java/com/oying/modules/system/rest/MerchantsController.java
New file @@ -0,0 +1,73 @@ package com.oying.modules.system.rest; import com.oying.annotation.Log; import com.oying.modules.system.domain.Merchants; import com.oying.modules.system.service.MerchantsService; import com.oying.modules.system.domain.dto.MerchantsQueryCriteria; import lombok.RequiredArgsConstructor; import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.oying.utils.PageResult; /** * @author lixin * @date 2025-05-29 **/ @RestController @RequiredArgsConstructor @Api(tags = "商户信息") @RequestMapping("/api/merchants") public class MerchantsController { private final MerchantsService merchantsService; @ApiOperation("导出数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('merchants:list')") public void exportMerchants(HttpServletResponse response, MerchantsQueryCriteria criteria) throws IOException { merchantsService.download(merchantsService.queryAll(criteria), response); } @GetMapping @ApiOperation("查询商户信息") @PreAuthorize("@el.check('merchants:list')") public ResponseEntity<PageResult<Merchants>> queryMerchants(MerchantsQueryCriteria criteria){ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); return new ResponseEntity<>(merchantsService.queryAll(criteria,page),HttpStatus.OK); } @PostMapping @Log("新增商户信息") @ApiOperation("新增商户信息") @PreAuthorize("@el.check('merchants:add')") public ResponseEntity<Object> createMerchants(@Validated @RequestBody Merchants resources){ merchantsService.create(resources); return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping @Log("修改商户信息") @ApiOperation("修改商户信息") @PreAuthorize("@el.check('merchants:edit')") public ResponseEntity<Object> updateMerchants(@Validated @RequestBody Merchants resources){ merchantsService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @DeleteMapping @Log("删除商户信息") @ApiOperation("删除商户信息") @PreAuthorize("@el.check('merchants:del')") public ResponseEntity<Object> deleteMerchants(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { merchantsService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } } oying-system/src/main/java/com/oying/modules/system/service/MerchantsService.java
New file @@ -0,0 +1,59 @@ package com.oying.modules.system.service; import com.oying.modules.system.domain.Merchants; import com.oying.modules.system.domain.dto.MerchantsQueryCriteria; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.oying.utils.PageResult; /** * @description 服务接口 * @author lixin * @date 2025-05-29 **/ public interface MerchantsService extends IService<Merchants> { /** * 查询数据分页 * @param criteria 条件 * @param page 分页参数 * @return PageResult */ PageResult<Merchants> queryAll(MerchantsQueryCriteria criteria, Page<Object> page); /** * 查询所有数据不分页 * @param criteria 条件参数 * @return List<MerchantsDto> */ List<Merchants> queryAll(MerchantsQueryCriteria criteria); /** * 创建 * @param resources / */ void create(Merchants resources); /** * 编辑 * @param resources / */ void update(Merchants resources); /** * 多选删除 * @param ids / */ void deleteAll(List<Long> ids); /** * 导出数据 * @param all 待导出的数据 * @param response / * @throws IOException / */ void download(List<Merchants> all, HttpServletResponse response) throws IOException; } oying-system/src/main/java/com/oying/modules/system/service/impl/MerchantsServiceImpl.java
New file @@ -0,0 +1,86 @@ package com.oying.modules.system.service.impl; import com.oying.modules.system.domain.Merchants; import com.oying.utils.FileUtil; 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.MerchantsService; import com.oying.modules.system.domain.dto.MerchantsQueryCriteria; import com.oying.modules.system.mapper.MerchantsMapper; 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; /** * @description 服务实现 * @author lixin * @date 2025-05-29 **/ @Service @RequiredArgsConstructor public class MerchantsServiceImpl extends ServiceImpl<MerchantsMapper, Merchants> implements MerchantsService { private final MerchantsMapper merchantsMapper; @Override public PageResult<Merchants> queryAll(MerchantsQueryCriteria criteria, Page<Object> page){ return PageUtil.toPage(merchantsMapper.findAll(criteria, page)); } @Override public List<Merchants> queryAll(MerchantsQueryCriteria criteria){ return merchantsMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(Merchants resources) { merchantsMapper.insert(resources); } @Override @Transactional(rollbackFor = Exception.class) public void update(Merchants resources) { Merchants merchants = getById(resources.getMerchantsId()); merchants.copy(resources); merchantsMapper.updateById(merchants); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List<Long> ids) { merchantsMapper.deleteBatchIds(ids); } @Override public void download(List<Merchants> all, HttpServletResponse response) throws IOException { List<Map<String, Object>> list = new ArrayList<>(); for (Merchants merchants : all) { Map<String, Object> map = new LinkedHashMap<>(); map.put("名称", merchants.getMerchantName()); map.put("商户编码", merchants.getMerchantCode()); map.put("营业执照号", merchants.getBusinessLicense()); map.put("营业执照号路径", merchants.getBusinessLicensePath()); map.put("联系手机", merchants.getContactMobile()); map.put("排序", merchants.getMerchantsSort()); map.put("状态", merchants.getEnabled()); map.put("审核人", merchants.getAuthUser()); map.put("审核时间", merchants.getAuthTime()); map.put("审核信息", merchants.getAuthMessage()); map.put("创建者", merchants.getCreateBy()); map.put("更新者", merchants.getUpdateBy()); map.put("创建日期", merchants.getCreateTime()); map.put("更新时间", merchants.getUpdateTime()); list.add(map); } FileUtil.downloadExcel(list, response); } } oying-system/src/main/resources/mapper/system/MerchantsMapper.xml
New file @@ -0,0 +1,48 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.oying.modules.system.mapper.MerchantsMapper"> <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Merchants"> <id column="merchants_id" property="merchantsId"/> <result column="merchant_name" property="merchantName"/> <result column="merchant_code" property="merchantCode"/> <result column="business_license" property="businessLicense"/> <result column="business_license_path" property="businessLicensePath"/> <result column="contact_mobile" property="contactMobile"/> <result column="merchants_sort" property="merchantsSort"/> <result column="enabled" property="enabled"/> <result column="create_by" property="createBy"/> <result column="update_by" property="updateBy"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> <result column="auth_user" property="authUser"/> <result column="auth_time" property="authTime"/> <result column="auth_message" property="authMessage"/> </resultMap> <sql id="Base_Column_List"> merchants_id, merchant_name, merchant_code, business_license, business_license_path, contact_mobile, merchants_sort, enabled, create_by, update_by, create_time, update_time, auth_user, auth_time, auth_message </sql> <select id="findAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from sys_merchants <where> <if test="criteria.blurry != null and criteria.blurry != ''"> and ( merchant_name like concat('%', #{criteria.blurry}, '%') or merchant_code like concat('%', #{criteria.blurry}, '%') or business_license like concat('%', #{criteria.blurry}, '%') or contact_mobile like concat('%', #{criteria.blurry}, '%') ) </if> <if test="criteria.enabled != null"> and enabled = #{criteria.enabled} </if> <if test="criteria.createTime != null and criteria.createTime.size() > 0"> AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} </if> </where> order by merchants_sort desc </select> </mapper>