oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java
@@ -28,7 +28,6 @@ @ApiModelProperty(value = "主键") private Long addressId; @NotNull @ApiModelProperty(value = "用户id") private Long userId; @@ -63,8 +62,8 @@ private BigDecimal latitude; @NotNull @ApiModelProperty(value = "是否默认") private Integer isDefault; @ApiModelProperty(value = "是否默认: false") private Boolean isDefault = false; @NotBlank @ApiModelProperty(value = "标签(家、公司等)") oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java
@@ -18,10 +18,14 @@ @ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; @ApiModelProperty(value = "手机号") private String phone; @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "标签(家、公司等)") private String tag; private List<Timestamp> createTime; } oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java
@@ -19,4 +19,6 @@ IPage<UserAddress> findAll(@Param("criteria") UserAddressQueryCriteria criteria, Page<Object> page); List<UserAddress> findAll(@Param("criteria") UserAddressQueryCriteria criteria); void isDefault(Long userId); } oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java
@@ -1,10 +1,12 @@ package com.oying.modules.sh.rest; import com.oying.annotation.Log; import com.oying.exception.BadRequestException; import com.oying.modules.sh.domain.UserAddress; import com.oying.modules.sh.service.UserAddressService; import com.oying.modules.sh.domain.dto.UserAddressQueryCriteria; import com.oying.utils.R; import com.oying.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import java.util.List; @@ -48,28 +50,40 @@ return new ResponseEntity<>(R.success(userAddressService.queryAll(criteria, page)), HttpStatus.OK); } @GetMapping("mini") @ApiOperation("小程序:查询用户地址") public ResponseEntity<Object> miniQueryUserAddress(UserAddressQueryCriteria criteria) { Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); criteria.setUserId(SecurityUtils.getCurrentUserId()); return new ResponseEntity<>(R.success(userAddressService.queryAll(criteria, page)), HttpStatus.OK); } @PostMapping @Log("新增用户地址") @ApiOperation("新增用户地址") @PreAuthorize("@el.check('userAddress:add')") @Log("小程序:新增用户地址") @ApiOperation("小程序:新增用户地址") public ResponseEntity<Object> createUserAddress(@Validated @RequestBody UserAddress resources) { if (resources.getAddressId() != null) { throw new BadRequestException("新增用户地址主键必须为空"); } resources.setUserId(SecurityUtils.getCurrentUserId()); userAddressService.create(resources); return new ResponseEntity<>(R.success(), HttpStatus.CREATED); } @PutMapping @Log("修改用户地址") @ApiOperation("修改用户地址") @PreAuthorize("@el.check('userAddress:edit')") @Log("小程序:修改用户地址") @ApiOperation("小程序:修改用户地址") public ResponseEntity<Object> updateUserAddress(@Validated @RequestBody UserAddress resources) { if (resources.getAddressId() == null) { throw new BadRequestException("修改用户地址主键不能为空"); } userAddressService.update(resources); return new ResponseEntity<>(R.success(), HttpStatus.NO_CONTENT); } @DeleteMapping @Log("删除用户地址") @ApiOperation("删除用户地址") @PreAuthorize("@el.check('userAddress:del')") @Log("小程序:删除用户地址") @ApiOperation("小程序:删除用户地址") public ResponseEntity<Object> deleteUserAddress(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { userAddressService.deleteAll(ids); return new ResponseEntity<>(R.success(), HttpStatus.OK); oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java
@@ -1,7 +1,9 @@ package com.oying.modules.sh.service.impl; import com.oying.exception.BadRequestException; import com.oying.modules.sh.domain.UserAddress; import com.oying.utils.FileUtil; import com.oying.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,19 +13,21 @@ 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-06-11 **/ * @author lixin * @description 服务实现 * @date 2025-06-11 **/ @Service @RequiredArgsConstructor public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserAddress> implements UserAddressService { @@ -31,18 +35,21 @@ private final UserAddressMapper userAddressMapper; @Override public PageResult<UserAddress> queryAll(UserAddressQueryCriteria criteria, Page<Object> page){ public PageResult<UserAddress> queryAll(UserAddressQueryCriteria criteria, Page<Object> page) { return PageUtil.toPage(userAddressMapper.findAll(criteria, page)); } @Override public List<UserAddress> queryAll(UserAddressQueryCriteria criteria){ public List<UserAddress> queryAll(UserAddressQueryCriteria criteria) { return userAddressMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(UserAddress resources) { if (resources.getIsDefault()) { userAddressMapper.isDefault(resources.getUserId()); } userAddressMapper.insert(resources); } @@ -50,6 +57,12 @@ @Transactional(rollbackFor = Exception.class) public void update(UserAddress resources) { UserAddress userAddress = getById(resources.getAddressId()); if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) { throw new BadRequestException("不能修改他人资料"); } if (resources.getIsDefault()) { userAddressMapper.isDefault(resources.getUserId()); } userAddress.copy(resources); userAddressMapper.updateById(userAddress); } @@ -57,6 +70,12 @@ @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List<Long> ids) { for (Long id : ids) { UserAddress userAddress = getById(id); if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) { throw new BadRequestException("不能删除他人资料"); } } userAddressMapper.deleteBatchIds(ids); } @@ -65,7 +84,6 @@ List<Map<String, Object>> list = new ArrayList<>(); for (UserAddress userAddress : all) { Map<String, Object> map = new LinkedHashMap<>(); map.put("用户id", userAddress.getUserId()); map.put("收货人", userAddress.getReceiverName()); map.put("收货人电话", userAddress.getReceiverPhone()); map.put("省份", userAddress.getProvince()); @@ -75,8 +93,8 @@ map.put("详细地址", userAddress.getDetail()); map.put("经度", userAddress.getLongitude()); map.put("纬度", userAddress.getLatitude()); map.put("是否默认", userAddress.getIsDefault()); map.put("标签(家、公司等)", userAddress.getTag()); map.put("是否默认", userAddress.getIsDefault() ? "是" : "否"); map.put("标签", userAddress.getTag()); map.put("创建人", userAddress.getCreateBy()); map.put("创建时间", userAddress.getCreateTime()); map.put("修改者", userAddress.getUpdateBy()); oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java
@@ -30,7 +30,7 @@ private Long userId; @NotBlank @ApiModelProperty(value = "角色类型(OWNER、ADMIN、FINANCE、OPERATOR)") @ApiModelProperty(value = "角色类型") private String roleType; @ApiModelProperty(value = "权限集(备用)") oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java
@@ -21,7 +21,7 @@ @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "角色类型(OWNER、ADMIN、FINANCE、OPERATOR)") @ApiModelProperty(value = "角色类型") private String roleType; private List<Timestamp> createTime; } oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java
@@ -65,7 +65,7 @@ List<Map<String, Object>> list = new ArrayList<>(); for (UserMerchant userMerchant : all) { Map<String, Object> map = new LinkedHashMap<>(); map.put("角色类型(OWNER、ADMIN、FINANCE、OPERATOR)", userMerchant.getRoleType()); map.put("角色类型", userMerchant.getRoleType()); map.put("权限集(备用)", userMerchant.getPermissions()); map.put("创建者", userMerchant.getCreateBy()); map.put("创建时间", userMerchant.getCreateTime()); oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml
@@ -24,17 +24,23 @@ <sql id="Base_Column_List"> address_id, user_id, receiver_name, receiver_phone, province, city, district, street, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time </sql> <update id="isDefault"> update sh_user_address set is_default = false where user_id = #{userId} </update> <select id="findAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from sh_user_address <where> <if test="criteria.userId != null"> <if test="criteria.userId != null and criteria.userId != ''"> and user_id = #{criteria.userId} </if> <if test="criteria.tag != null"> <if test="criteria.tag != null and criteria.tag != ''"> and tag = #{criteria.tag} </if> <if test="criteria.phone != null and criteria.phone != ''"> and receiver_phone like concat('%',#{criteria.phone},'%') </if> <if test="criteria.createTime != null and criteria.createTime.size() > 0"> AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} @@ -42,4 +48,4 @@ </where> order by address_id desc </select> </mapper> </mapper>