From d3f6e98decebe1e574a05cfc4973e4d650c2c3d0 Mon Sep 17 00:00:00 2001 From: "925116093-qq.com" <925116093@qq.com> Date: Tue, 10 Jun 2025 11:56:57 +0800 Subject: [PATCH] 202506101156 --- .../system/controller/AppletController.java | 959 ++++++++++++++---- .../domain/AppleDoMain/AddressApple.java | 187 ++++ .../system/domain/AppleDoMain/OrderApple.java | 146 +++ .../com/ruoyi/system/mapper/OrderMapper.java | 12 + .../ruoyi/system/service/IOrderService.java | 10 +- .../system/service/impl/OrderServiceImpl.java | 12 +- .../resources/mapper/system/OrderMapper.xml | 747 ++++++++++---- .../mapper/system/UserAddressMapper.xml | 2 +- 8 files changed, 1673 insertions(+), 402 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/AddressApple.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/OrderApple.java diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java index 0eb40ff..e60aca2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/AppletController.java @@ -4,8 +4,11 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.ControllerUtil.WechatApiUtil; import com.ruoyi.system.domain.*; +import com.ruoyi.system.domain.AppleDoMain.OrderApple; +import com.ruoyi.system.domain.AppleDoMain.AddressApple; import com.ruoyi.system.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -14,6 +17,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; @@ -23,14 +27,16 @@ import org.springframework.web.bind.annotation.RequestBody; import com.ruoyi.system.ControllerUtil.AppletControllerUtil; import com.ruoyi.system.ControllerUtil.AppletLoginUtil; import com.ruoyi.system.ControllerUtil.PageUtil; + import static com.ruoyi.common.core.domain.AjaxResult.error; import static com.ruoyi.common.core.domain.AjaxResult.success; import static com.ruoyi.common.utils.PageUtils.startPage; + import com.github.pagehelper.PageHelper; /** * 小程序控制器 - * + *

* 提供小程序端所需的API接口 * 主要功能: * 1. 服务分类管理 @@ -40,8 +46,8 @@ import com.github.pagehelper.PageHelper; * 5. 用户信息验证 * * @author Mr. Zhang Pan - * @date 2025-05-26 * @version 1.0 + * @date 2025-05-26 */ @RestController public class AppletController extends BaseController { @@ -58,12 +64,15 @@ public class AppletController extends BaseController { private IServiceGoodsService serviceGoodsService; @Autowired private IUserAddressService userAddressService; + @Autowired + private IOrderService orderService; + /** * 获取服务分类列表 - * + * * @param request HTTP请求对象 * @return 分类列表数据 - * + *

* 接口说明: * - 获取状态为启用的服务分类 * - 自动添加图片CDN前缀 @@ -74,20 +83,20 @@ public class AppletController extends BaseController { try { // 验证用户登录状态(可选) Map userData = AppletControllerUtil.getUserData(request.getHeader("token"), usersService); - + // 构建查询条件:状态启用且类型为服务 ServiceCate serviceCateQuery = new ServiceCate(); serviceCateQuery.setStatus(1L); // 启用状态 serviceCateQuery.setType(1L); // 服务类型 - + // 查询分类列表 List categoryList = serviceCateService.selectServiceCateList(serviceCateQuery); - + // 为每个分类添加CDN前缀 for (ServiceCate category : categoryList) { category.setIcon(AppletControllerUtil.buildImageUrl(category.getIcon())); } - + return success(categoryList); } catch (Exception e) { return error("获取服务分类列表失败:" + e.getMessage()); @@ -96,11 +105,11 @@ public class AppletController extends BaseController { /** * 获取系统配置信息 - * - * @param name 配置项名称 + * + * @param name 配置项名称 * @param request HTTP请求对象 * @return 配置信息数据 - * + *

* 接口说明: * - 根据配置名称获取对应的配置值 * - 配置值以JSON格式返回 @@ -113,14 +122,14 @@ public class AppletController extends BaseController { if (name == null || name.trim().isEmpty()) { return error("配置名称不能为空"); } - + // 构建查询条件 SiteConfig configQuery = new SiteConfig(); configQuery.setName(name.trim()); - + // 查询配置列表 List configList = siteConfigService.selectSiteConfigList(configQuery); - + if (!configList.isEmpty()) { // 解析配置值为JSON对象 String configValue = configList.get(0).getValue(); @@ -139,46 +148,50 @@ public class AppletController extends BaseController { } - - @GetMapping(value = "/api/public/get/config") - public AjaxResult getconfig(HttpServletRequest request) { + public Map getconfig(HttpServletRequest request) { + Map map=new HashMap<>(); SiteConfig configQuery = new SiteConfig(); configQuery.setName("config_one"); List list = siteConfigService.selectSiteConfigList(configQuery); - return success(list.get(0).getValue()); + JSONObject jsonObject = JSONObject.parseObject(list.get(0).getValue()); +// map.put("data",list.get(0).getValue()); +// map.put("code",200); +// map.put("msg","成功"); + + + return success(jsonObject); + } - - /** * 查询用户收货地址列表 - * - * @param limit 每页显示数量 - * @param page 页码 + * + * @param limit 每页显示数量 + * @param page 页码 * @param request HTTP请求对象 * @return 分页地址列表 - * + *

* 请求参数: * - limit: 每页显示数量,默认15 * - page: 页码,默认1 - * + *

* 返回格式: * { - * "code": 200, - * "msg": "OK", - * "data": { - * "current_page": 1, - * "data": [...], - * "from": 1, - * "last_page": 1, - * "next_page_url": null, - * "per_page": "15", - * "prev_page_url": null, - * "to": 1, - * "total": 1 - * } + * "code": 200, + * "msg": "OK", + * "data": { + * "current_page": 1, + * "data": [...], + * "from": 1, + * "last_page": 1, + * "next_page_url": null, + * "per_page": "15", + * "prev_page_url": null, + * "to": 1, + * "total": 1 + * } * } */ @GetMapping("/api/user/address/list") @@ -192,53 +205,591 @@ public class AppletController extends BaseController { if (!(Boolean) pageValidation.get("valid")) { return error((String) pageValidation.get("message")); } - + // 2. 验证用户登录状态 String token = request.getHeader("token"); Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 3. 获取用户信息 Users user = (Users) userValidation.get("user"); if (user == null) { return error("用户信息获取失败"); } - + // 4. 设置分页参数 PageHelper.startPage(page, limit); - + // 5. 查询用户地址列表 UserAddress userAddressQuery = new UserAddress(); userAddressQuery.setUid(user.getId()); List addressList = userAddressService.selectUserAddressList(userAddressQuery); - + // 6. 获取分页信息并构建响应 TableDataInfo tableDataInfo = getDataTable(addressList); - + // 7. 构建符合要求的分页响应格式 Map pageData = PageUtil.buildPageResponse(tableDataInfo, page, limit); - + return success(pageData); - + } catch (Exception e) { System.err.println("查询用户地址列表异常:" + e.getMessage()); return error("查询地址列表失败:" + e.getMessage()); } } - + /** + * 根据地址ID查询用户收货地址详情 + * + * @param id 地址ID + * @param request HTTP请求对象 + * @return 地址详细信息 + *

+ * 接口说明: + * - 根据地址ID获取单个地址的详细信息 + * - 验证用户登录状态和地址归属权 + * - 返回AddressApple格式的地址数据,用于前端修改页面 + *

+ * 返回格式: + * { + * "code": 200, + * "msg": "操作成功", + * "data": { + * "id": 160, + * "uid": 302, + * "name": "赵先生", + * "phone": "18709185987", + * "latitude": "34.15643", + * "longitude": "108.86683", + * "address_name": "陕西省西安市长安区榆林北段与建设大道交叉口处北侧", + * "address_info": "陕西省西安市长安区榆林北段与建设大道交叉口处", + * "info": "14号楼2302", + * "is_default": 0, + * "created_at": null, + * "updated_at": null + * } + * } + */ + @GetMapping("/api/user/address/info/{id}") + public AjaxResult getAddressInfo(@PathVariable("id") Long id, HttpServletRequest request) { + try { + // 1. 参数验证 + if (id == null || id <= 0) { + return error("地址ID无效"); + } + + // 2. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return error("用户未登录或token无效"); + } + + // 3. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return error("用户信息获取失败"); + } + + // 4. 查询地址信息 + UserAddress userAddress = userAddressService.selectUserAddressById(id); + if (userAddress == null) { + return error("地址不存在"); + } + + // 5. 验证地址归属权 + if (!userAddress.getUid().equals(user.getId())) { + return error("无权访问该地址信息"); + } + + // 6. 转换为AddressApple格式并返回 + AddressApple addressApple = AddressApple.fromUserAddress(userAddress); + + return success(addressApple); + + } catch (Exception e) { + System.err.println("查询用户地址详情异常:" + e.getMessage()); + return error("查询地址详情失败:" + e.getMessage()); + } + } + + /** + * 修改用户收货地址 + * + * @param params 地址修改参数 + * @param request HTTP请求对象 + * @return 修改结果 + *

+ * 请求参数格式: + * { + * "id": 160, + * "name": "赵先生", + * "phone": "18709185987", + * "address_name": "陕西省西安市长安区榆林北段与建设大道交叉口处北侧", + * "address_info": "海菱路8号", + * "info": "14号楼2302", + * "is_default": 1, + * "latitude": "34.15643", + * "longitude": "108.86683" + * } + *

+ * 接口说明: + * - 验证用户登录状态和地址归属权 + * - 支持修改地址的所有字段 + * - 自动处理默认地址逻辑(设为默认时会取消其他默认地址) + * - 返回修改后的地址信息 + *

+ * 返回格式: + * { + * "code": 200, + * "msg": "操作成功", + * "data": "地址修改成功" + * } + */ + @PostMapping("/api/user/address/edit") + public AjaxResult editAddress(@RequestBody Map params, HttpServletRequest request) { + try { + // 1. 参数验证 + if (params == null || params.get("id") == null) { + return error("地址ID不能为空"); + } + + Long addressId; + try { + addressId = Long.valueOf(params.get("id").toString()); + if (addressId <= 0) { + return error("地址ID无效"); + } + } catch (NumberFormatException e) { + return error("地址ID格式错误"); + } + + // 2. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return error("用户未登录或token无效"); + } + + // 3. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return error("用户信息获取失败"); + } + + // 4. 查询原地址信息并验证归属权 + UserAddress existingAddress = userAddressService.selectUserAddressById(addressId); + if (existingAddress == null) { + return error("地址不存在"); + } + + if (!existingAddress.getUid().equals(user.getId())) { + return error("无权修改该地址"); + } + + // 5. 构建更新的地址对象 + UserAddress updateAddress = buildUpdateAddress(params, addressId, user.getId()); + + // 6. 验证必填字段 + String validationResult = validateAddressParams(updateAddress); + if (validationResult != null) { + return error(validationResult); + } + + // 7. 处理默认地址逻辑 + if (updateAddress.getIsDefault() != null && updateAddress.getIsDefault() == 1L) { + // 如果设置为默认地址,先将该用户的所有地址设为非默认 + userAddressService.updateUserAddressDefault(user.getId()); + } + + // 8. 执行地址更新 + int updateResult = userAddressService.updateUserAddress(updateAddress); + + if (updateResult > 0) { + return success("地址修改成功"); + } else { + return error("地址修改失败"); + } + + } catch (Exception e) { + System.err.println("修改用户地址异常:" + e.getMessage()); + return error("修改地址失败:" + e.getMessage()); + } + } + + /** + * 构建地址更新对象 + * + * @param params 请求参数 + * @param addressId 地址ID + * @param userId 用户ID + * @return UserAddress对象 + */ + private UserAddress buildUpdateAddress(Map params, Long addressId, Long userId) { + UserAddress address = new UserAddress(); + address.setId(addressId); + address.setUid(userId); + + // 设置收货人姓名 + if (params.get("name") != null) { + address.setName(params.get("name").toString().trim()); + } + + // 设置联系电话 + if (params.get("phone") != null) { + address.setPhone(params.get("phone").toString().trim()); + } + + // 设置纬度 + if (params.get("latitude") != null) { + address.setLatitude(params.get("latitude").toString().trim()); + } + + // 设置经度 + if (params.get("longitude") != null) { + address.setLongitude(params.get("longitude").toString().trim()); + } + + // 设置地址名称 + if (params.get("address_name") != null) { + address.setAddressName(params.get("address_name").toString().trim()); + } + + // 设置地址信息 + if (params.get("address_info") != null) { + address.setAddressInfo(params.get("address_info").toString().trim()); + } + + // 设置详细地址 + if (params.get("info") != null) { + address.setInfo(params.get("info").toString().trim()); + } + + // 设置是否默认地址 + if (params.get("is_default") != null) { + try { + Long isDefault = Long.valueOf(params.get("is_default").toString()); + address.setIsDefault(isDefault); + } catch (NumberFormatException e) { + // 如果转换失败,设为非默认 + address.setIsDefault(0L); + } + } + + return address; + } + + /** + * 验证地址参数 + * + * @param address 地址对象 + * @return 验证错误信息,null表示验证通过 + */ + private String validateAddressParams(UserAddress address) { + if (address.getName() == null || address.getName().isEmpty()) { + return "收货人姓名不能为空"; + } + + if (address.getPhone() == null || address.getPhone().isEmpty()) { + return "联系电话不能为空"; + } + + // 验证手机号格式(简单验证) + if (!address.getPhone().matches("^1[3-9]\\d{9}$")) { + return "联系电话格式不正确"; + } + + if (address.getInfo() == null || address.getInfo().isEmpty()) { + return "详细地址不能为空"; + } + + return null; // 验证通过 + } + + /** + * 新增用户收货地址 + * + * @param params 地址新增参数 + * @param request HTTP请求对象 + * @return 新增结果 + *

+ * 请求参数格式: + * { + * "name": "何飞飞", + * "phone": "15002954325", + * "address_name": "陕西省西安市未央区未央路3号(龙首原地铁站C出口步行180米)", + * "address_info": "凤鑫城购物中心(未央路店)", + * "info": "458", + * "is_default": true, + * "latitude": 34.294248, + * "longitude": 108.948261 + * } + *

+ * 接口说明: + * - 验证用户登录状态 + * - 支持新增地址的所有字段 + * - 自动处理默认地址逻辑(设为默认时会取消其他默认地址) + * - 返回新增后的地址信息 + *

+ * 返回格式: + * { + * "code": 200, + * "msg": "操作成功", + * "data": "地址新增成功" + * } + */ + @PostMapping("/api/user/address/add") + public AjaxResult addAddress(@RequestBody Map params, HttpServletRequest request) { + try { + // 1. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return error("用户未登录或token无效"); + } + + // 2. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return error("用户信息获取失败"); + } + + // 3. 构建新增的地址对象 + UserAddress newAddress = buildNewAddress(params, user.getId()); + + // 4. 验证必填字段 + String validationResult = validateAddressParams(newAddress); + if (validationResult != null) { + return error(validationResult); + } + + // 5. 处理默认地址逻辑 + if (newAddress.getIsDefault() != null && newAddress.getIsDefault() == 1L) { + // 如果设置为默认地址,先将该用户的所有地址设为非默认 + userAddressService.updateUserAddressDefault(user.getId()); + } + + // 6. 执行地址新增 + int insertResult = userAddressService.insertUserAddress(newAddress); + + if (insertResult > 0) { + return success("地址新增成功"); + } else { + return error("地址新增失败"); + } + + } catch (Exception e) { + System.err.println("新增用户地址异常:" + e.getMessage()); + return error("新增地址失败:" + e.getMessage()); + } + } + + /** + * 构建地址新增对象 + * + * @param params 请求参数 + * @param userId 用户ID + * @return UserAddress对象 + */ + private UserAddress buildNewAddress(Map params, Long userId) { + UserAddress address = new UserAddress(); + address.setUid(userId); + + // 设置收货人姓名 + if (params.get("name") != null) { + address.setName(params.get("name").toString().trim()); + } + + // 设置联系电话 + if (params.get("phone") != null) { + address.setPhone(params.get("phone").toString().trim()); + } + + // 设置纬度 + if (params.get("latitude") != null) { + address.setLatitude(params.get("latitude").toString().trim()); + } + + // 设置经度 + if (params.get("longitude") != null) { + address.setLongitude(params.get("longitude").toString().trim()); + } + + // 设置地址名称 + if (params.get("address_name") != null) { + address.setAddressName(params.get("address_name").toString().trim()); + } + + // 设置地址信息 + if (params.get("address_info") != null) { + address.setAddressInfo(params.get("address_info").toString().trim()); + } + + // 设置详细地址 + if (params.get("info") != null) { + address.setInfo(params.get("info").toString().trim()); + } + + // 设置是否默认地址 + if (params.get("is_default") != null) { + try { + // 处理布尔值或数字值 + Object isDefaultObj = params.get("is_default"); + Long isDefault = 0L; + + if (isDefaultObj instanceof Boolean) { + isDefault = ((Boolean) isDefaultObj) ? 1L : 0L; + } else if (isDefaultObj instanceof Number) { + isDefault = ((Number) isDefaultObj).longValue(); + } else { + String isDefaultStr = isDefaultObj.toString().toLowerCase(); + if ("true".equals(isDefaultStr) || "1".equals(isDefaultStr)) { + isDefault = 1L; + } + } + + address.setIsDefault(isDefault); + } catch (Exception e) { + // 如果转换失败,设为非默认 + address.setIsDefault(0L); + } + } else { + // 如果没有指定,默认设为非默认地址 + address.setIsDefault(0L); + } + + return address; + } + + + @PostMapping("api/service/order/lst") + public AjaxResult getserviceorderlst(@RequestBody Map params, + HttpServletRequest request) { + + int page = (int) params.get("page"); + int limit = (int) params.get("limit"); + String status = (String) params.get("status"); + + // 1. 验证分页参数 + Map pageValidation = PageUtil.validatePageParams(page, limit); + if (!(Boolean) pageValidation.get("valid")) { + return error((String) pageValidation.get("message")); + } + + // 2. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return error("用户未登录或token无效"); + } + + // 3. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return error("用户信息获取失败"); + } + + // 4. 设置分页参数 + PageHelper.startPage(page, limit); + + // 5. 查询用户地址列表 + OrderApple order = new OrderApple(); + order.setType(1); + order.setUid(user.getId()); + + if (StringUtils.isNotNull(status) && !"".equals(status)) { + order.setStatus(Long.valueOf(status)); + } + + + List orderList = orderService.selectOrderAppleList(order); + for (OrderApple orderdata : orderList) { + Map jsonObject = new HashMap<>(); + if (orderdata.getProduct_id() != null) { + ServiceGoods serviceGoods = serviceGoodsService.selectServiceGoodsById(orderdata.getProduct_id()); + if (serviceGoods != null) { + jsonObject.put("title", serviceGoods.getTitle()); + jsonObject.put("icon", "https://img.huafurenjia.cn/" + serviceGoods.getIcon()); + jsonObject.put("id", serviceGoods.getId()); + jsonObject.put("price_zn", serviceGoods.getPriceZn()); + jsonObject.put("sub_title", serviceGoods.getSubTitle()); + orderdata.setProduct(jsonObject); + } + } + } + + // 6. 获取分页信息并构建响应 + TableDataInfo tableDataInfo = getDataTable(orderList); + + // 7. 构建符合要求的分页响应格式 + Map pageData = PageUtil.buildPageResponse(tableDataInfo, page, limit); + + return success(pageData); + } + + @PostMapping("/api/goods/order/lst") + public AjaxResult getgoodsorderlst(@RequestBody Map params, + HttpServletRequest request) { + + int page = (int) params.get("page"); + int limit = (int) params.get("limit"); + String status = (String) params.get("status"); + + // 1. 验证分页参数 + Map pageValidation = PageUtil.validatePageParams(page, limit); + if (!(Boolean) pageValidation.get("valid")) { + return error((String) pageValidation.get("message")); + } + + // 2. 验证用户登录状态 + String token = request.getHeader("token"); + Map userValidation = AppletLoginUtil.validateUserToken(token, usersService); + if (!(Boolean) userValidation.get("valid")) { + return error("用户未登录或token无效"); + } + + // 3. 获取用户信息 + Users user = (Users) userValidation.get("user"); + if (user == null) { + return error("用户信息获取失败"); + } + + // 4. 设置分页参数 + PageHelper.startPage(page, limit); + + // 5. 查询用户地址列表 + OrderApple order = new OrderApple(); + order.setType(2); + order.setUid(user.getId()); + + if (StringUtils.isNotNull(status) && !"".equals(status)) { + order.setStatus(Long.valueOf(status)); + } + + + List orderList = orderService.selectOrderAppleList(order); + + // 6. 获取分页信息并构建响应 + TableDataInfo tableDataInfo = getDataTable(orderList); + + // 7. 构建符合要求的分页响应格式 + Map pageData = PageUtil.buildPageResponse(tableDataInfo, page, limit); + + return success(pageData); + } @PostMapping(value = "/api/user/login") public AjaxResult getuserlogin(HttpServletRequest request) { - String token=request.getHeader("token"); - Users users=usersService.selectUsersByRememberToken(token); - if (users!=null){ + String token = request.getHeader("token"); + Users users = usersService.selectUsersByRememberToken(token); + if (users != null) { users.setRemember_token(users.getRememberToken()); - return success(users); - }else{ + return success(users); + } else { return error("用户不存在"); } @@ -255,7 +806,7 @@ public class AppletController extends BaseController { try { Long cateId = null; String keywords = null; - + // 处理分类ID参数 if (params.get("cate_id") != null) { Object cateIdObj = params.get("cate_id"); @@ -269,7 +820,7 @@ public class AppletController extends BaseController { } } } - + // 处理关键词参数 if (params.get("keywords") != null) { keywords = params.get("keywords").toString().trim(); @@ -277,10 +828,10 @@ public class AppletController extends BaseController { keywords = null; } } - + // 构建返回数据结构 List> resultList = new java.util.ArrayList<>(); - + if (cateId != null) { // 查询指定分类 ServiceCate category = serviceCateService.selectServiceCateById(cateId); @@ -294,7 +845,7 @@ public class AppletController extends BaseController { serviceCateQuery.setStatus(1L); serviceCateQuery.setType(1L); List categories = serviceCateService.selectServiceCateList(serviceCateQuery); - + for (ServiceCate category : categories) { Map categoryData = AppletControllerUtil.buildCategoryData(category, keywords, serviceGoodsService); // 只返回有商品的分类 @@ -313,11 +864,11 @@ public class AppletController extends BaseController { /** * 获取服务商品详细信息 - * - * @param id 商品ID + * + * @param id 商品ID * @param request HTTP请求对象 * @return 商品详细信息 - * + *

* 接口说明: * - 根据商品ID获取详细信息 * - 返回格式化的商品数据 @@ -330,7 +881,7 @@ public class AppletController extends BaseController { if (id <= 0) { return error("商品ID无效"); } - + // 查询商品信息 ServiceGoods serviceGoodsData = serviceGoodsService.selectServiceGoodsById(id); if (serviceGoodsData != null) { @@ -344,13 +895,14 @@ public class AppletController extends BaseController { return error("查询商品详情失败:" + e.getMessage()); } } + /** * 获取广告图片列表 - * - * @param type 广告类型 + * + * @param type 广告类型 * @param request HTTP请求对象 * @return 广告图片列表 - * + *

* 接口说明: * - 根据广告类型获取对应的图片列表 * - 自动添加图片CDN前缀 @@ -363,19 +915,19 @@ public class AppletController extends BaseController { if (type < 0) { return error("广告类型无效"); } - + // 构建查询条件 AdvImg advImgQuery = new AdvImg(); advImgQuery.setType(type); - + // 查询广告图片列表 List advImgList = advImgService.selectAdvImgList(advImgQuery); - + // 为每张图片添加CDN前缀 for (AdvImg advImg : advImgList) { advImg.setImage(AppletControllerUtil.buildImageUrl(advImg.getImage())); } - + return success(advImgList); } catch (Exception e) { return error("获取广告图片失败:" + e.getMessage()); @@ -384,34 +936,34 @@ public class AppletController extends BaseController { /** * 微信用户登录接口 - * - * @param params 请求参数 + * + * @param params 请求参数 * @param request HTTP请求对象 * @return 登录结果 - * + *

* 请求参数格式: * { - * "usercode": "微信小程序登录code", - * "code": "手机号授权code" + * "usercode": "微信小程序登录code", + * "code": "手机号授权code" * } - * + *

* 返回数据格式: * { - * "code": 200, - * "msg": "操作成功", - * "data": { - * "user": { - * "id": 用户ID, - * "phone": "手机号", - * "name": "用户名", - * "openid": "微信openid", - * "remember_token": "用户token", - * "avatar": "头像地址", - * "isNewUser": true/false - * } - * } + * "code": 200, + * "msg": "操作成功", + * "data": { + * "user": { + * "id": 用户ID, + * "phone": "手机号", + * "name": "用户名", + * "openid": "微信openid", + * "remember_token": "用户token", + * "avatar": "头像地址", + * "isNewUser": true/false * } - * + * } + * } + *

* 登录流程: * 1. 验证请求参数 * 2. 通过usercode获取微信openid @@ -426,27 +978,26 @@ public class AppletController extends BaseController { } - @GetMapping(value = "/api/user/info") public AjaxResult getUserByPhone(HttpServletRequest request) { - String token=request.getHeader("token"); - Map order_num=new HashMap<>(); - Map goods_order_num=new HashMap<>(); - Users users=usersService.selectUsersByRememberToken(token); - if (users!=null){ + String token = request.getHeader("token"); + Map order_num = new HashMap<>(); + Map goods_order_num = new HashMap<>(); + Users users = usersService.selectUsersByRememberToken(token); + if (users != null) { users.setRemember_token(users.getRememberToken()); - order_num.put("pending_accept",2); - order_num.put("pending_service",0); - order_num.put("in_service",0); - order_num.put("other_status",0); + order_num.put("pending_accept", 2); + order_num.put("pending_service", 0); + order_num.put("in_service", 0); + order_num.put("other_status", 0); users.setOrder_num(order_num); - goods_order_num.put("pending_accept",0); - goods_order_num.put("pending_service",3); - goods_order_num.put("in_service",0); - goods_order_num.put("other_status",0); + goods_order_num.put("pending_accept", 0); + goods_order_num.put("pending_service", 3); + goods_order_num.put("in_service", 0); + goods_order_num.put("other_status", 0); users.setGoods_order_num(goods_order_num); return success(users); - }else{ + } else { return error("用户不存在"); } @@ -455,26 +1006,26 @@ public class AppletController extends BaseController { /** * 验证用户token接口 - * + * * @param request HTTP请求对象 * @return 验证结果 - * + *

* 请求头格式: * Authorization: Bearer * 或 * token: - * + *

* 返回数据格式: * { - * "code": 200, - * "msg": "操作成功", - * "data": { - * "valid": true, - * "userInfo": {...}, - * "message": "token验证成功" - * } + * "code": 200, + * "msg": "操作成功", + * "data": { + * "valid": true, + * "userInfo": {...}, + * "message": "token验证成功" * } - * + * } + *

* 接口说明: * - 验证用户token的有效性 * - 返回用户基本信息 @@ -486,17 +1037,17 @@ public class AppletController extends BaseController { try { // 1. 获取token String token = AppletLoginUtil.extractToken( - request.getHeader("Authorization"), - request.getHeader("token") + request.getHeader("Authorization"), + request.getHeader("token") ); - + if (token == null) { return error("未提供token,请先登录"); } - + // 2. 验证token Map validateResult = AppletLoginUtil.validateUserToken(token, usersService); - + // 3. 返回验证结果 boolean valid = (Boolean) validateResult.get("valid"); if (valid) { @@ -504,74 +1055,72 @@ public class AppletController extends BaseController { } else { return error((String) validateResult.get("message")); } - + } catch (Exception e) { return error("验证token失败:" + e.getMessage()); } } - - /** * 获取服务商品详细信息 * - * @param params 商品ID + * @param params 商品ID * @param request HTTP请求对象 * @return 商品详细信息 - * + *

* 接口说明: * - 根据商品ID获取详细信息 * - 返回格式化的商品数据 * - 包含图片、基础信息等数组数据 */ @GetMapping(value = "/user/phone/login") - public AjaxResult getUserByPhone(@RequestBody Map params,HttpServletRequest request) { - String code=(String)params.get("code"); - String usercode=(String)params.get("phone"); + public AjaxResult getUserByPhone(@RequestBody Map params, HttpServletRequest request) { + String code = (String) params.get("code"); + String usercode = (String) params.get("phone"); - if (code==null){ + if (code == null) { - } - if (usercode==null){ + } + if (usercode == null) { - } - return success( ); + } + return success(); } /** * 微信支付统一下单接口 - * - * @param params 支付参数 + * + * @param params 支付参数 * @param request HTTP请求对象 * @return 支付结果 - * + *

* 请求参数格式: * { - * "orderNo": "订单号", - * "openid": "用户openid", - * "totalFee": 支付金额(分), - * "body": "商品描述", - * "notifyUrl": "回调地址" + * "orderNo": "订单号", + * "openid": "用户openid", + * "totalFee": 支付金额(分), + * "body": "商品描述", + * "notifyUrl": "回调地址" * } - * + *

* 返回数据格式: * { - * "code": 200, - * "msg": "操作成功", - * "data": { - * "success": true, - * "payParams": { - * "timeStamp": "时间戳", - * "nonceStr": "随机字符串", - * "package": "prepay_id=xxx", - * "signType": "MD5", - * "paySign": "签名" - * }, - * "prepayId": "预支付交易会话ID" - * } + * "code": 200, + * "msg": "操作成功", + * "data": { + * "success": true, + * "payParams": { + * "timeStamp": "时间戳", + * "nonceStr": "随机字符串", + * "package": "prepay_id=xxx", + * "signType": "MD5", + * "paySign": "签名" + * }, + * "prepayId": "预支付交易会话ID" + * } * } */ @PostMapping(value = "/api/pay/unifiedorder") @@ -583,10 +1132,10 @@ public class AppletController extends BaseController { if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 2. 调用微信支付统一下单 Map payResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.unifiedOrder(params); - + // 3. 返回结果 boolean success = (Boolean) payResult.get("success"); if (success) { @@ -594,7 +1143,7 @@ public class AppletController extends BaseController { } else { return error((String) payResult.get("message")); } - + } catch (Exception e) { return error("创建支付订单失败:" + e.getMessage()); } @@ -602,7 +1151,7 @@ public class AppletController extends BaseController { /** * 查询支付订单状态接口 - * + * * @param orderNo 订单号 * @param request HTTP请求对象 * @return 查询结果 @@ -616,10 +1165,10 @@ public class AppletController extends BaseController { if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 2. 查询订单状态 Map queryResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.queryOrder(orderNo, null); - + // 3. 返回结果 boolean success = (Boolean) queryResult.get("success"); if (success) { @@ -627,7 +1176,7 @@ public class AppletController extends BaseController { } else { return error((String) queryResult.get("message")); } - + } catch (Exception e) { return error("查询订单状态失败:" + e.getMessage()); } @@ -635,20 +1184,20 @@ public class AppletController extends BaseController { /** * 创建代付订单接口 - * - * @param params 代付参数 + * + * @param params 代付参数 * @param request HTTP请求对象 * @return 代付结果 - * + *

* 请求参数格式: * { - * "orderNo": "原订单号", - * "payerOpenid": "代付人openid", - * "payeeOpenid": "被代付人openid", - * "totalFee": 代付金额(分), - * "body": "商品描述", - * "notifyUrl": "回调地址", - * "remark": "代付备注" + * "orderNo": "原订单号", + * "payerOpenid": "代付人openid", + * "payeeOpenid": "被代付人openid", + * "totalFee": 代付金额(分), + * "body": "商品描述", + * "notifyUrl": "回调地址", + * "remark": "代付备注" * } */ @PostMapping(value = "/api/pay/payfor") @@ -660,10 +1209,10 @@ public class AppletController extends BaseController { if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 2. 创建代付订单 Map payForResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.createPayForOrder(params); - + // 3. 返回结果 boolean success = (Boolean) payForResult.get("success"); if (success) { @@ -671,7 +1220,7 @@ public class AppletController extends BaseController { } else { return error((String) payForResult.get("message")); } - + } catch (Exception e) { return error("创建代付订单失败:" + e.getMessage()); } @@ -679,10 +1228,10 @@ public class AppletController extends BaseController { /** * 微信支付回调接口 - * + * * @param request HTTP请求对象 * @return 回调处理结果 - * + *

* 注意:此接口供微信服务器回调使用,不需要用户认证 * 返回格式必须是XML格式,用于告知微信处理结果 */ @@ -691,24 +1240,24 @@ public class AppletController extends BaseController { try { // 1. 处理支付回调 Map notifyResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.handlePayNotify(request); - + // 2. 获取支付信息 boolean success = (Boolean) notifyResult.get("success"); if (success) { Map paymentInfo = (Map) notifyResult.get("paymentInfo"); boolean isPayFor = (Boolean) notifyResult.get("isPayFor"); - + // 3. 根据业务需要处理支付成功逻辑 // 例如:更新订单状态、发送通知等 handlePaymentSuccess(paymentInfo, isPayFor); - + // 4. 返回成功响应给微信 return (String) notifyResult.get("responseXml"); } else { // 5. 返回失败响应给微信 return (String) notifyResult.get("responseXml"); } - + } catch (Exception e) { // 6. 异常时返回失败响应 return ""; @@ -717,18 +1266,18 @@ public class AppletController extends BaseController { /** * 申请退款接口 - * - * @param params 退款参数 + * + * @param params 退款参数 * @param request HTTP请求对象 * @return 退款结果 - * + *

* 请求参数格式: * { - * "orderNo": "原订单号", - * "refundNo": "退款单号", - * "totalFee": 订单总金额(分), - * "refundFee": 退款金额(分), - * "refundDesc": "退款原因" + * "orderNo": "原订单号", + * "refundNo": "退款单号", + * "totalFee": 订单总金额(分), + * "refundFee": 退款金额(分), + * "refundDesc": "退款原因" * } */ @PostMapping(value = "/api/pay/refund") @@ -740,10 +1289,10 @@ public class AppletController extends BaseController { if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 2. 申请退款 Map refundResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.refund(params); - + // 3. 返回结果 boolean success = (Boolean) refundResult.get("success"); if (success) { @@ -751,7 +1300,7 @@ public class AppletController extends BaseController { } else { return error((String) refundResult.get("message")); } - + } catch (Exception e) { return error("申请退款失败:" + e.getMessage()); } @@ -759,17 +1308,17 @@ public class AppletController extends BaseController { /** * 企业付款接口(用于代付等场景) - * - * @param params 付款参数 + * + * @param params 付款参数 * @param request HTTP请求对象 * @return 付款结果 - * + *

* 请求参数格式: * { - * "partnerTradeNo": "商户订单号", - * "openid": "用户openid", - * "amount": 付款金额(分), - * "desc": "付款描述" + * "partnerTradeNo": "商户订单号", + * "openid": "用户openid", + * "amount": 付款金额(分), + * "desc": "付款描述" * } */ @PostMapping(value = "/api/pay/transfer") @@ -781,10 +1330,10 @@ public class AppletController extends BaseController { if (!(Boolean) userValidation.get("valid")) { return error("用户未登录或token无效"); } - + // 2. 企业付款 Map transferResult = com.ruoyi.system.ControllerUtil.WechatPayUtil.transferToUser(params); - + // 3. 返回结果 boolean success = (Boolean) transferResult.get("success"); if (success) { @@ -792,7 +1341,7 @@ public class AppletController extends BaseController { } else { return error((String) transferResult.get("message")); } - + } catch (Exception e) { return error("企业付款失败:" + e.getMessage()); } @@ -800,9 +1349,9 @@ public class AppletController extends BaseController { /** * 处理支付成功的业务逻辑 - * + * * @param paymentInfo 支付信息 - * @param isPayFor 是否为代付订单 + * @param isPayFor 是否为代付订单 */ private void handlePaymentSuccess(Map paymentInfo, boolean isPayFor) { try { @@ -810,7 +1359,7 @@ public class AppletController extends BaseController { String transactionId = (String) paymentInfo.get("transactionId"); String totalFee = (String) paymentInfo.get("totalFee"); String timeEnd = (String) paymentInfo.get("timeEnd"); - + // 根据业务需求处理支付成功逻辑 if (isPayFor) { // 代付订单处理逻辑 @@ -825,7 +1374,7 @@ public class AppletController extends BaseController { // 3. 处理库存等业务逻辑 System.out.println("处理普通订单支付成功:" + orderNo); } - + } catch (Exception e) { System.err.println("处理支付成功业务逻辑异常:" + e.getMessage()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/AddressApple.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/AddressApple.java new file mode 100644 index 0000000..b6f1112 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/AddressApple.java @@ -0,0 +1,187 @@ +package com.ruoyi.system.domain.AppleDoMain; + +import com.ruoyi.common.core.domain.BaseEntity; +import java.util.Date; + +/** + * 小程序用户地址对象 AddressApple + * 用于小程序接口返回地址数据 + * + * @author Mr. Zhang Pan + * @date 2025-01-15 + */ +public class AddressApple extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 地址ID */ + private Long id; + + /** 用户ID */ + private Long uid; + + /** 收货人姓名 */ + private String name; + + /** 联系电话 */ + private String phone; + + /** 纬度 */ + private String latitude; + + /** 经度 */ + private String longitude; + + /** 地图点选地址名称 */ + private String address_name; + + /** 地图点选地址信息 */ + private String address_info; + + /** 详细地址信息 */ + private String info; + + /** 是否默认地址 1:是 0:否 */ + private Long is_default; + + /** 创建时间 */ + private Date created_at; + + /** 更新时间 */ + private Date updated_at; + + /** 删除时间 */ + private Date deleted_at; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getAddress_name() { + return address_name; + } + + public void setAddress_name(String address_name) { + this.address_name = address_name; + } + + public String getAddress_info() { + return address_info; + } + + public void setAddress_info(String address_info) { + this.address_info = address_info; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public Long getIs_default() { + return is_default; + } + + public void setIs_default(Long is_default) { + this.is_default = is_default; + } + + public Date getCreated_at() { + return created_at; + } + + public void setCreated_at(Date created_at) { + this.created_at = created_at; + } + + public Date getUpdated_at() { + return updated_at; + } + + public void setUpdated_at(Date updated_at) { + this.updated_at = updated_at; + } + + public Date getDeleted_at() { + return deleted_at; + } + + public void setDeleted_at(Date deleted_at) { + this.deleted_at = deleted_at; + } + + /** + * 从UserAddress转换为AddressApple + * @param userAddress 原始地址对象 + * @return AddressApple对象 + */ + public static AddressApple fromUserAddress(com.ruoyi.system.domain.UserAddress userAddress) { + if (userAddress == null) { + return null; + } + + AddressApple addressApple = new AddressApple(); + addressApple.setId(userAddress.getId()); + addressApple.setUid(userAddress.getUid()); + addressApple.setName(userAddress.getName()); + addressApple.setPhone(userAddress.getPhone()); + addressApple.setLatitude(userAddress.getLatitude()); + addressApple.setLongitude(userAddress.getLongitude()); + addressApple.setAddress_name(userAddress.getAddressName()); + addressApple.setAddress_info(userAddress.getAddressInfo()); + addressApple.setInfo(userAddress.getInfo()); + addressApple.setIs_default(userAddress.getIsDefault()); + addressApple.setCreated_at(userAddress.getCreatedAt()); + addressApple.setUpdated_at(userAddress.getUpdatedAt()); + addressApple.setDeleted_at(userAddress.getDeletedAt()); + + return addressApple; + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/OrderApple.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/OrderApple.java new file mode 100644 index 0000000..0919411 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/AppleDoMain/OrderApple.java @@ -0,0 +1,146 @@ +package com.ruoyi.system.domain.AppleDoMain; + +import com.ruoyi.common.core.domain.BaseEntity; + +import java.util.Date; +import java.util.Map; + +public class OrderApple extends BaseEntity { + + + private Date created_at;// "2024-08-31 12:04:50" + private Long id;// 260 + private Integer is_comment;// 1 + private String make_hour;// "14:00-15:00" + private Integer make_time;// "2024-08-31 14:00-15:00" + private String name;// "赵先生" + private Integer num;// 1 + private String order_id;// "B831770908583777" + private Map product;// "{}"product + private Long product_id;// 62 + private String sku;// null + private Long status;// 4 + private String total_price;// "68.00" + private Integer type;// 1 + private Long uid;// : 302 + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getTotal_price() { + return total_price; + } + + public void setTotal_price(String total_price) { + this.total_price = total_price; + } + + public Long getStatus() { + return status; + } + + public void setStatus(Long status) { + this.status = status; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public Long getProduct_id() { + return product_id; + } + + public void setProduct_id(Long product_id) { + this.product_id = product_id; + } + + public Map getProduct() { + return product; + } + + public void setProduct(Map product) { + this.product = product; + } + + public String getOrder_id() { + return order_id; + } + + public void setOrder_id(String order_id) { + this.order_id = order_id; + } + + public Integer getNum() { + return num; + } + + public void setNum(Integer num) { + this.num = num; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getMake_time() { + return make_time; + } + + public void setMake_time(Integer make_time) { + this.make_time = make_time; + } + + public String getMake_hour() { + return make_hour; + } + + public void setMake_hour(String make_hour) { + this.make_hour = make_hour; + } + + public Integer getIs_comment() { + return is_comment; + } + + public void setIs_comment(Integer is_comment) { + this.is_comment = is_comment; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getCreated_at() { + return created_at; + } + + public void setCreated_at(Date created_at) { + this.created_at = created_at; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderMapper.java index 980f349..c54c920 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OrderMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.system.domain.AppleDoMain.OrderApple; import com.ruoyi.system.domain.Order; /** @@ -19,6 +21,16 @@ public interface OrderMapper */ public Order selectOrderById(Long id); + + + + /** + * 小程序查询服务订单列表 + * + * @param orderApple 服务订单 + * @return 服务订单集合 + */ + public List selectOrderAppleList(OrderApple orderApple); /** * 查询服务订单列表 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IOrderService.java index c156057..4087ca5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IOrderService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IOrderService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service; import java.util.List; + +import com.ruoyi.system.domain.AppleDoMain.OrderApple; import com.ruoyi.system.domain.Order; /** @@ -19,7 +21,13 @@ public interface IOrderService */ public Order selectOrderById(Long id); - + /** + * 小程序查询服务订单列表 + * + * @param orderApple 服务订单 + * @return 服务订单集合 + */ + public List selectOrderAppleList(OrderApple orderApple); public Order selectOrderByOrderId(String orderId); /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java index ab7f6cc..7220208 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service.impl; import java.util.List; + +import com.ruoyi.system.domain.AppleDoMain.OrderApple; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.OrderMapper; @@ -33,7 +35,15 @@ public class OrderServiceImpl implements IOrderService - + /** + * 小程序查询服务订单列表 + * + * @param orderApple 服务订单 + * @return 服务订单集合 + */ + public List selectOrderAppleList(OrderApple orderApple){ + return orderMapper.selectOrderAppleList(orderApple); + } public Order selectOrderByOrderId(String orderId){ diff --git a/ruoyi-system/src/main/resources/mapper/system/OrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OrderMapper.xml index 4bbb09d..f85dd49 100644 --- a/ruoyi-system/src/main/resources/mapper/system/OrderMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/OrderMapper.xml @@ -1,62 +1,149 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - select id, type, main_order_id, order_id, transaction_id, create_type, create_phone, uid, product_id, name, phone, address, make_time, make_hour, num, total_price, good_price, service_price, pay_price, coupon_id, deduction, pay_time, status, is_pause, mark, address_id, sku, worker_id, first_worker_id, receive_time, is_comment, receive_type, is_accept, middle_phone, user_phone, worker_phone, address_en, uid_admin, address_admin, log_status, log_json, json_status, log_images, created_at, updated_at, deleted_at from order_data + select id, + type, + main_order_id, + order_id, + transaction_id, + create_type, + create_phone, + uid, + product_id, + name, + phone, + address, + make_time, + make_hour, + num, + total_price, + good_price, + service_price, + pay_price, + coupon_id, + deduction, + pay_time, + status, + is_pause, + mark, + address_id, + sku, + worker_id, + first_worker_id, + receive_time, + is_comment, + receive_type, + is_accept, + middle_phone, + user_phone, + worker_phone, + address_en, + uid_admin, + address_admin, + log_status, + log_json, + json_status, + log_images, + created_at, + updated_at, + deleted_at + from order_data + + + + + + - +