Merge remote-tracking branch 'origin/master'
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "permissions": { |
| | | "allow": [ |
| | | "WebSearch" |
| | | ], |
| | | "additionalDirectories": [ |
| | | "d:\\DouMee\\javaCodeGit\\gtzxinglijicun\\server\\services\\src\\main\\java\\com\\doumee\\core\\utils" |
| | | ] |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @ApiOperation("ä¿®æ¹å¸æºç¶æ") |
| | | @PostMapping("/changeStatus") |
| | | @PostMapping("/updateStatus") |
| | | @RequiresPermissions("business:driverInfo:update") |
| | | public ApiResponse changeStatus(@RequestBody ChangeStatusDTO dto) { |
| | | public ApiResponse updateStatus(@RequestBody ChangeStatusDTO dto) { |
| | | driverInfoService.changeStatus(dto); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.dto.ChangeStatusDTO; |
| | | import com.doumee.dao.dto.MemberListQueryDTO; |
| | | import com.doumee.dao.vo.MemberDetailVO; |
| | | import com.doumee.dao.vo.MemberListVO; |
| | |
| | | public ApiResponse<MemberDetailVO> findMemberDetail(@PathVariable Integer id) { |
| | | return ApiResponse.success(memberService.findMemberDetail(id)); |
| | | } |
| | | |
| | | @ApiOperation("ä¿®æ¹ä¼åç¶æ") |
| | | @PostMapping("/updateStatus") |
| | | @RequiresPermissions("business:member:update") |
| | | public ApiResponse updateStatus(@RequestBody ChangeStatusDTO dto) { |
| | | if (dto.getId() == null || dto.getStatus() == null || (dto.getStatus() != 0 && dto.getStatus() != 1)) { |
| | | return ApiResponse.failed("åæ°é误ï¼ç¶æï¼0=å¯ç¨ï¼1=ç¦ç¨"); |
| | | } |
| | | Member member = new Member(); |
| | | member.setId(dto.getId()); |
| | | member.setStatus(dto.getStatus()); |
| | | memberService.updateById(member); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.PrinterInfo; |
| | | import com.doumee.service.business.PrinterInfoService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * æå°æºä¿¡æ¯ |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | @Api(tags = "æå°æºä¿¡æ¯") |
| | | @RestController |
| | | @RequestMapping("/business/printerInfo") |
| | | public class PrinterInfoController extends BaseController { |
| | | |
| | | @Autowired |
| | | private PrinterInfoService printerInfoService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:printerInfo:create") |
| | | public ApiResponse create(@RequestBody PrinterInfo printerInfo) { |
| | | printerInfo.setCreateUser(this.getLoginUser().getId()); |
| | | return ApiResponse.success(printerInfoService.create(printerInfo)); |
| | | } |
| | | |
| | | @ApiOperation("å é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:printerInfo:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | printerInfoService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:printerInfo:delete") |
| | | public ApiResponse deleteByIdInBatch(@RequestParam String ids) { |
| | | String[] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | printerInfoService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("ä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:printerInfo:update") |
| | | public ApiResponse updateById(@RequestBody PrinterInfo printerInfo) { |
| | | printerInfo.setUpdateUser(this.getLoginUser().getId()); |
| | | printerInfoService.updateById(printerInfo); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:printerInfo:query") |
| | | public ApiResponse<PageData<PrinterInfo>> findPage(@RequestBody PageWrap<PrinterInfo> pageWrap) { |
| | | return ApiResponse.success(printerInfoService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @RequiresPermissions("business:printerInfo:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(printerInfoService.findById(id)); |
| | | } |
| | | } |
| | |
| | | import com.doumee.dao.business.model.ShopInfo; |
| | | import com.doumee.dao.dto.AuditDTO; |
| | | import com.doumee.dao.dto.ChangeStatusDTO; |
| | | import com.doumee.dao.dto.PrinterBindDTO; |
| | | import com.doumee.dao.dto.ResetPasswordDTO; |
| | | import com.doumee.dao.dto.ShopUpdateDTO; |
| | | import com.doumee.dao.vo.ShopDetailVO; |
| | |
| | | return ApiResponse.success("ä¿®æ¹æå"); |
| | | } |
| | | |
| | | @ApiOperation("ç»å®æå°æº") |
| | | @PostMapping("/bindPrinter") |
| | | @RequiresPermissions("business:shopInfo:update") |
| | | public ApiResponse bindPrinter(@RequestBody @javax.validation.Valid PrinterBindDTO dto) { |
| | | shopInfoService.bindPrinter(dto); |
| | | return ApiResponse.success("ç»å®æå"); |
| | | } |
| | | |
| | | @ApiOperation("è§£ç»æå°æº") |
| | | @PostMapping("/unbindPrinter/{shopId}") |
| | | @RequiresPermissions("business:shopInfo:update") |
| | | public ApiResponse unbindPrinter(@PathVariable Integer shopId) { |
| | | shopInfoService.unbindPrinter(shopId); |
| | | return ApiResponse.success("è§£ç»æå"); |
| | | } |
| | | |
| | | @ApiOperation("æ¥è¯¢æå°æºç¶æ") |
| | | @GetMapping("/printerStatus/{shopId}") |
| | | @RequiresPermissions("business:shopInfo:query") |
| | | public ApiResponse queryPrinterStatus(@PathVariable Integer shopId) { |
| | | return ApiResponse.success(shopInfoService.queryPrinterStatus(shopId)); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | -- ============================================================ |
| | | -- 2026/04/28 APPçæ¬æä»¶è·¯å¾åå
¸ |
| | | -- ============================================================ |
| | | INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES ((SELECT `id` FROM `system_dict` WHERE `code` = 'OSS'), '', 'APP_FILES', 'APPçæ¬æä»¶è·¯å¾', 0, 0, 1, NOW(), 0); |
| | | |
| | | |
| | | -- ============================================================ |
| | | -- 2026/04/28 æå°æºä¿¡æ¯è¡¨ + æé |
| | | -- ============================================================ |
| | | |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:printerInfo:create', 'æ°å»ºæå°æº', 'æå°æºä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:printerInfo:delete', 'å 餿尿º', 'æå°æºä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:printerInfo:update', 'ä¿®æ¹æå°æº', 'æå°æºä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `MODULE`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:printerInfo:query', 'æ¥è¯¢æå°æº', 'æå°æºä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | |
| | | |
| | | |
| | | -- ============================================================ |
| | | -- 2026/04/28 è¯ç¨äºæå°æºéæï¼é¨åºè¡¨å¢å æå°æºSNåæ®µ |
| | | -- ============================================================ |
| | | ALTER TABLE `shop_info` ADD COLUMN `PRINTER_SN` VARCHAR(64) DEFAULT NULL COMMENT 'è¯ç¨äºæå°æºSNç¼å·' AFTER `BUSINESS_TYPE`; |
| | | |
| | | |
| | | -- ============================================================ |
| | | -- 2026/04/28 è¯ç¨äºæå°æºé
ç½®åå
¸ï¼è´¦å·ä¿¡æ¯åç»æå¨ç»´æ¤CODEå¼ï¼ |
| | | -- ============================================================ |
| | | INSERT INTO `system_dict` (`id`, `code`, `name`, `disabled`, `deleted`) VALUES (106, 'XPYUN_CONFIG', 'è¯ç¨äºé
ç½®', 0, 0); |
| | | INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (106, '', 'XPYUN_USER', 'è¯ç¨äºå¼åè
ID', 0, 0, 1, NOW(), 0); |
| | | INSERT INTO `system_dict_data` (`DICT_ID`, `CODE`, `LABEL`, `REMARK`, `SORT`, `DISABLED`, `CREATE_USER`, `CREATE_TIME`, `DELETED`) VALUES (106, '', 'XPYUN_USER_KEY', 'è¯ç¨äºå¼åè
å¯é¥', 1, 0, 1, NOW(), 0); |
| | | |
| | | |
| | | -- ============================================================ |
| | | -- 2026/04/22 订å鿬¾è¡¨æ°å¢é款å订åç¶æåæ®µ |
| | | -- ============================================================ |
| | | ALTER TABLE `orders_refund` ADD COLUMN `BEFORE_STATUS` INT NULL DEFAULT NULL COMMENT '鿬¾å订åç¶æ' AFTER `STATUS`; |
| | |
| | | // 设置åå®¶ä¾§å¯ä¸è®¢åå· |
| | | data.setOutBizNo(dto.getOutBizNo()); |
| | | // è®¾ç½®è®¢åæ»éé¢ |
| | | data.setTransAmount("1"); |
| | | data.setTransAmount("0.1"); |
| | | // 设置æè¿°ç¹å®çä¸å¡åºæ¯ |
| | | data.setOutBizNo(dto.getOutBizNo()); |
| | | data.setTransAmount(dto.getTransAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()); |
| | | // data.setTransAmount(dto.getTransAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()); |
| | | data.setBizScene("DIRECT_TRANSFER"); |
| | | // 设置ä¸å¡äº§åç |
| | | data.setProductCode("TRANS_ACCOUNT_NO_PWD"); |
| | |
| | | if(isForbidden == Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"åæ·å·²ç¦ç¨,请è系管çå"); |
| | | } |
| | | String dbOpenid = dao.queryForObject(" select ifnull(openid,'') from shop_info where id = ?", String.class, shopId); |
| | | if(StringUtils.isBlank(dbOpenid)||!openid.equals(dbOpenid)){ |
| | | throw new BusinessException(ResponseStatus.SHOP_TOKEN_EXCEED_TIME); |
| | | } |
| | | Integer count = dao.queryForObject("select count(1) from shop_info where id = ?", Integer.class, shopId); |
| | | if (count != null && count > 0) { |
| | | request.setAttribute(JwtTokenUtil.SHOP_ID, shop.getId()); |
| | |
| | | |
| | | com.wechat.pay.java.service.payments.jsapi.model.Amount amount = |
| | | new com.wechat.pay.java.service.payments.jsapi.model.Amount(); |
| | | amount.setTotal(1);//totalCents.intValue()); |
| | | amount.setTotal(totalCents.intValue()); |
| | | amount.setCurrency("CNY"); |
| | | request.setAmount(amount); |
| | | |
| | |
| | | request.setNotifyUrl(notifyUrl); |
| | | |
| | | AmountReq amount = new AmountReq(); |
| | | amount.setRefund(1L);//refundCents); |
| | | amount.setTotal(1L);//totalCents); |
| | | amount.setRefund(refundCents); |
| | | amount.setTotal(totalCents); |
| | | amount.setCurrency("CNY"); |
| | | request.setAmount(amount); |
| | | |
| | |
| | | public static final String DRIVER_FILES = "DRIVER_FILES"; |
| | | public static final String BANNER_FILES = "BANNER_FILES"; |
| | | public static final String ORDERS_FILES = "ORDERS_FILES"; |
| | | public static final String APP_FILES = "APP_FILES"; |
| | | |
| | | // è¿è¥é
ç½® |
| | | public static final String OPERATION_CONFIG = "OPERATION_CONFIG"; |
| | |
| | | public static final String OP_NO_GRAB_NOTIFY_TIME = "NO_GRAB_NOTIFY_TIME"; |
| | | public static final String OP_NO_GRAB_NOTIFY_USERS = "NO_GRAB_NOTIFY_USERS"; |
| | | public static final String OP_DEFAULT_DELIVERY_RANGE = "DEFAULT_DELIVERY_RANGE"; |
| | | |
| | | // è¯ç¨äºæå°æºé
ç½® |
| | | public static final String XPYUN_CONFIG = "XPYUN_CONFIG"; |
| | | public static final String XPYUN_USER = "XPYUN_USER"; |
| | | public static final String XPYUN_USER_KEY = "XPYUN_USER_KEY"; |
| | | |
| | | public static boolean WORKORDER_SHE_EMAIL_SENDING = false; |
| | | public static boolean DEALING_COMPANY_SYNC = false ; |
| | | public static boolean DEALING_MEMBER_SYNC = false ; |
| | |
| | | waitPay(0, "å¾
æ¯ä»", new int[]{OrderStatus.waitPay.status}), |
| | | waitDeposit(1, "å¾
æ ¸éª", new int[]{OrderStatus.waitDeposit.status}), |
| | | waitDeliver(2, "å¾
é
é", new int[]{OrderStatus.accepted.status}), |
| | | waitReceive(3, "å¾
æ¶è´§", new int[]{ OrderStatus.delivering.status, OrderStatus.arrived.status}), |
| | | waitReceive(3, "å¾
æ¶è´§", new int[]{ OrderStatus.arrived.status}), |
| | | finished(4, "已宿", new int[]{OrderStatus.finished.status}), |
| | | refund(5, "åæ¶", new int[]{OrderStatus.cancelled.status}), |
| | | home(6, "é¦é¡µæ¥è¯¢", new int[]{OrderStatus.waitPay.status, OrderStatus.waitDeposit.status, OrderStatus.deposited.status |
| | |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum SmsNotify { |
| | | PLATFORM_WAIT_GRAB("SMS_505790009", "å¹³å°ç«¯-å¾
æ¢å", "æ¨å¥½ï¼è®¢åï¼{orderNo}å·²è¶
è¿{time}åéæ å¸æºæ¢åï¼è¯·å°½å¿«å æ¥æ´¾åï¼é¿å
客æ·è¿ä¹
çå¾
ã"), |
| | | SHOP_REFUNDING("SMS_505900008", "é¨åºç«¯-鿬¾ä¸", "è¡æè®¢åï¼{orderNo}客æ·å·²æäº¤é款ç³è¯·ï¼è¯·å°½å¿«å¤çã"), |
| | | SHOP_WAIT_VERIFY("SMS_505925004", "é¨åºç«¯-å¾
æ ¸éª", "æ°è¡æè®¢åï¼{orderNo}客æ·å·²æ¯ä»ï¼è¯·å°½å¿«æ ¸éªç¨æ·ç©åä¿¡æ¯ã"), |
| | | DRIVER_REFUNDING("SMS_505795005", "叿ºç«¯-鿬¾ä¸", "è¡æè®¢åï¼{orderNo}ç¨æ·å·²æäº¤é款ç³è¯·ï¼è¯¥è®¢åä»»å¡å·²åæ¶ï¼è¯·å¿åå¾ã"), |
| | | DRIVER_WAIT_PICKUP("SMS_505650038", "叿ºç«¯-å¾
åä»¶", "æ¨å·²æ¢åæåï¼è®¢å{orderNo}ï¼è¯·ææ¶å°{address}åä»¶ã"), |
| | | MEMBER_CANCELLED("SMS_505605028", "ä¼å端-已忶", "æ¨çè¡æè®¢åï¼{orderNo}å·²åæ¶ï¼æè°¢æ¨çæ¯æï¼æ¬¢è¿ä¸æ¬¡åä¼ã"), |
| | | MEMBER_REFUNDED("SMS_505920002", "ä¼å端-已鿬¾", "æ¨çè¡æè®¢åï¼{orderNo}鿬¾å·²å®æï¼éé¢{money}å
å°åè·¯éåï¼è¯·æ³¨ææ¥æ¶ã"), |
| | | MEMBER_ARRIVED("SMS_505875004", "ä¼å端-å·²éè¾¾", "æ¨çè¡æè®¢åï¼{orderNo}å·²éå°{address}ï¼è¯·åæ¶åä»¶ï¼åä»¶ç ï¼{code}ã"), |
| | | MEMBER_DELIVERING("SMS_505935002", "ä¼å端-é
éä¸", "æ¨çè¡æè®¢åï¼{orderNo}å·²ç±å¸æº{name}åä»¶ï¼æ£è¿å¾ç®çå°ã"), |
| | | PLATFORM_WAIT_GRAB("SMS_505865290", "å¹³å°ç«¯-å¾
æ¢å", "æ¨å¥½ï¼è®¢åï¼{orderNo}å·²è¶
è¿{time}åéæ å¸æºæ¢åï¼è¯·å°½å¿«å æ¥æ´¾åï¼é¿å
客æ·è¿ä¹
çå¾
ã"), |
| | | SHOP_REFUNDING("SMS_505905263", "é¨åºç«¯-鿬¾ä¸", "è¡æè®¢åï¼{orderNo}客æ·å·²æäº¤é款ç³è¯·ï¼è¯·å°½å¿«å¤çã"), |
| | | SHOP_WAIT_VERIFY("SMS_505915292", "é¨åºç«¯-å¾
æ ¸éª", "æ°è¡æè®¢åï¼{orderNo}客æ·å·²æ¯ä»ï¼è¯·å°½å¿«æ ¸éªç¨æ·ç©åä¿¡æ¯ã"), |
| | | DRIVER_REFUNDING("SMS_505905264", "叿ºç«¯-鿬¾ä¸", "è¡æè®¢åï¼{orderNo}ç¨æ·å·²æäº¤é款ç³è¯·ï¼è¯¥è®¢åä»»å¡å·²åæ¶ï¼è¯·å¿åå¾ã"), |
| | | DRIVER_WAIT_PICKUP("SMS_505960277", "叿ºç«¯-å¾
åä»¶", "æ¨å·²æ¢åæåï¼è®¢å{orderNo}ï¼è¯·ææ¶å°{address}åä»¶ã"), |
| | | MEMBER_CANCELLED("SMS_505615328", "ä¼å端-已忶", "æ¨çè¡æè®¢åï¼{orderNo}å·²åæ¶ï¼æè°¢æ¨çæ¯æï¼æ¬¢è¿ä¸æ¬¡åä¼ã"), |
| | | MEMBER_REFUNDED("SMS_505850299", "ä¼å端-已鿬¾", "æ¨çè¡æè®¢åï¼{orderNo}鿬¾å·²å®æï¼éé¢{money}å
å°åè·¯éåï¼è¯·æ³¨ææ¥æ¶ã"), |
| | | MEMBER_ARRIVED("SMS_505645328", "ä¼å端-å·²éè¾¾", "æ¨çè¡æè®¢åï¼{orderNo}å·²éå°{address}ï¼è¯·åæ¶åä»¶ï¼åä»¶ç ï¼{code}ã"), |
| | | MEMBER_DELIVERING("SMS_505715321", "ä¼å端-é
éä¸", "æ¨çè¡æè®¢åï¼{orderNo}å·²ç±å¸æº{name}åä»¶ï¼æ£è¿å¾ç®çå°ã"), |
| | | VERIFY_CODE("SMS_333770877", "éªè¯ç çä¿¡", "æ¨çéªè¯ç 为ï¼{code}ï¼è¯·å¿æ³é²äºä»äººï¼"), |
| | | DRIVER_AUTH_REJECTED("SMS_505790115", "叿ºç«¯-叿ºè®¤è¯è¢«æç»", "å°æ¬ç{driver}ï¼å¾éæ¾ï¼æ¨ç叿ºè®¤è¯æªéè¿å®¡æ ¸ãåå ï¼{reason}ãæ¨å¯ä¿®æ¹èµæåéæ°æäº¤ã"), |
| | | DRIVER_AUTH_APPROVED("SMS_505885083", "叿ºç«¯-叿ºè®¤è¯éè¿", "å°æ¬ç{driver}ï¼æåæ¨å·²éè¿å¹³å°å¸æºè®¤è¯å®¡æ ¸ãæ¨å¯ç»å½å¸æºç«¯APPå¼å§æ¥åï¼é
éè¿ç¨ä¸è¯·æ³¨æå®å
¨ï¼ç¥æ¨æ¥å顺å©ï¼"), |
| | | DRIVER_URGENT_DISPATCH("SMS_505885082", "叿ºç«¯-å æ¥æ´¾å", "æ¨å¥½ï¼æ¨æä¸ä¸ªæ°çè¡æè®¢åï¼ç¼å·ï¼{orderNo}ï¼ãèµ·ç¹ï¼{address1}ï¼ç»ç¹ï¼{address2}ï¼é
éè´¹{money1}å
ï¼å«å æ¥è´¹{money2}å
ï¼ã请尽快确认订åä»»å¡ã"), |
| | | DRIVER_URGENT_DISPATCH("SMS_505940293", "叿ºç«¯-å æ¥æ´¾å", "æ¨å¥½ï¼æ¨æä¸ä¸ªæ°çè¡æè®¢åï¼ç¼å·ï¼{orderNo}ï¼ãèµ·ç¹ï¼{address1}ï¼ç»ç¹ï¼{address2}ï¼é
éè´¹{money1}å
ï¼å«å æ¥è´¹{money2}å
ï¼ã请尽快确认订åä»»å¡ã"), |
| | | SHOP_AUTH_REJECTED("SMS_505925106", "é¨åºç«¯-èµæå®¡æ ¸è¢«æç»", "å¾éæ¾ï¼æ¨çé¨åº\"{storeName}\"æªéè¿å®¡æ ¸ï¼åå ï¼{reason}ï¼æ¨å¯ä¿®æ¹èµæåéæ°æäº¤ã"), |
| | | SHOP_AUTH_APPROVED_DEPOSIT("SMS_505705111", "é¨åºç«¯-å®¡æ ¸éè¿é缴纳æ¼é", "æåæ¨ï¼æ¨çé¨åº\"{storeName}\"å·²éè¿åæ¥å®¡æ ¸ã请æ¯ä»æ¼é{money}å
以宿å
¥é©»ï¼æ¯ä»åå³å¯ç»å½é¨åºåå°æ£å¼æ¥åã"), |
| | | SHOP_AUTH_SUCCESS("SMS_505810110", "é¨åºç«¯-æåå
¥é©»éç¥", "æåæ¨ï¼æ¨çé¨åº\"{storeName}\"å·²éè¿å¹³å°å®¡æ ¸ï¼æ£å¼å
¥é©»æåãæ¨å¯ç»å½åå®¶åå°å¼å§æ¥åï¼è´¦å·ï¼{phone}ï¼åå§å¯ç ï¼{password}ï¼å»ºè®®é¦æ¬¡ç»å½åä¿®æ¹ï¼ã"), |
| | | SHOP_AUTH_SUCCESS("SMS_505915289", "é¨åºç«¯-æåå
¥é©»éç¥", "æåæ¨ï¼æ¨çé¨åº\"{storeName}\"å·²éè¿å¹³å°å®¡æ ¸ï¼æ£å¼å
¥é©»æåã æ¨å¯ç»å½åå®¶åå°å¼å§æ¥åï¼è´¦å·ï¼æ³¨åææºå·ï¼åå§å¯ç ï¼ï¼{password}ï¼å»ºè®®é¦æ¬¡ç»å½åä¿®æ¹ï¼ã"), |
| | | ; |
| | | |
| | | private final String templateCode; |
| | |
| | | * @param templateParam 模æ¿åéjsonå符串 |
| | | * @return å¤çç»æ |
| | | */ |
| | | public static Boolean sendSms(String phone, String templateCode, String templateParam) { |
| | | public static String sendSms(String phone, String templateCode, String templateParam) { |
| | | try { |
| | | //设置è¶
æ¶æ¶é´-å¯èªè¡è°æ´ |
| | | System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); |
| | | System.setProperty("sun.net.client.defaultReadTimeout", "10000"); |
| | | //åå§åascClientéè¦çå ä¸ªåæ° |
| | | //çä¿¡API产ååç§°ï¼ç信产åååºå®ï¼æ éä¿®æ¹ï¼ |
| | | final String product = "Dysmsapi"; |
| | | //çä¿¡API产åååï¼æ¥å£å°ååºå®ï¼æ éä¿®æ¹ï¼ |
| | | final String domain = "dysmsapi.aliyuncs.com"; |
| | | //åå§åascClient,ææ¶ä¸æ¯æå¤regionï¼è¯·å¿ä¿®æ¹ï¼ |
| | | IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEY_ID, ACCESS_KEY_SECRET); |
| | | DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); |
| | | IAcsClient acsClient = new DefaultAcsClient(profile); |
| | | //ç»è£
请æ±å¯¹è±¡ |
| | | SendSmsRequest request = new SendSmsRequest(); |
| | | //使ç¨postæäº¤ |
| | | request.setMethod(MethodType.POST); |
| | | //å¿
å¡«:å¾
åéææºå·ãæ¯æä»¥éå·åéçå½¢å¼è¿è¡æ¹éè°ç¨ï¼æ¹éä¸é为1000ä¸ªææºå·ç ,æ¹éè°ç¨ç¸å¯¹äºåæ¡è°ç¨åæ¶æ§ç¨æå»¶è¿,éªè¯ç ç±»åççä¿¡æ¨è使ç¨åæ¡è°ç¨çæ¹å¼ |
| | | request.setPhoneNumbers(phone); |
| | | //å¿
å¡«:çä¿¡ç¾å-å¯å¨çä¿¡æ§å¶å°ä¸æ¾å° |
| | | request.setSignName(SING_NAME); |
| | | //å¿
å¡«:ç信模æ¿-å¯å¨çä¿¡æ§å¶å°ä¸æ¾å° |
| | | request.setTemplateCode(templateCode); |
| | | //å¯é:模æ¿ä¸çåéæ¿æ¢JSON串,妿¨¡æ¿å
容为"亲ç±ç${name},æ¨çéªè¯ç 为${code}"æ¶ï¼æ¤å¤çå¼ä¸º |
| | | //åæ
æç¤º:妿JSONä¸éè¦å¸¦æ¢è¡ç¬¦,请åç
§æ åçJSONå议对æ¢è¡ç¬¦çè¦æ±,æ¯å¦çä¿¡å
容ä¸å
å«\r\nçæ
åµå¨JSONä¸éè¦è¡¨ç¤ºæ\\r\n,å¦åä¼å¯¼è´JSON卿å¡ç«¯è§£æå¤±è´¥ |
| | | request.setTemplateParam(templateParam); |
| | | //å¯é-ä¸è¡çä¿¡æ©å±ç (æ©å±ç åæ®µæ§å¶å¨7使以ä¸ï¼æ ç¹æ®éæ±ç¨æ·è¯·å¿½ç¥æ¤å段) |
| | | //dto.setSmsUpExtendCode("90997"); |
| | | //å¯é:outId为æä¾ç»ä¸å¡æ¹æ©å±å段,æç»å¨çä¿¡åæ§æ¶æ¯ä¸å°æ¤å¼å¸¦åç»è°ç¨è
|
| | | //dto.setOutId("yourOutId"); |
| | | //请æ±å¤±è´¥è¿é伿ClientExceptionå¼å¸¸ |
| | | SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); |
| | | if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { |
| | | log.info("çä¿¡åéå
容ï¼"+phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse)); |
| | | return true; |
| | | log.info("çä¿¡åéæåï¼phone={}, template={}", phone, templateCode); |
| | | return null; |
| | | } else { |
| | | log.error("çä¿¡åéå
容ï¼"+phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse)); |
| | | String error = sendSmsResponse.getCode() + ":" + sendSmsResponse.getMessage(); |
| | | log.error("çä¿¡åé失败ï¼phone={}, template={}, error={}", phone, templateCode, error); |
| | | return error; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | // logger.error(e); |
| | | log.error("çä¿¡åéå¼å¸¸ï¼phone={}, template={}, error={}", phone, templateCode, e.getMessage()); |
| | | return e.getMessage(); |
| | | } |
| | | return false; |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.utils.xpyun; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.security.MessageDigest; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * è¯ç¨äºæå°æºAPIæå¡ |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class XpyunPrintService { |
| | | |
| | | private static final String BASE_URL = "https://open.xpyun.net/api/openapi/xprinter/"; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | /** |
| | | * æ·»å æå°æº |
| | | */ |
| | | public XpyunResponse addPrinter(String sn, String name) { |
| | | JSONObject body = buildBaseRequest(); |
| | | JSONArray printerContent = new JSONArray(); |
| | | JSONObject printer = new JSONObject(); |
| | | printer.put("sn", sn); |
| | | printer.put("name", name); |
| | | printerContent.add(printer); |
| | | body.put("printerContent", printerContent); |
| | | return callApi("addPrinters", body); |
| | | } |
| | | |
| | | /** |
| | | * å 餿尿º |
| | | */ |
| | | public XpyunResponse deletePrinter(String sn) { |
| | | JSONObject body = buildBaseRequest(); |
| | | JSONArray snlist = new JSONArray(); |
| | | snlist.add(sn); |
| | | body.put("snlist", snlist); |
| | | return callApi("delPrinters", body); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢æå°æºç¶æ |
| | | */ |
| | | public XpyunResponse queryPrinterStatus(String sn) { |
| | | JSONObject body = buildBaseRequest(); |
| | | body.put("sn", sn); |
| | | return callApi("queryPrinterStatus", body); |
| | | } |
| | | |
| | | /** |
| | | * æå°æ ç¾ |
| | | */ |
| | | public XpyunResponse printLabel(String sn, String content) { |
| | | JSONObject body = buildBaseRequest(); |
| | | body.put("sn", sn); |
| | | body.put("content", content); |
| | | return callApi("printLabel", body); |
| | | } |
| | | |
| | | /** |
| | | * æå»ºè®¢åæ ç¾å
容 (60mm à 60mm = 480 à 480 dots) |
| | | * |
| | | * å¸å±: |
| | | * shopName sn/countSn |
| | | * 订åç¼å·ï¼code ä¸åæ¶é´ï¼xxx |
| | | * æ¶ä»¶ä¿¡æ¯ï¼å¼ ä¸ï¼ææºå°¾å·1234ï¼ |
| | | * 订åè¡æï¼ |
| | | * è¡æç®±Ã1 åè©å
Ã2 |
| | | * 订å夿³¨ |
| | | * xxxxxxx |
| | | */ |
| | | public String buildOrderLabel(String shopName, String orderCode, String createTime, |
| | | String takeUser, String takePhone, |
| | | String goodsInfo, String remark, |
| | | String snLabel) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append("<PAGE>"); |
| | | sb.append("<WIDTH>480</WIDTH>"); |
| | | sb.append("<HEIGHT>480</HEIGHT>"); |
| | | |
| | | // 第1è¡: shopName 左侧, snLabel å³ä¾§ |
| | | sb.append("<TEXT X=\"8\" Y=\"8\" W=\"320\" H=\"28\" T=\"16\">") |
| | | .append(escapeXml(shopName)).append("</TEXT>"); |
| | | sb.append("<TEXT X=\"340\" Y=\"8\" W=\"140\" H=\"28\" T=\"14\">") |
| | | .append(escapeXml(snLabel)).append("</TEXT>"); |
| | | |
| | | // 第2è¡: 订åç¼å· + ä¸åæ¶é´ |
| | | sb.append("<TEXT X=\"8\" Y=\"44\" W=\"340\" H=\"24\" T=\"13\">") |
| | | .append("订åç¼å·ï¼").append(escapeXml(orderCode)).append("</TEXT>"); |
| | | sb.append("<TEXT X=\"356\" Y=\"44\" W=\"124\" H=\"24\" T=\"13\">") |
| | | .append(escapeXml(createTime)).append("</TEXT>"); |
| | | |
| | | // 订åç¼å·æ¡å½¢ç |
| | | sb.append("<C128 X=\"8\" Y=\"72\" W=\"464\" H=\"56\" T=\"") |
| | | .append(escapeXml(orderCode)).append("\"/>"); |
| | | |
| | | // 第4è¡: æ¶ä»¶ä¿¡æ¯ |
| | | String contactInfo = takeUser != null ? takeUser : ""; |
| | | if (takePhone != null && takePhone.length() >= 4) { |
| | | contactInfo += "ï¼ææºå°¾å·" + takePhone.substring(takePhone.length() - 4) + "ï¼"; |
| | | } |
| | | sb.append("<TEXT X=\"8\" Y=\"140\" W=\"464\" H=\"24\" T=\"13\">") |
| | | .append("æ¶ä»¶ä¿¡æ¯ï¼").append(escapeXml(contactInfo)).append("</TEXT>"); |
| | | |
| | | // 第5è¡: 订åè¡æ |
| | | sb.append("<TEXT X=\"8\" Y=\"172\" W=\"464\" H=\"24\" T=\"13\">") |
| | | .append("订åè¡æï¼</TEXT>"); |
| | | if (StringUtils.isNotBlank(goodsInfo)) { |
| | | sb.append("<TEXT X=\"8\" Y=\"200\" W=\"464\" H=\"24\" T=\"12\">") |
| | | .append(escapeXml(goodsInfo)).append("</TEXT>"); |
| | | } |
| | | |
| | | // 订å夿³¨ |
| | | if (StringUtils.isNotBlank(remark)) { |
| | | sb.append("<TEXT X=\"8\" Y=\"240\" W=\"464\" H=\"24\" T=\"13\">") |
| | | .append("订å夿³¨ï¼</TEXT>"); |
| | | sb.append("<TEXT X=\"8\" Y=\"268\" W=\"464\" H=\"48\" T=\"12\">") |
| | | .append(escapeXml(remark)).append("</TEXT>"); |
| | | } |
| | | |
| | | sb.append("</PAGE>"); |
| | | return sb.toString(); |
| | | } |
| | | |
| | | // ========== ç§ææ¹æ³ ========== |
| | | |
| | | private JSONObject buildBaseRequest() { |
| | | String user = systemDictDataBiz.queryByCode(Constants.XPYUN_CONFIG, Constants.XPYUN_USER).getCode(); |
| | | String userKey = systemDictDataBiz.queryByCode(Constants.XPYUN_CONFIG, Constants.XPYUN_USER_KEY).getCode(); |
| | | long timestamp = System.currentTimeMillis() / 1000; |
| | | String sign = sha1(user + userKey + timestamp); |
| | | |
| | | JSONObject body = new JSONObject(); |
| | | body.put("user", user); |
| | | body.put("timestamp", timestamp); |
| | | body.put("sign", sign); |
| | | return body; |
| | | } |
| | | |
| | | private XpyunResponse callApi(String endpoint, JSONObject body) { |
| | | try { |
| | | String url = BASE_URL + endpoint; |
| | | String result = HttpsUtil.postJson(url, body.toJSONString()); |
| | | if (result == null) { |
| | | log.error("è¯ç¨äºAPIè°ç¨å¤±è´¥: endpoint={}, ååºä¸ºç©º", endpoint); |
| | | XpyunResponse resp = new XpyunResponse(); |
| | | resp.setCode(-1); |
| | | resp.setMsg("ååºä¸ºç©º"); |
| | | return resp; |
| | | } |
| | | return JSON.parseObject(result, XpyunResponse.class); |
| | | } catch (Exception e) { |
| | | log.error("è¯ç¨äºAPIè°ç¨å¼å¸¸: endpoint={}, error={}", endpoint, e.getMessage(), e); |
| | | XpyunResponse resp = new XpyunResponse(); |
| | | resp.setCode(-1); |
| | | resp.setMsg(e.getMessage()); |
| | | return resp; |
| | | } |
| | | } |
| | | |
| | | private static String sha1(String input) { |
| | | try { |
| | | MessageDigest md = MessageDigest.getInstance("SHA-1"); |
| | | byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8)); |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (byte b : digest) { |
| | | sb.append(String.format("%02x", b)); |
| | | } |
| | | return sb.toString(); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("SHA-1计ç®å¤±è´¥", e); |
| | | } |
| | | } |
| | | |
| | | private static String escapeXml(String text) { |
| | | if (text == null) return ""; |
| | | return text.replace("&", "&") |
| | | .replace("<", "<") |
| | | .replace(">", ">") |
| | | .replace("\"", """) |
| | | .replace("'", "'"); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.utils.xpyun; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * è¯ç¨äºAPIååº |
| | | */ |
| | | @Data |
| | | public class XpyunResponse { |
| | | |
| | | private Integer code; |
| | | |
| | | private String msg; |
| | | |
| | | private Object data; |
| | | |
| | | private Long serverExecutedTime; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business; |
| | | |
| | | import com.doumee.dao.business.model.PrinterInfo; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | |
| | | /** |
| | | * æå°æºä¿¡æ¯Mapper |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | public interface PrinterInfoMapper extends MPJBaseMapper<PrinterInfo> { |
| | | } |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | |
| | | @ExcelColumn(name = "çæ¬å·") |
| | | private Integer versionNum; |
| | | |
| | | @ApiModelProperty(value = "å建人åç§°") |
| | | @TableField(exist = false) |
| | | private String createUserName; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "èªå
³è对象åç§°") |
| | | @TableField(exist = false) |
| | | private String relationName; |
| | | |
| | | @ApiModelProperty(value = "èªå
³è对象otherField") |
| | | @TableField(exist = false) |
| | | private String relationOtherField; |
| | | |
| | | @ApiModelProperty(value = "èªå
³èå¯¹è±¡å¤æ³¨") |
| | | @TableField(exist = false) |
| | | private String relationRemark; |
| | | } |
| | |
| | | private String unionid; |
| | | |
| | | @ApiModelProperty(value = "å®¡æ¹æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date auditTime; |
| | | |
| | | @ApiModelProperty(value = "审æ¹äºº", example = "1") |
| | |
| | | @ApiModelProperty(value = "åºå¿åç§°") |
| | | private String districtName; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "审æ¹äººåç§°") |
| | | private String auditUserName; |
| | | |
| | | } |
| | |
| | | private Date platformSmsNotifiedTime; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "å建å¼å§æ¶é´(æ¥è¯¢ç¨)", example = "2026-01-01") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | @ApiModelProperty(value = "å建å¼å§æ¶é´(æ¥è¯¢ç¨)", example = "2026-01-01 00:00:00") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createStartTime; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "åå»ºç»ææ¶é´(æ¥è¯¢ç¨)", example = "2026-12-31") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | @ApiModelProperty(value = "åå»ºç»ææ¶é´(æ¥è¯¢ç¨)", example = "2026-12-31 23:59:59") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createEndTime; |
| | | |
| | | @TableField(exist = false) |
| | |
| | | @ApiModelProperty(value = "叿ºçµè¯ï¼å
³èæ¥è¯¢ï¼") |
| | | private String driverPhone; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "é¨åºä¸»é®ï¼åæ¶æ¥è¯¢åä»¶/åä»¶é¨åºï¼") |
| | | private Integer shopId; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * æå°æºä¿¡æ¯ |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | @Data |
| | | @ApiModel("æå°æºä¿¡æ¯") |
| | | @TableName("`printer_info`") |
| | | public class PrinterInfo { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") |
| | | private Integer deleted; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ") |
| | | private Integer createUser; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ") |
| | | private Integer updateUser; |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | private Date updateTime; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "æå°æºåç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "SN") |
| | | private String sn; |
| | | |
| | | @ApiModelProperty(value = "é¨åºä¸»é®") |
| | | private Integer shopId; |
| | | } |
| | |
| | | @ApiModelProperty(value = "é¨åºè¥ä¸ç±»åï¼0=éå
¨å¤©ï¼1=å
¨å¤©", example = "0") |
| | | private Integer businessType; |
| | | |
| | | @ApiModelProperty(value = "è¯ç¨äºæå°æºSNç¼å·") |
| | | private String printerSn; |
| | | |
| | | |
| | | // éæä¹
åï¼éä»¶å表 |
| | | @TableField(exist = false) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | /** |
| | | * ä¿®æ¹å¯ç è¯·æ± |
| | | * |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | @Data |
| | | @ApiModel("ä¿®æ¹å¯ç 请æ±") |
| | | public class ChangePasswordDTO { |
| | | |
| | | @NotBlank(message = "æ§å¯ç ä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "æ§å¯ç ", required = true) |
| | | private String oldPassword; |
| | | |
| | | @NotBlank(message = "æ°å¯ç ä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "æ°å¯ç ", required = true) |
| | | private String newPassword; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | @Data |
| | | @ApiModel("æå°æºç»å®è¯·æ±") |
| | | public class PrinterBindDTO { |
| | | |
| | | @ApiModelProperty(value = "é¨åºID", required = true) |
| | | @NotNull(message = "é¨åºIDä¸è½ä¸ºç©º") |
| | | private Integer shopId; |
| | | |
| | | @ApiModelProperty(value = "æå°æºSNç¼å·", required = true) |
| | | @NotBlank(message = "æå°æºSNä¸è½ä¸ºç©º") |
| | | private String printerSn; |
| | | |
| | | @ApiModelProperty(value = "æå°æºKEY", required = true) |
| | | @NotBlank(message = "æå°æºKEYä¸è½ä¸ºç©º") |
| | | private String printerKey; |
| | | } |
| | |
| | | @NotBlank(message = "æ¯ä»å®æç°è´¦æ·ä¸è½ä¸ºç©º") |
| | | private String aliAccount; |
| | | |
| | | @ApiModelProperty(value = "æ¯ä»å®å®åå§å", required = true) |
| | | @NotBlank(message = "æ¯ä»å®å®åå§åä¸è½ä¸ºç©º") |
| | | private String aliName; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "叿ºå®çº§ï¼5=S 4=A 3=B 2=C 1=D") |
| | | private Integer driverLevel; |
| | | |
| | | @ApiModelProperty(value = "叿ºå®çº§åç§°ï¼S/A/B/C/D") |
| | | private String driverLevelName; |
| | | |
| | | @ApiModelProperty(value = "å®¡æ ¸ç¶æï¼0=å¾
å®¡æ¹ 1=审æ¹éè¿ 2=审æ¹é©³å") |
| | | private Integer auditStatus; |
| | | |
| | |
| | | */ |
| | | Areas findById(Integer id); |
| | | |
| | | Areas getById(Integer id); |
| | | |
| | | /** |
| | | * æ ¹æ®idåtypeæ¥è¯¢å¯¹è±¡ä¿¡æ¯ |
| | | * @param id |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.PrinterInfo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * æå°æºä¿¡æ¯Serviceå®ä¹ |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | public interface PrinterInfoService { |
| | | |
| | | Integer create(PrinterInfo printerInfo); |
| | | |
| | | void deleteById(Integer id); |
| | | |
| | | void delete(PrinterInfo printerInfo); |
| | | |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | |
| | | void updateById(PrinterInfo printerInfo); |
| | | |
| | | void updateByIdInBatch(List<PrinterInfo> printerInfos); |
| | | |
| | | PrinterInfo findById(Integer id); |
| | | |
| | | PrinterInfo findOne(PrinterInfo printerInfo); |
| | | |
| | | List<PrinterInfo> findList(PrinterInfo printerInfo); |
| | | |
| | | PageData<PrinterInfo> findPage(PageWrap<PrinterInfo> pageWrap); |
| | | |
| | | long count(PrinterInfo printerInfo); |
| | | } |
| | |
| | | */ |
| | | void changePassword(Integer shopId, String oldPassword, String newPassword, String token); |
| | | |
| | | /** |
| | | * ç»å®æå°æº |
| | | */ |
| | | void bindPrinter(com.doumee.dao.dto.PrinterBindDTO dto); |
| | | |
| | | /** |
| | | * è§£ç»æå°æº |
| | | */ |
| | | void unbindPrinter(Integer shopId); |
| | | |
| | | /** |
| | | * æ¥è¯¢æå°æºç¶æ |
| | | */ |
| | | Object queryPrinterStatus(Integer shopId); |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.business.AppVersionMapper; |
| | | import com.doumee.dao.business.model.AppVersion; |
| | | import com.doumee.service.business.AppVersionService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | @Override |
| | | public PageData<AppVersion> findPage(PageWrap<AppVersion> pageWrap) { |
| | | IPage<AppVersion> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<AppVersion> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | pageWrap.getModel().setDeleted(Constants.ZERO); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getId, pageWrap.getModel().getId()); |
| | | MPJLambdaWrapper<AppVersion> wrapper = new MPJLambdaWrapper<>(); |
| | | wrapper.selectAll(AppVersion.class) |
| | | .select("su.REALNAME as createUserName") |
| | | .leftJoin("system_user su on su.ID = t.CREATE_USER") |
| | | .eq(AppVersion::getDeleted, Constants.ZERO); |
| | | AppVersion model = pageWrap.getModel(); |
| | | Utils.MP.blankToNull(model); |
| | | if (model.getVersionInfo() != null) { |
| | | wrapper.like(AppVersion::getVersionInfo, model.getVersionInfo()); |
| | | } |
| | | if (pageWrap.getModel().getDeleted() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getDeleted, pageWrap.getModel().getDeleted()); |
| | | if (model.getName() != null) { |
| | | wrapper.like(AppVersion::getName, model.getName()); |
| | | } |
| | | if (pageWrap.getModel().getCreateUser() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getCreateUser, pageWrap.getModel().getCreateUser()); |
| | | if (model.getTitle() != null) { |
| | | wrapper.like(AppVersion::getTitle, model.getTitle()); |
| | | } |
| | | if (pageWrap.getModel().getCreateTime() != null) { |
| | | queryWrapper.lambda().ge(AppVersion::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); |
| | | queryWrapper.lambda().le(AppVersion::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); |
| | | if (model.getIsForce() != null) { |
| | | wrapper.eq(AppVersion::getIsForce, model.getIsForce()); |
| | | } |
| | | if (pageWrap.getModel().getUpdateUser() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getUpdateUser, pageWrap.getModel().getUpdateUser()); |
| | | if (model.getType() != null) { |
| | | wrapper.eq(AppVersion::getType, model.getType()); |
| | | } |
| | | if (pageWrap.getModel().getUpdateTime() != null) { |
| | | queryWrapper.lambda().ge(AppVersion::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); |
| | | queryWrapper.lambda().le(AppVersion::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getVersionInfo() != null) { |
| | | queryWrapper.lambda().like(AppVersion::getVersionInfo, pageWrap.getModel().getVersionInfo()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().like(AppVersion::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getTitle() != null) { |
| | | queryWrapper.lambda().like(AppVersion::getTitle, pageWrap.getModel().getTitle()); |
| | | } |
| | | if (pageWrap.getModel().getIsForce() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getIsForce, pageWrap.getModel().getIsForce()); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.lambda().eq(AppVersion::getType, pageWrap.getModel().getType()); |
| | | } |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(appVersionMapper.selectPage(page, queryWrapper)); |
| | | wrapper.orderByDesc(AppVersion::getId); |
| | | return PageData.from(appVersionMapper.selectJoinPage(page, AppVersion.class, wrapper)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Areas getById(Integer id) { |
| | | return areasMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public Areas findById(Integer id) { |
| | | if(ALL_AREA_LIST!=null){ |
| | | for(Areas a : ALL_AREA_LIST){ |
| | |
| | | } |
| | | } |
| | | java.util.Map<Integer, String> relationNameMap = new java.util.HashMap<>(); |
| | | java.util.Map<Integer, String> relationOtherFieldMap = new java.util.HashMap<>(); |
| | | java.util.Map<Integer, String> relationRemarkMap = new java.util.HashMap<>(); |
| | | if (!relationIds.isEmpty()) { |
| | | categoryMapper.selectList(new QueryWrapper<Category>().lambda() |
| | | .in(Category::getId, relationIds) |
| | | .eq(Category::getDeleted, Constants.ZERO)) |
| | | .forEach(c -> relationNameMap.put(c.getId(), c.getName())); |
| | | .forEach(c -> { |
| | | relationNameMap.put(c.getId(), c.getName()); |
| | | relationOtherFieldMap.put(c.getId(), c.getOtherField()); |
| | | relationRemarkMap.put(c.getId(), c.getRemark()); |
| | | }); |
| | | } |
| | | for (Category category:categoryList) { |
| | | if(StringUtils.isNotBlank(category.getIcon())){ |
| | |
| | | } |
| | | if (category.getRelationId() != null) { |
| | | category.setRelationName(relationNameMap.get(category.getRelationId())); |
| | | category.setRelationOtherField(relationOtherFieldMap.get(category.getRelationId())); |
| | | category.setRelationRemark(relationRemarkMap.get(category.getRelationId())); |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.doumee.dao.vo.DriverCancelLimitVO; |
| | | import com.doumee.dao.vo.DriverCenterVO; |
| | | import com.doumee.dao.vo.DriverGrabOrderVO; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.system.SystemUserService; |
| | | import com.doumee.dao.vo.DriverOrderDetailVO; |
| | | import com.doumee.core.utils.aliyun.AliSmsService; |
| | | import com.doumee.service.business.DriverInfoService; |
| | |
| | | |
| | | @Autowired |
| | | private AreasBizImpl areasBiz; |
| | | |
| | | @Autowired |
| | | private SystemUserService systemUserService; |
| | | |
| | | /** |
| | | * åé订åç«å
ä¿¡éç¥ |
| | |
| | | .select(" ( select ifnull(sum(r.OPT_TYPE * r.AMOUNT),0) from revenue r where r.MEMBER_TYPE = 1 and r.MEMBER_ID= t.id and r.VAILD_STATUS = 1 ) as memberAmount ") |
| | | .selectAs(Category::getName,DriverInfo::getCarTypeName) |
| | | .leftJoin(Category.class, Category::getId,DriverInfo::getCarType); |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.orderByDesc(DriverInfo::getId); |
| | | PageData<DriverInfo> pageData = PageData.from(driverInfoMapper.selectPage(page, queryWrapper)); |
| | | for (DriverInfo d : pageData.getRecords()) { |
| | | d.setGender(Constants.getGenderByIdCard(d.getIdcard())); |
| | |
| | | String code = RandomStringUtils.randomNumeric(6); |
| | | // åéçä¿¡ |
| | | String templateParam = "{\"code\":\"" + code + "\"}"; |
| | | AliSmsService.sendSms(telephone, "SMS_491325122", templateParam); |
| | | AliSmsService.sendSms(telephone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam); |
| | | // ä¿åçä¿¡è®°å½ |
| | | Smsrecord smsrecord = new Smsrecord(); |
| | | smsrecord.setDeleted(Constants.ZERO); |
| | |
| | | } |
| | | } |
| | | } |
| | | // æ¥è¯¢å®¡æ¹äººåç§° |
| | | if (driverInfo.getAuditUser() != null) { |
| | | try { |
| | | SystemUser auditUser = systemUserService.findById(driverInfo.getAuditUser()); |
| | | if (auditUser != null) { |
| | | driverInfo.setAuditUserName(auditUser.getRealname()); |
| | | } |
| | | } catch (Exception e) { |
| | | // 审æ¹äººå·²å é¤çå¼å¸¸å¿½ç¥ |
| | | } |
| | | } |
| | | return driverInfo; |
| | | } |
| | | |
| | |
| | | vo.setCarCode(driver.getCarCode()); |
| | | vo.setScore(driver.getScore() != null ? driver.getScore().toPlainString() : "0"); |
| | | vo.setDriverLevel(driver.getDriverLevel()); |
| | | vo.setDriverLevelName(Constants.getDriverLevelName(driver.getDriverLevel())); |
| | | vo.setAuditStatus(driver.getAuditStatus()); |
| | | vo.setAuditRemark(driver.getAuditRemark()); |
| | | vo.setBalance(driver.getBalance() != null ? driver.getBalance() : 0L); |
| | |
| | | vo.setFullImgUrl(imgPrefix + driver.getImgurl()); |
| | | } |
| | | |
| | | // 仿¥é¢è®¡ä½£éï¼revenue表ä¸ä»å¤©çæ¶å
¥è®°å½éé¢ä¹å |
| | | // 仿¥é¢è®¡ä½£éï¼ä»æ¥æ¥åç叿ºä½£é + å¹³å°å¥å±é |
| | | Date now = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(now); |
| | |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | Date todayStart = cal.getTime(); |
| | | |
| | | QueryWrapper<Revenue> revenueWrapper = new QueryWrapper<>(); |
| | | revenueWrapper.lambda() |
| | | .eq(Revenue::getMemberId, memberId) |
| | | .eq(Revenue::getMemberType, Constants.ONE) |
| | | .eq(Revenue::getOptType, Constants.ONE) |
| | | .eq(Revenue::getDeleted, Constants.ZERO) |
| | | .ge(Revenue::getCreateTime, todayStart); |
| | | revenueWrapper.select("IFNULL(SUM(AMOUNT),0) as amount"); |
| | | Revenue sumResult = revenueMapper.selectOne(revenueWrapper); |
| | | vo.setTodayCommission(sumResult != null && sumResult.getAmount() != null ? sumResult.getAmount() : 0L); |
| | | QueryWrapper<Orders> commissionWrapper = new QueryWrapper<>(); |
| | | commissionWrapper.lambda() |
| | | .eq(Orders::getAcceptDriver, driver.getId()) |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .ge(Orders::getAcceptTime, todayStart); |
| | | commissionWrapper.select("IFNULL(SUM(DRIVER_FEE),0) as driverFee", "IFNULL(SUM(PLATFORM_REWARD_AMOUNT),0) as platformRewardAmount"); |
| | | Orders commissionResult = ordersMapper.selectOne(commissionWrapper); |
| | | long driverFee = commissionResult != null && commissionResult.getDriverFee() != null ? commissionResult.getDriverFee() : 0L; |
| | | long rewardAmount = commissionResult != null && commissionResult.getPlatformRewardAmount() != null ? commissionResult.getPlatformRewardAmount() : 0L; |
| | | vo.setTodayCommission(driverFee + rewardAmount); |
| | | |
| | | // 仿¥æ¥åæ°ï¼ä»å¤©å®æçè®¢åæ°ï¼acceptDriver=叿ºä¸»é®ï¼ç¶æ=å·²å®æï¼ |
| | | Long todayOrderCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() |
| | |
| | | .select("c2.other_field as c2OtherField") |
| | | .select("c2.name as goodLevelName") |
| | | // æ¯å¦åå¨ç¹å¤§å°ºå¯¸ |
| | | .select("IF(EXISTS(SELECT 1 FROM orders_detail od JOIN category c3 ON c3.id = od.LUGGAGE_ID AND c3.TYPE = 4 AND c3.OTHER_FIELD = '1' WHERE od.ORDER_ID = t.ID AND od.DELETED = 0), 1, 0) as hasOversized") |
| | | .select("IF(EXISTS(SELECT 1 FROM orders_detail od JOIN category c3 ON c3.id = od.LUGGAGE_ID AND c3.TYPE = 4 AND c3.detail = '1' WHERE od.ORDER_ID = t.ID AND od.DELETED = 0), 1, 0) as hasOversized") |
| | | // JOIN |
| | | .leftJoin("shop_info s1 on s1.id = t.DEPOSIT_SHOP_ID and s1.DELETED = 0") |
| | | .leftJoin("shop_info s2 on s2.id = t.TAKE_SHOP_ID and s2.DELETED = 0") |
| | |
| | | |
| | | // 7. éç¥ä¼åï¼å¸æºå·²æ¢å |
| | | sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_PICKUP_GRABBED, orderId, |
| | | "orderNo", order.getCode(), |
| | | "driverName", driver.getName()); |
| | | |
| | | // éç¥åä»¶é¨åºï¼è®¢åå·²æ¢åå¾
åä»¶ |
| | |
| | | for (int i = 0; i < paramPairs.length - 1; i += 2) { |
| | | templateParam.put(paramPairs[i], paramPairs[i + 1]); |
| | | } |
| | | boolean result = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | String error = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | templateParam.toJSONString()); |
| | | if (result) { |
| | | log.info("çä¿¡åéæå: phone={}, template={}", phone, smsNotify.name()); |
| | | } else { |
| | | log.warn("çä¿¡åé失败: phone={}, template={}", phone, smsNotify.name()); |
| | | } |
| | | // åå¨çä¿¡è®°å½ |
| | | Smsrecord record = new Smsrecord(); |
| | | record.setPhone(phone); |
| | | record.setContent(content); |
| | | record.setType(Constants.ONE); // 1=订åéç¥ |
| | | record.setStatus(result ? Constants.ONE : Constants.ZERO); |
| | | record.setType(Constants.ONE); |
| | | record.setStatus(error == null ? Constants.ONE : Constants.ZERO); |
| | | if (error != null) { |
| | | record.setRemark(error); |
| | | } |
| | | record.setCreateTime(new Date()); |
| | | record.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(record); |
| | |
| | | record.setContent(content); |
| | | record.setType(Constants.ONE); |
| | | record.setStatus(Constants.ZERO); |
| | | record.setRemark(e.getMessage()); |
| | | record.setCreateTime(new Date()); |
| | | record.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(record); |
| | |
| | | queryWrapper.lambda().le(Member::getCreateTime, Utils.Date.getEnd(query.getEndTime())); |
| | | } |
| | | } |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.lambda().orderByDesc(Member::getId); |
| | | IPage<Member> memberPage = memberMapper.selectPage(page, queryWrapper); |
| | | IPage<MemberListVO> voPage = memberPage.convert(this::toListVO); |
| | | return PageData.from(voPage); |
| | |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDepositShopName()), "s1.name", pageWrap.getModel().getDepositShopName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTakeShopName()), "s2.name", pageWrap.getModel().getTakeShopName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo()); |
| | | queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime())); |
| | | queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime())); |
| | | queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateStartTime()); |
| | | queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateEndTime()); |
| | | queryWrapper.eq(pageWrap.getModel().getDepositShopId() != null, Orders::getDepositShopId, pageWrap.getModel().getDepositShopId()); |
| | | queryWrapper.eq(pageWrap.getModel().getType() != null, Orders::getType, pageWrap.getModel().getType()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus() != null, Orders::getStatus, pageWrap.getModel().getStatus()); |
| | |
| | | queryWrapper.and(pageWrap.getModel().getDriverKeyword() != null, i->i.like(DriverInfo::getName, pageWrap.getModel().getDriverKeyword()) |
| | | .or().like(DriverInfo::getTelephone, pageWrap.getModel().getDriverKeyword())); |
| | | queryWrapper.eq(pageWrap.getModel().getSettlementStatus() != null, Orders::getSettlementStatus, pageWrap.getModel().getSettlementStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getAcceptDriver() != null, Orders::getAcceptDriver, pageWrap.getModel().getAcceptDriver()); |
| | | queryWrapper.and(pageWrap.getModel().getShopId() != null, i -> i.eq(Orders::getDepositShopId, pageWrap.getModel().getShopId()) |
| | | .or().eq(Orders::getTakeShopId, pageWrap.getModel().getShopId())); |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDepositShopName()), "s1.name", pageWrap.getModel().getDepositShopName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTakeShopName()), "s2.name", pageWrap.getModel().getTakeShopName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo()); |
| | | queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime())); |
| | | queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime())); |
| | | queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateStartTime()); |
| | | queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateEndTime()); |
| | | queryWrapper.eq(pageWrap.getModel().getDepositShopId() != null, Orders::getDepositShopId, pageWrap.getModel().getDepositShopId()); |
| | | queryWrapper.eq(pageWrap.getModel().getType() != null, Orders::getType, pageWrap.getModel().getType()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus() != null, Orders::getStatus, pageWrap.getModel().getStatus()); |
| | |
| | | queryWrapper.and(pageWrap.getModel().getDriverKeyword() != null, i->i.like(DriverInfo::getName, pageWrap.getModel().getDriverKeyword()) |
| | | .or().like(DriverInfo::getTelephone, pageWrap.getModel().getDriverKeyword())); |
| | | queryWrapper.eq(pageWrap.getModel().getSettlementStatus() != null, Orders::getSettlementStatus, pageWrap.getModel().getSettlementStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getAcceptDriver() != null, Orders::getAcceptDriver, pageWrap.getModel().getAcceptDriver()); |
| | | queryWrapper.and(pageWrap.getModel().getShopId() != null, i -> i.eq(Orders::getDepositShopId, pageWrap.getModel().getShopId()) |
| | | .or().eq(Orders::getTakeShopId, pageWrap.getModel().getShopId())); |
| | | |
| | | queryWrapper.select( |
| | | "IFNULL(SUM(t.total_amount), 0) as total_amount_sum", |
| | |
| | | insuranceFeeFen = insuranceFeeYuan.multiply(new BigDecimal(100)).longValue(); |
| | | } |
| | | |
| | | // 5. å æ¥è´¹ç¨ï¼ç©åä»·æ ¼ Ã å æ¥ç³»æ°(åå
¸ URGENT_COEFFICIENT) |
| | | // 5. å æ¥è´¹ç¨ï¼ç©åä»·æ ¼ à (å æ¥ç³»æ°-1)ï¼å¦150%表示å¢å 50% |
| | | long urgentFeeFen = 0L; |
| | | String urgentRateStr = systemDictDataBiz.queryByCode( |
| | | Constants.OPERATION_CONFIG, Constants.OP_URGENT_COEFFICIENT).getCode(); |
| | | BigDecimal urgentRate = new BigDecimal(urgentRateStr); |
| | | urgentFeeFen = new BigDecimal(itemPriceTotal).multiply(urgentRate) |
| | | BigDecimal urgentIncreaseRate = urgentRate.subtract(BigDecimal.ONE); |
| | | urgentFeeFen = new BigDecimal(itemPriceTotal).multiply(urgentIncreaseRate) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue(); |
| | | |
| | | // 6. æ»ä»·æ ¼ = ç©åä»·æ ¼ + ä¿ä»·è´¹ç¨ + å æ¥è´¹ç¨ï¼å æ¥æ¶æå
å«å æ¥è´¹ï¼ |
| | | long totalPrice = itemPriceTotal + insuranceFeeFen; |
| | | if (Boolean.TRUE.equals(dto.getUrgent())) { |
| | | totalPrice += urgentFeeFen; |
| | | // å æ¥æ¶æ´æ°ç©åæç»åä»·åå°è®¡ |
| | | for (ItemPriceVO vo : itemList) { |
| | | long adjustedUnitPrice = new BigDecimal(vo.getUnitPrice()).multiply(urgentRate) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue(); |
| | | vo.setUnitPrice(adjustedUnitPrice); |
| | | vo.setSubtotal(adjustedUnitPrice * vo.getQuantity()); |
| | | } |
| | | } |
| | | |
| | | PriceCalculateVO result = new PriceCalculateVO(); |
| | |
| | | orders.setEstimatedAmount(priceResult.getTotalPrice()); |
| | | orders.setTotalAmount(priceResult.getTotalPrice()); |
| | | orders.setUrgentAmount(priceResult.getUrgentFee()); |
| | | // åå¨å æ¥ç³»æ° |
| | | if (Constants.ONE.equals(dto.getType()) && Constants.ONE.equals(dto.getIsUrgent())) { |
| | | String urgentRateStr = systemDictDataBiz.queryByCode( |
| | | Constants.OPERATION_CONFIG, Constants.OP_URGENT_COEFFICIENT).getCode(); |
| | | orders.setUrgentRata(new BigDecimal(urgentRateStr)); |
| | | } |
| | | if (dto.getDeclaredAmount() != null && dto.getDeclaredAmount().compareTo(BigDecimal.ZERO) > 0) { |
| | | orders.setDeclaredAmount(dto.getDeclaredAmount().multiply(new BigDecimal(100)).longValue()); |
| | | } else { |
| | |
| | | orderLogService.create(createLog); |
| | | |
| | | // ========== 7. å建订åæç» ========== |
| | | // å¼å°å¯åæéè¾¾æ¶ï¼æå æ¥æ¯ä¾è®¡ç®æç»è¡åä»· |
| | | BigDecimal urgentIncreaseRate = null; |
| | | if (Constants.ONE.equals(dto.getType()) && Constants.ONE.equals(dto.getIsUrgent())) { |
| | | String urgentRateStr = systemDictDataBiz.queryByCode( |
| | | Constants.OPERATION_CONFIG, Constants.OP_URGENT_COEFFICIENT).getCode(); |
| | | urgentIncreaseRate = new BigDecimal(urgentRateStr).subtract(BigDecimal.ONE); |
| | | } |
| | | for (ItemPriceVO itemVO : priceResult.getItemList()) { |
| | | OrdersDetail detail = new OrdersDetail(); |
| | | detail.setOrderId(orderId); |
| | |
| | | detail.setLuggageName(itemVO.getCategoryName()); |
| | | detail.setLuggageDetail(itemVO.getDetail()); |
| | | detail.setNum(itemVO.getQuantity()); |
| | | detail.setUnitPrice(itemVO.getUnitPrice()); |
| | | long detailUnitPrice = itemVO.getUnitPrice(); |
| | | if (urgentIncreaseRate != null) { |
| | | detailUnitPrice = new BigDecimal(detailUnitPrice) |
| | | .multiply(BigDecimal.ONE.add(urgentIncreaseRate)) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue(); |
| | | } |
| | | detail.setUnitPrice(detailUnitPrice); |
| | | detail.setStartDistance(itemVO.getStartDistance()); |
| | | detail.setStartPrice(itemVO.getStartPrice()); |
| | | if (urgentIncreaseRate != null && itemVO.getStartPrice() != null) { |
| | | detail.setStartPrice(new BigDecimal(itemVO.getStartPrice()) |
| | | .multiply(BigDecimal.ONE.add(urgentIncreaseRate)) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue()); |
| | | } else { |
| | | detail.setStartPrice(itemVO.getStartPrice()); |
| | | } |
| | | detail.setExtraDistance(itemVO.getExtraDistance()); |
| | | detail.setExtraPrice(itemVO.getExtraPrice()); |
| | | if (urgentIncreaseRate != null && itemVO.getExtraPrice() != null) { |
| | | detail.setExtraPrice(new BigDecimal(itemVO.getExtraPrice()) |
| | | .multiply(BigDecimal.ONE.add(urgentIncreaseRate)) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue()); |
| | | } else { |
| | | detail.setExtraPrice(itemVO.getExtraPrice()); |
| | | } |
| | | detail.setLocallyPrice(itemVO.getLocallyPrice()); |
| | | detail.setDeleted(Constants.ZERO); |
| | | detail.setCreateTime(now); |
| | |
| | | vo.setMemberVerifyCode(order.getMemberVerifyCode()); |
| | | } |
| | | |
| | | // å¼å°å¯åç»çº¬åº¦ï¼å°±å°å¯åä¸è¿åï¼ |
| | | if (Constants.ONE.equals(order.getType())) { |
| | | // status=3(å·²æ¥å)ï¼è¿ååä»¶é¨åºç»çº¬åº¦ + 叿ºç»çº¬åº¦ |
| | | if (Constants.equalsInteger(status, Constants.OrderStatus.accepted.getStatus())) { |
| | | ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId()); |
| | | if (depositShop != null) { |
| | | vo.setDepositShopLng(depositShop.getLongitude()); |
| | | vo.setDepositShopLat(depositShop.getLatitude()); |
| | | } |
| | | if (order.getAcceptDriver() != null) { |
| | | DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver()); |
| | | if (driver != null) { |
| | | vo.setDriverLng(driver.getLongitude()); |
| | | vo.setDriverLat(driver.getLatitude()); |
| | | } |
| | | } |
| | | } |
| | | // status=4(é
éä¸)ï¼è¿ååä»¶ç¹ç»çº¬åº¦ + 叿ºç»çº¬åº¦ |
| | | if (Constants.equalsInteger(status, Constants.OrderStatus.delivering.getStatus())) { |
| | | // åä»¶ç¹ç»çº¬åº¦ï¼ä¼å
åä»¶é¨åºï¼å¦å订åä¸çåä»¶åæ ï¼ |
| | | if (order.getTakeShopId() != null) { |
| | | ShopInfo takeShop = shopInfoMapper.selectById(order.getTakeShopId()); |
| | | if (takeShop != null) { |
| | | vo.setTakeLng(takeShop.getLongitude()); |
| | | vo.setTakeLat(takeShop.getLatitude()); |
| | | } |
| | | } else if (order.getTakeLgt() != null && order.getTakeLat() != null) { |
| | | vo.setTakeLng(order.getTakeLgt().doubleValue()); |
| | | vo.setTakeLat(order.getTakeLat().doubleValue()); |
| | | } |
| | | if (order.getAcceptDriver() != null) { |
| | | DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver()); |
| | | if (driver != null) { |
| | | vo.setDriverLng(driver.getLongitude()); |
| | | vo.setDriverLat(driver.getLatitude()); |
| | | } |
| | | } |
| | | } |
| | | vo.setDepositShopLng(order.getDepositLgt().doubleValue()); |
| | | vo.setDepositShopLat(order.getDepositLat().doubleValue()); |
| | | // åä»¶ç¹ç»çº¬åº¦ |
| | | vo.setTakeLng(order.getTakeLgt().doubleValue()); |
| | | vo.setTakeLat(order.getTakeLat().doubleValue()); |
| | | //叿ºç»çº¬åº¦ |
| | | DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver()); |
| | | if (driver != null) { |
| | | vo.setDriverLng(driver.getLongitude()); |
| | | vo.setDriverLat(driver.getLatitude()); |
| | | } |
| | | |
| | | // è¯ä»·ä¿¡æ¯ |
| | | vo.setCommentStatus(order.getCommentStatus()); |
| | | if (Constants.equalsInteger(order.getCommentStatus(), Constants.ONE)) { |
| | |
| | | public PayResponse payShopDeposit(Integer memberId) { |
| | | // 1. æ¥è¯¢é¨åºä¿¡æ¯ |
| | | ShopInfo shopInfo = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getDeleted,Constants.ZERO) |
| | | .eq(ShopInfo::getRegionMemberId,memberId)); |
| | | if (shopInfo == null) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "é¨åºä¸åå¨"); |
| | |
| | | sendSmsNotify(shopInfo.getTelephone(), |
| | | Constants.SmsNotify.SHOP_AUTH_SUCCESS, |
| | | "storeName", shopInfo.getName(), |
| | | "phone", shopInfo.getTelephone() != null ? shopInfo.getTelephone() : "", |
| | | "password", rawPassword); |
| | | |
| | | // 6. æ¼éæ¯ä»å®æåï¼è¥å叿ªå¼éåèªå¨å¼é |
| | | if (shopInfo.getAreaId() != null) { |
| | | Areas shopArea = areasBiz.resolveArea(shopInfo.getAreaId()); |
| | | Areas shopArea = areasService.getById(shopInfo.getAreaId()); |
| | | if (shopArea != null && shopArea.getParentId() != null) { |
| | | Areas cityArea = areasBiz.resolveArea(shopArea.getParentId()); |
| | | Areas cityArea = areasService.getById(shopArea.getParentId()); |
| | | if (cityArea != null && !Constants.equalsInteger(cityArea.getStatus(), Constants.ONE)) { |
| | | cityArea.setStatus(Constants.ONE); |
| | | cityArea.setEditDate(now); |
| | |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .eq(Orders::getStatus, Constants.OrderStatus.finished.getStatus()) |
| | | .eq(Orders::getSettlementStatus, Constants.ZERO) |
| | | .le(Orders::getFinishTime, deadline)); |
| | | .le(Orders::getFinishTime, deadline) |
| | | ); |
| | | if (ordersList == null || ordersList.isEmpty()) { |
| | | return; |
| | | } |
| | |
| | | } else if (Constants.equalsInteger(revenue.getMemberType(), Constants.TWO)) { |
| | | // é¨åºï¼éè¿ memberId æ¥ ShopInfo(regionMemberId)ï¼æ´æ° balance / totalBalance |
| | | ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getRegionMemberId, revenue.getMemberId()) |
| | | .eq(ShopInfo::getId, revenue.getMemberId()) |
| | | .eq(ShopInfo::getDeleted, Constants.ZERO) |
| | | .last("limit 1")); |
| | | if (shop != null) { |
| | |
| | | // åä»¶é¨åºæ¶ç |
| | | if (depositShopFee > 0 && order.getDepositShopId() != null) { |
| | | ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId()); |
| | | if (depositShop != null && depositShop.getRegionMemberId() != null) { |
| | | revenueMapper.insert(buildRevenue(depositShop.getRegionMemberId(), Constants.TWO, |
| | | if (depositShop != null && depositShop.getId() != null) { |
| | | revenueMapper.insert(buildRevenue(depositShop.getId(), Constants.TWO, |
| | | depositShopFee, orderId, order.getCode())); |
| | | } |
| | | } |
| | |
| | | // åä»¶é¨åºæ¶çï¼å¼å°å¯å䏿åä»¶é¨åºï¼ |
| | | if (takeShopFee > 0 && order.getTakeShopId() != null) { |
| | | ShopInfo takeShop = shopInfoMapper.selectById(order.getTakeShopId()); |
| | | if (takeShop != null && takeShop.getRegionMemberId() != null) { |
| | | revenueMapper.insert(buildRevenue(takeShop.getRegionMemberId(), Constants.TWO, |
| | | if (takeShop != null && takeShop.getId() != null) { |
| | | revenueMapper.insert(buildRevenue(takeShop.getId(), Constants.TWO, |
| | | takeShopFee, orderId, order.getCode())); |
| | | } |
| | | } |
| | |
| | | QueryWrapper<Orders> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("MEMBER_ID", memberId) |
| | | .in("STATUS", 0, 1, 2, 3, 4, 5) |
| | | .orderByDesc("CREATE_TIME") |
| | | .orderByAsc("CREATE_TIME") |
| | | .last("LIMIT 1"); |
| | | Orders order = ordersMapper.selectOne(wrapper); |
| | | if (order == null) { |
| | |
| | | for (int i = 0; i < paramPairs.length - 1; i += 2) { |
| | | templateParam.put(paramPairs[i], paramPairs[i + 1]); |
| | | } |
| | | boolean result = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | String error = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | templateParam.toJSONString()); |
| | | if (result) { |
| | | log.info("çä¿¡åéæå: phone={}, template={}", phone, smsNotify.name()); |
| | | } else { |
| | | log.warn("çä¿¡åé失败: phone={}, template={}", phone, smsNotify.name()); |
| | | } |
| | | // åå¨çä¿¡è®°å½ |
| | | Smsrecord record = new Smsrecord(); |
| | | record.setPhone(phone); |
| | | record.setContent(content); |
| | | record.setType(Constants.ONE); // 1=订åéç¥ |
| | | record.setStatus(result ? Constants.ONE : Constants.ZERO); // 1=å·²åé, 0=åé失败 |
| | | record.setType(Constants.ONE); |
| | | record.setStatus(error == null ? Constants.ONE : Constants.ZERO); |
| | | if (error != null) { |
| | | record.setRemark(error); |
| | | } |
| | | record.setCreateTime(new Date()); |
| | | record.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(record); |
| | | } catch (Exception e) { |
| | | log.error("çä¿¡åéå¼å¸¸: phone={}, template={}, error={}", phone, smsNotify.name(), e.getMessage()); |
| | | // å¼å¸¸ä¹è®°å½ |
| | | try { |
| | | Smsrecord record = new Smsrecord(); |
| | | record.setPhone(phone); |
| | | record.setContent(content); |
| | | record.setType(Constants.ONE); |
| | | record.setStatus(Constants.ZERO); // åé失败 |
| | | record.setStatus(Constants.ZERO); |
| | | record.setRemark(e.getMessage()); |
| | | record.setCreateTime(new Date()); |
| | | record.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(record); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.xpyun.XpyunPrintService; |
| | | import com.doumee.core.utils.xpyun.XpyunResponse; |
| | | import com.doumee.dao.business.PrinterInfoMapper; |
| | | import com.doumee.dao.business.model.PrinterInfo; |
| | | import com.doumee.service.business.PrinterInfoService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * æå°æºä¿¡æ¯Serviceå®ç° |
| | | * @author rk |
| | | * @date 2026/04/28 |
| | | */ |
| | | @Service |
| | | public class PrinterInfoServiceImpl implements PrinterInfoService { |
| | | |
| | | @Autowired |
| | | private PrinterInfoMapper printerInfoMapper; |
| | | |
| | | @Autowired |
| | | private XpyunPrintService xpyunPrintService; |
| | | |
| | | @Override |
| | | public Integer create(PrinterInfo printerInfo) { |
| | | if (StringUtils.isBlank(printerInfo.getSn())) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "æå°æºSNä¸è½ä¸ºç©º"); |
| | | } |
| | | if (StringUtils.isBlank(printerInfo.getName())) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "æå°æºåç§°ä¸è½ä¸ºç©º"); |
| | | } |
| | | XpyunResponse response = xpyunPrintService.addPrinter(printerInfo.getSn(), printerInfo.getName()); |
| | | if (response.getCode() != 0) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "è¯ç¨äºæ·»å æå°æºå¤±è´¥ï¼" + response.getMsg()); |
| | | } |
| | | printerInfoMapper.insert(printerInfo); |
| | | return printerInfo.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | printerInfoMapper.deleteById(id); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(PrinterInfo printerInfo) { |
| | | printerInfoMapper.delete(new QueryWrapper<>(printerInfo)); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | printerInfoMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(PrinterInfo printerInfo) { |
| | | printerInfoMapper.updateById(printerInfo); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<PrinterInfo> printerInfos) { |
| | | if (CollectionUtils.isEmpty(printerInfos)) { |
| | | return; |
| | | } |
| | | for (PrinterInfo printerInfo : printerInfos) { |
| | | this.updateById(printerInfo); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public PrinterInfo findById(Integer id) { |
| | | return printerInfoMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public PrinterInfo findOne(PrinterInfo printerInfo) { |
| | | return printerInfoMapper.selectOne(new QueryWrapper<>(printerInfo)); |
| | | } |
| | | |
| | | @Override |
| | | public List<PrinterInfo> findList(PrinterInfo printerInfo) { |
| | | return printerInfoMapper.selectList(new QueryWrapper<>(printerInfo)); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<PrinterInfo> findPage(PageWrap<PrinterInfo> pageWrap) { |
| | | IPage<PrinterInfo> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<PrinterInfo> wrapper = new QueryWrapper<>(pageWrap.getModel()); |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | wrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | wrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(printerInfoMapper.selectPage(page, wrapper)); |
| | | } |
| | | |
| | | @Override |
| | | public long count(PrinterInfo printerInfo) { |
| | | return printerInfoMapper.selectCount(new QueryWrapper<>(printerInfo)); |
| | | } |
| | | } |
| | |
| | | if (pageWrap.getModel().getOpenid() != null) { |
| | | queryWrapper.lambda().like(ShopInfo::getOpenid, pageWrap.getModel().getOpenid()); |
| | | } |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.lambda().orderByDesc(ShopInfo::getId); |
| | | return PageData.from(shopInfoMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | |
| | | // åä»¶é¨åº |
| | | List<Orders> takeSalesOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda() |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .eq(Orders::getType,Constants.ONE) |
| | | .ge(Orders::getCreateTime, startTime) |
| | | .lt(Orders::getCreateTime, endTime) |
| | | .eq(Orders::getTakeShopId, shopId)); |
| | |
| | | vo.setSettlementProfit(depositFee + takeFee); |
| | | |
| | | // 3. å¨åºè®¢åæ° |
| | | // 3.1 åä»¶é¨åº=æ¬é¨åºï¼status in (2å·²å¯å, 5å¾
åä»¶) |
| | | Long depositStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() |
| | | // 3.1 å°±å°è®¢åï¼åä»¶é¨åº=æ¬é¨åºï¼type=0ï¼status in (2å·²å¯å, 5å¾
åä»¶) |
| | | Long localStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .eq(Orders::getDepositShopId, shopId) |
| | | .eq(Orders::getType, Constants.ZERO) |
| | | .in(Orders::getStatus, |
| | | Constants.OrderStatus.deposited.getStatus(), |
| | | Constants.OrderStatus.arrived.getStatus())); |
| | | // 3.2 åä»¶é¨åº=æ¬é¨åºï¼status = 5å¾
åä»¶ |
| | | // 3.2 å¼å°è®¢åï¼åä»¶é¨åº=æ¬é¨åºï¼type=1ï¼status=2å·²å¯å |
| | | Long remoteStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .eq(Orders::getDepositShopId, shopId) |
| | | .eq(Orders::getType, Constants.ONE) |
| | | .eq(Orders::getStatus, Constants.OrderStatus.deposited.getStatus())); |
| | | // 3.3 åä»¶é¨åº=æ¬é¨åºï¼å¼å°è®¢åï¼status = 5å¾
åä»¶ |
| | | Long takeStorageCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() |
| | | .eq(Orders::getDeleted, Constants.ZERO) |
| | | .eq(Orders::getType,Constants.ONE) |
| | | .eq(Orders::getTakeShopId, shopId) |
| | | .eq(Orders::getStatus, Constants.OrderStatus.arrived.getStatus())); |
| | | vo.setStorageCount(depositStorageCount.intValue() + takeStorageCount.intValue()); |
| | | vo.setStorageCount(localStorageCount.intValue() + remoteStorageCount.intValue() + takeStorageCount.intValue()); |
| | | |
| | | return vo; |
| | | } |
| | |
| | | if (shopInfo.getCompanyType() == null) { |
| | | return; |
| | | } |
| | | Areas areas = areasService.findById(shopInfo.getAreaId()); |
| | | PricingRule pricingRule = pricingRuleMapper.selectOne(new QueryWrapper<PricingRule>().lambda() |
| | | .eq(PricingRule::getDeleted, Constants.ZERO) |
| | | .eq(PricingRule::getType, Constants.THREE) |
| | | .eq(PricingRule::getFieldA, String.valueOf(shopInfo.getCompanyType())) |
| | | .eq(PricingRule::getFieldA, String.valueOf(Constants.equalsInteger(shopInfo.getCompanyType(),Constants.ZERO)?Constants.ONE:Constants.ZERO)) |
| | | .eq(PricingRule::getCityId, areas.getParentId()) |
| | | .last("limit 1")); |
| | | if (pricingRule != null && StringUtils.isNotBlank(pricingRule.getFieldB())) { |
| | | shopInfo.setDepositAmount(Long.parseLong(pricingRule.getFieldB())); |
| | |
| | | for (int i = 0; i < paramPairs.length - 1; i += 2) { |
| | | templateParam.put(paramPairs[i], paramPairs[i + 1]); |
| | | } |
| | | boolean result = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | String error = AliSmsService.sendSms(phone, smsNotify.getTemplateCode(), |
| | | templateParam.toJSONString()); |
| | | if (result) { |
| | | log.info("çä¿¡åéæå: phone={}, template={}", phone, smsNotify.name()); |
| | | } else { |
| | | log.warn("çä¿¡åé失败: phone={}, template={}", phone, smsNotify.name()); |
| | | } |
| | | // åå¨çä¿¡è®°å½ |
| | | Smsrecord smsRecord = new Smsrecord(); |
| | | smsRecord.setPhone(phone); |
| | | smsRecord.setContent(content); |
| | | smsRecord.setType(Constants.ONE); |
| | | smsRecord.setStatus(result ? Constants.ONE : Constants.ZERO); |
| | | smsRecord.setStatus(error == null ? Constants.ONE : Constants.ZERO); |
| | | if (error != null) { |
| | | smsRecord.setRemark(error); |
| | | } |
| | | smsRecord.setCreateTime(new Date()); |
| | | smsRecord.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(smsRecord); |
| | |
| | | } |
| | | } |
| | | |
| | | @Autowired |
| | | private com.doumee.core.utils.xpyun.XpyunPrintService xpyunPrintService; |
| | | |
| | | @Override |
| | | public void bindPrinter(com.doumee.dao.dto.PrinterBindDTO dto) { |
| | | ShopInfo shop = shopInfoMapper.selectById(dto.getShopId()); |
| | | if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | // è°ç¨è¯ç¨äºæ³¨åæå°æº |
| | | com.doumee.core.utils.xpyun.XpyunResponse resp = xpyunPrintService.addPrinter( |
| | | dto.getPrinterSn(), shop.getName()); |
| | | if (resp.getCode() != null && resp.getCode() == 0) { |
| | | log.info("è¯ç¨äºæå°æºæ³¨åæå: sn={}", dto.getPrinterSn()); |
| | | } else { |
| | | log.warn("è¯ç¨äºæå°æºæ³¨åè¿åé0: sn={}, code={}, msg={}", |
| | | dto.getPrinterSn(), resp.getCode(), resp.getMsg()); |
| | | } |
| | | // æ 论äºç«¯æ¯å¦æåï¼é½ç»å®å°é¨åºï¼å¯åç»éè¯äºç«¯æ³¨åï¼ |
| | | ShopInfo update = new ShopInfo(); |
| | | update.setId(dto.getShopId()); |
| | | update.setPrinterSn(dto.getPrinterSn()); |
| | | shopInfoMapper.updateById(update); |
| | | } |
| | | |
| | | @Override |
| | | public void unbindPrinter(Integer shopId) { |
| | | ShopInfo shop = shopInfoMapper.selectById(shopId); |
| | | if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if (StringUtils.isNotBlank(shop.getPrinterSn())) { |
| | | xpyunPrintService.deletePrinter(shop.getPrinterSn()); |
| | | } |
| | | ShopInfo update = new ShopInfo(); |
| | | update.setId(shopId); |
| | | update.setPrinterSn(null); |
| | | shopInfoMapper.updateById(update); |
| | | } |
| | | |
| | | @Override |
| | | public Object queryPrinterStatus(Integer shopId) { |
| | | ShopInfo shop = shopInfoMapper.selectById(shopId); |
| | | if (shop == null || Constants.equalsInteger(shop.getDeleted(), Constants.ONE)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if (StringUtils.isBlank(shop.getPrinterSn())) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "该é¨åºæªç»å®æå°æº"); |
| | | } |
| | | return xpyunPrintService.queryPrinterStatus(shop.getPrinterSn()); |
| | | } |
| | | |
| | | } |
| | |
| | | String digits = Strings.randomNumeric(4); |
| | | //åééªè¯ç |
| | | String templateParam = "{\"code\":\"" + digits + "\"}"; |
| | | Boolean result = AliSmsService.sendSms(phone, "SMS_491325122", templateParam); |
| | | if (!result) { |
| | | String error = AliSmsService.sendSms(phone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam); |
| | | if (error != null) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "çä¿¡åé失败ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | //åå¨çä¿¡éªè¯ç |
| | |
| | | if (StringUtils.isNotBlank(pageWrap.getModel().getMemberName())) { |
| | | queryWrapper.like(DriverInfo::getName, pageWrap.getModel().getMemberName()); |
| | | } |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | |
| | | queryWrapper.orderByDesc(WithdrawalOrders::getId); |
| | | return PageData.from(withdrawalOrdersMapper.selectJoinPage(page, WithdrawalOrders.class, queryWrapper)); |
| | | } |
| | | |
| | |
| | | } |
| | | } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) { |
| | | ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getRegionMemberId, order.getMemberId()) |
| | | .eq(ShopInfo::getId, order.getMemberId()) |
| | | .eq(ShopInfo::getDeleted, Constants.ZERO) |
| | | .last("limit 1")); |
| | | if (shop != null) { |
| | |
| | | } |
| | | } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) { |
| | | ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getRegionMemberId, order.getMemberId()) |
| | | .eq(ShopInfo::getId, order.getMemberId()) |
| | | .eq(ShopInfo::getDeleted, Constants.ZERO) |
| | | .last("limit 1")); |
| | | if (shop != null) { |
| | |
| | | } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) { |
| | | // é¨åºï¼éè¿ memberId æ¥ ShopInfoï¼éå balance |
| | | ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getRegionMemberId, order.getMemberId()) |
| | | .eq(ShopInfo::getId, order.getMemberId()) |
| | | .eq(ShopInfo::getDeleted, Constants.ZERO) |
| | | .last("limit 1")); |
| | | if (shop != null) { |
| | |
| | | order.setType(Constants.ZERO); |
| | | order.setOutBillNo(billNo); |
| | | order.setAliAccount(dto.getAliAccount()); |
| | | order.setAliName(driver.getAliName()); |
| | | order.setAliName(dto.getAliName()); |
| | | order.setDeleted(Constants.ZERO); |
| | | order.setCreateTime(now); |
| | | order.setUpdateTime(now); |
| | | order.setCreateUser(memberId); |
| | | withdrawalOrdersMapper.insert(order); |
| | | // æ¯ä»å®è´¦æ·æå§åæååæ¶æ´æ°å¸æºä¿¡æ¯ |
| | | boolean aliChanged = !dto.getAliAccount().equals(driver.getAliAccount()) |
| | | || (dto.getAliName() != null && !dto.getAliName().equals(driver.getAliName())); |
| | | if (aliChanged) { |
| | | DriverInfo update = new DriverInfo(); |
| | | update.setId(driver.getId()); |
| | | update.setAliAccount(dto.getAliAccount()); |
| | | update.setAliName(dto.getAliName()); |
| | | driverInfoMapper.updateById(update); |
| | | } |
| | | // å建æ¯åº Revenue è®°å½ |
| | | Revenue revenue = new Revenue(); |
| | | revenue.setMemberId(memberId); |
| | |
| | | .eq(ShopInfo::getId, shopId)); |
| | | // å建æç°è®°å½ |
| | | WithdrawalOrders order = new WithdrawalOrders(); |
| | | order.setMemberId(shop.getRegionMemberId()); |
| | | order.setMemberId(shop.getId()); |
| | | order.setMemberType(Constants.TWO); |
| | | order.setAmount(amountFen); |
| | | order.setStatus(Constants.ZERO); |
| | | order.setType(Constants.ZERO); |
| | | order.setOutBillNo(billNo); |
| | | order.setAliAccount(dto.getAliAccount()); |
| | | order.setAliName(shop.getAliName()); |
| | | order.setAliName(dto.getAliName()); |
| | | order.setDeleted(Constants.ZERO); |
| | | order.setCreateTime(now); |
| | | order.setUpdateTime(now); |
| | | order.setCreateUser(shop.getRegionMemberId()); |
| | | withdrawalOrdersMapper.insert(order); |
| | | // æ¯ä»å®è´¦æ·æå§åæååæ¶æ´æ°é¨åºä¿¡æ¯ |
| | | boolean aliChanged = !dto.getAliAccount().equals(shop.getAliAccount()) |
| | | || (dto.getAliName() != null && !dto.getAliName().equals(shop.getAliName())); |
| | | if (aliChanged) { |
| | | ShopInfo update = new ShopInfo(); |
| | | update.setId(shopId); |
| | | update.setAliAccount(dto.getAliAccount()); |
| | | update.setAliName(dto.getAliName()); |
| | | shopInfoMapper.updateById(update); |
| | | } |
| | | // å建æ¯åº Revenue è®°å½ |
| | | Revenue revenue = new Revenue(); |
| | | revenue.setMemberId(shop.getRegionMemberId()); |
| | | revenue.setMemberId(shop.getId()); |
| | | revenue.setMemberType(Constants.TWO); |
| | | revenue.setType(Constants.ONE); // 1=æç°æ¯åº |
| | | revenue.setOptType(-Constants.ONE); // -1=æ¯åº |
| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.annotation.LoginDriverRequired; |
| | | import com.doumee.core.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.LoginShopRequired; |
| | |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.dao.business.model.Banner; |
| | | import com.doumee.dao.business.model.Category; |
| | | import com.doumee.dao.business.model.AppVersion; |
| | | import com.doumee.dao.business.model.Notice; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.dao.dto.AreasDto; |
| | |
| | | @Autowired |
| | | private NoticeService noticeService; |
| | | |
| | | @Autowired |
| | | private AppVersionService appVersionService; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @ApiOperation("å
¨é¨åºåæ å½¢æ¥è¯¢") |
| | | @PostMapping("/treeList") |
| | | public ApiResponse<List<Areas>> treeList (@RequestBody AreasDto pageWrap) { |
| | |
| | | }) |
| | | public ApiResponse<List<Banner>> getBannerList(@RequestParam Integer position) { |
| | | return ApiResponse.success("æä½æå", bannerService.findListByPosition(position)); |
| | | } |
| | | |
| | | @ApiOperation(value = "è·åè½®æå¾è¯¦æ
", notes = "æ ¹æ®IDè¿åè½®æå¾è¯¦æ
ï¼å«å¾çå
¨è·¯å¾") |
| | | @GetMapping("/getBannerDetail") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "è½®æå¾ä¸»é®", required = true) |
| | | }) |
| | | public ApiResponse<Banner> getBannerDetail(@RequestParam Integer id) { |
| | | return ApiResponse.success("æ¥è¯¢æå", bannerService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation(value = "è·ååå¸å·²å¼éç©å尺寸", notes = "æ ¹æ®åå¸ä¸»é®æ¥è¯¢å·²å¼éçç©å尺寸(category type=4)") |
| | |
| | | } |
| | | pageWrap.getModel().setUserId(this.getMemberId()); |
| | | pageWrap.getModel().setUserType(Constants.ZERO); |
| | | return ApiResponse.success("æ¥è¯¢æå", noticeService.findPage(pageWrap)); |
| | | PageData<Notice> pageData = noticeService.findPage(pageWrap); |
| | | noticeService.readAllNotice(0, this.getMemberId()); |
| | | return ApiResponse.success("æ¥è¯¢æå", pageData); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | pageWrap.getModel().setUserId(this.getShopId()); |
| | | pageWrap.getModel().setUserType(Constants.TWO); |
| | | return ApiResponse.success("æ¥è¯¢æå", noticeService.findPage(pageWrap)); |
| | | PageData<Notice> pageData = noticeService.findPage(pageWrap); |
| | | noticeService.readAllNotice(Constants.TWO, this.getShopId()); |
| | | return ApiResponse.success("æ¥è¯¢æå", pageData); |
| | | } |
| | | |
| | | @LoginShopRequired |
| | |
| | | } |
| | | pageWrap.getModel().setUserId(this.getDriverId()); |
| | | pageWrap.getModel().setUserType(Constants.ONE); |
| | | return ApiResponse.success("æ¥è¯¢æå", noticeService.findPage(pageWrap)); |
| | | PageData<Notice> pageData = noticeService.findPage(pageWrap); |
| | | noticeService.readAllNotice(Constants.ONE, this.getDriverId()); |
| | | return ApiResponse.success("æ¥è¯¢æå", pageData); |
| | | } |
| | | |
| | | @LoginDriverRequired |
| | |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation(value = "è·åææ°APPçæ¬") |
| | | @GetMapping("/getApiVersion") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "å¹³å°ç±»å 0=Android 1=IOS", required = true) |
| | | }) |
| | | public ApiResponse<AppVersion> getApiVersion(@RequestParam Integer type) { |
| | | AppVersion appVersion = appVersionService.getLatestVersion(type); |
| | | appVersion.setFileUrl("http://llfc.lmpro.cn/apkversion/gtxljc.apk"); |
| | | return ApiResponse.success("æ¥è¯¢æå", appVersion); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.dto.DriverVerifyRequest; |
| | | import com.doumee.dao.vo.AccountResponse; |
| | | import com.doumee.dao.dto.CancelOrderDTO; |
| | | import com.doumee.dao.dto.ChangePasswordDTO; |
| | | import com.doumee.dao.vo.DriverActiveOrderCountVO; |
| | | import com.doumee.dao.vo.DriverCancelLimitVO; |
| | | import com.doumee.dao.vo.DriverCenterVO; |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse changePassword(@RequestParam String oldPassword, |
| | | @RequestParam String newPassword) { |
| | | public ApiResponse changePassword(@RequestBody @Valid ChangePasswordDTO dto) { |
| | | String token = this.getRequest().getHeader(JwtTokenUtil.HEADER_KEY); |
| | | driverInfoService.changePassword(this.getDriverId(), oldPassword, newPassword, token); |
| | | driverInfoService.changePassword(this.getDriverId(), dto.getOldPassword(), dto.getNewPassword(), token); |
| | | return ApiResponse.success("å¯ç ä¿®æ¹æåï¼è¯·éæ°ç»å½"); |
| | | } |
| | | |
| | |
| | | templateParam.put("orderNo", refundOrder.getCode()); |
| | | templateParam.put("money", String.valueOf(Constants.getFormatMoney( |
| | | refundOrder.getRefundAmount() != null ? refundOrder.getRefundAmount() : 0L))); |
| | | boolean smsResult = AliSmsService.sendSms(refundMember.getTelephone(), |
| | | String smsError = AliSmsService.sendSms(refundMember.getTelephone(), |
| | | Constants.SmsNotify.MEMBER_REFUNDED.getTemplateCode(), |
| | | templateParam.toJSONString()); |
| | | if (smsResult) { |
| | | if (smsError == null) { |
| | | log.info("鿬¾çä¿¡åéæå: phone={}", refundMember.getTelephone()); |
| | | } else { |
| | | log.warn("鿬¾çä¿¡åé失败: phone={}", refundMember.getTelephone()); |
| | |
| | | smsRecord.setPhone(refundMember.getTelephone()); |
| | | smsRecord.setContent(smsContent); |
| | | smsRecord.setType(Constants.ONE); |
| | | smsRecord.setStatus(smsResult ? Constants.ONE : Constants.ZERO); |
| | | smsRecord.setStatus(smsError == null ? Constants.ONE : Constants.ZERO); |
| | | if (smsError != null) { |
| | | smsRecord.setRemark(smsError); |
| | | } |
| | | smsRecord.setCreateTime(new java.util.Date()); |
| | | smsRecord.setDeleted(Constants.ZERO); |
| | | smsrecordMapper.insert(smsRecord); |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.dto.ChangePasswordDTO; |
| | | import com.doumee.dao.dto.ShopApplyDTO; |
| | | import com.doumee.dao.dto.ShopDetailQueryDTO; |
| | | import com.doumee.dao.dto.ShopInfoMaintainDTO; |
| | |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import javax.validation.Valid; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "é¨åºtokenå¼", required = true), |
| | | }) |
| | | public ApiResponse changePassword(@RequestParam String oldPassword, |
| | | @RequestParam String newPassword) { |
| | | public ApiResponse changePassword(@RequestBody @Valid ChangePasswordDTO dto) { |
| | | String token = this.getRequest().getHeader(JwtTokenUtil.HEADER_KEY); |
| | | shopInfoService.changePassword(this.getShopId(), oldPassword, newPassword, token); |
| | | shopInfoService.changePassword(this.getShopId(), dto.getOldPassword(), dto.getNewPassword(), token); |
| | | return ApiResponse.success("å¯ç ä¿®æ¹æåï¼è¯·éæ°ç»å½"); |
| | | } |
| | | |