| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.MemberBank; |
| | | import com.doumee.service.business.MemberBankService; |
| | | 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 javax.servlet.http.HttpServletResponse; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Api(tags = "ç¨æ·æç°é¶è¡ä¿¡æ¯") |
| | | @RestController |
| | | @RequestMapping("/business/memberBank") |
| | | public class MemberBankController extends BaseController { |
| | | |
| | | @Autowired |
| | | private MemberBankService memberBankService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:memberbank:create") |
| | | public ApiResponse create(@RequestBody MemberBank memberBank) { |
| | | return ApiResponse.success(memberBankService.create(memberBank)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:memberbank:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | memberBankService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:memberbank: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)); |
| | | } |
| | | memberBankService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:memberbank:update") |
| | | public ApiResponse updateById(@RequestBody MemberBank memberBank) { |
| | | memberBankService.updateById(memberBank); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:memberbank:query") |
| | | public ApiResponse<PageData<MemberBank>> findPage (@RequestBody PageWrap<MemberBank> pageWrap) { |
| | | return ApiResponse.success(memberBankService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:memberbank:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<MemberBank> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(MemberBank.class).export(memberBankService.findPage(pageWrap).getRecords(), "ç¨æ·æç°é¶è¡ä¿¡æ¯", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @RequiresPermissions("business:memberbank:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(memberBankService.findById(id)); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.business; |
| | | |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.WithdrawRecord; |
| | | import com.doumee.service.business.WithdrawRecordService; |
| | | 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 javax.servlet.http.HttpServletResponse; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Api(tags = "ç¨æ·æç°è®°å½") |
| | | @RestController |
| | | @RequestMapping("/business/withdrawRecord") |
| | | public class WithdrawRecordController extends BaseController { |
| | | |
| | | @Autowired |
| | | private WithdrawRecordService withdrawRecordService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("æ°å»º") |
| | | @PostMapping("/create") |
| | | @RequiresPermissions("business:withdrawrecord:create") |
| | | public ApiResponse create(@RequestBody WithdrawRecord withdrawRecord) { |
| | | return ApiResponse.success(withdrawRecordService.create(withdrawRecord)); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDå é¤") |
| | | @GetMapping("/delete/{id}") |
| | | @RequiresPermissions("business:withdrawrecord:delete") |
| | | public ApiResponse deleteById(@PathVariable Integer id) { |
| | | withdrawRecordService.deleteById(id); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ¹éå é¤") |
| | | @GetMapping("/delete/batch") |
| | | @RequiresPermissions("business:withdrawrecord: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)); |
| | | } |
| | | withdrawRecordService.deleteByIdInBatch(idList); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @RequiresPermissions("business:withdrawrecord:update") |
| | | public ApiResponse updateById(@RequestBody WithdrawRecord withdrawRecord) { |
| | | withdrawRecordService.updateById(withdrawRecord); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/page") |
| | | @RequiresPermissions("business:withdrawrecord:query") |
| | | public ApiResponse<PageData<WithdrawRecord>> findPage (@RequestBody PageWrap<WithdrawRecord> pageWrap) { |
| | | return ApiResponse.success(withdrawRecordService.findPage(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @RequiresPermissions("business:withdrawrecord:exportExcel") |
| | | public void exportExcel (@RequestBody PageWrap<WithdrawRecord> pageWrap, HttpServletResponse response) { |
| | | ExcelExporter.build(WithdrawRecord.class).export(withdrawRecordService.findPage(pageWrap).getRecords(), "ç¨æ·æç°è®°å½", response); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDæ¥è¯¢") |
| | | @GetMapping("/{id}") |
| | | @RequiresPermissions("business:withdrawrecord:query") |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(withdrawRecordService.findById(id)); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberbank:create', 'æ°å»ºç¨æ·æç°é¶è¡ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberbank:delete', 'å é¤ç¨æ·æç°é¶è¡ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberbank:update', 'ä¿®æ¹ç¨æ·æç°é¶è¡ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberbank:query', 'æ¥è¯¢ç¨æ·æç°é¶è¡ä¿¡æ¯', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberbank:exportExcel', '导åºç¨æ·æç°é¶è¡ä¿¡æ¯(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:withdrawrecord:create', 'æ°å»ºç¨æ·æç°è®°å½', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:withdrawrecord:delete', 'å é¤ç¨æ·æç°è®°å½', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:withdrawrecord:update', 'ä¿®æ¹ç¨æ·æç°è®°å½', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:withdrawrecord:query', 'æ¥è¯¢ç¨æ·æç°è®°å½', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:withdrawrecord:exportExcel', '导åºç¨æ·æç°è®°å½(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0); |
| | | |
| | |
| | | /** |
| | | * ç¨æ·id |
| | | */ |
| | | private Integer memberId; |
| | | private String memberId; |
| | | private long expire; |
| | | |
| | | |
| | | public JwtPayLoad() { |
| | | } |
| | | |
| | | public JwtPayLoad(Integer memberId) { |
| | | public JwtPayLoad(String memberId) { |
| | | this.memberId = memberId; |
| | | } |
| | | |
| | |
| | | return new JwtPayLoad(); |
| | | } else { |
| | | JwtPayLoad jwtPayLoad = new JwtPayLoad(); |
| | | jwtPayLoad.setMemberId((Integer) map.get("memberId")); |
| | | jwtPayLoad.setMemberId(map.get("memberId").toString()); |
| | | |
| | | return jwtPayLoad; |
| | | } |
| | |
| | | public static final String HEADER_KEY = "token"; |
| | | //åå¼åç§° |
| | | public static final String UserId_Name = "AppUserId"; |
| | | //åå¼åç§° |
| | | public static final String ShopId_Name = "AppShopId"; |
| | | //å å¯å¯é¥ |
| | | private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1"; |
| | | //è¿ææ¶é´(s) 86400L=1天 604800L=7天 |
| | |
| | | /** |
| | | * çætoken,æ ¹æ®userIdåè¿ææ¶é´ |
| | | */ |
| | | public static String generateToken(Integer userId, Date exppiredDate, Map<String, Object> claims) { |
| | | public static String generateToken(String userId, Date exppiredDate, Map<String, Object> claims) { |
| | | |
| | | final Date createdDate = new Date(); |
| | | String secret = getJwtSecret(); |
| | | |
| | | if (claims == null) { |
| | | return Jwts.builder() |
| | | .setSubject(userId.toString()) |
| | | .setSubject(userId) |
| | | .setIssuedAt(createdDate) |
| | | .setExpiration(exppiredDate) |
| | | .signWith(SignatureAlgorithm.HS512, secret) |
| | |
| | | } else { |
| | | return Jwts.builder() |
| | | .setClaims(claims) |
| | | .setSubject(userId.toString()) |
| | | .setSubject(userId) |
| | | .setIssuedAt(createdDate) |
| | | .setExpiration(exppiredDate) |
| | | .signWith(SignatureAlgorithm.HS512, secret) |
| | |
| | | package com.doumee.config.Jwt; |
| | | |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.LoginShopRequired; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | |
| | | //è·åtoken |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // ä» http 请æ±å¤´ä¸ååº token |
| | | if (StringUtils.isNotBlank(token)) { |
| | | checkLogin(request,response); |
| | | checkMemberLogin(request,response); |
| | | } else { |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | |
| | | //è·åtoken |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // ä» http 请æ±å¤´ä¸ååº token |
| | | if (StringUtils.isNotBlank(token)) { |
| | | checkLogin(request,response); |
| | | checkMemberLogin(request,response); |
| | | } else { |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | }else if (beanType.isAnnotationPresent(LoginShopRequired.class)) { |
| | | //è·åtoken |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // ä» http 请æ±å¤´ä¸ååº token |
| | | if (StringUtils.isNotBlank(token)) { |
| | | checkShopLogin(request,response); |
| | | } else { |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | }else if (handlerMethod.hasMethodAnnotation(LoginShopRequired.class)){ |
| | | //è·åtoken |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // ä» http 请æ±å¤´ä¸ååº token |
| | | if (StringUtils.isNotBlank(token)) { |
| | | checkShopLogin(request,response); |
| | | } else { |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | }; |
| | |
| | | |
| | | |
| | | |
| | | public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){ |
| | | public Boolean checkMemberLogin(HttpServletRequest request, HttpServletResponse response){ |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); |
| | | try { |
| | | //夿Tokenæ¯å¦è¶
æ¶ |
| | |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | //è·åè´¦å·ID |
| | | Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); |
| | | String memberIdInfo = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); |
| | | if(StringUtils.isBlank(memberIdInfo)||!memberIdInfo.startsWith(Constants.MEMBER_PREFIX)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"ç¨æ·ä¿¡æ¯åºé"); |
| | | } |
| | | Integer memberId = Integer.valueOf(memberIdInfo.replace(Constants.MEMBER_PREFIX,"")); |
| | | Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,0) from Member where id = ?", Integer.class, memberId); |
| | | if(isDeleted== Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²å é¤,请è系管çå"); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | public Boolean checkShopLogin(HttpServletRequest request, HttpServletResponse response){ |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); |
| | | try { |
| | | //夿Tokenæ¯å¦è¶
æ¶ |
| | | boolean expiration = JwtTokenUtil.isTokenExpired(token); |
| | | if (expiration) { |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | //è·åè´¦å·ID |
| | | String shopInfo = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); |
| | | if(StringUtils.isBlank(shopInfo)||!shopInfo.startsWith(Constants.SHOP_PREFIX)){ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"ç¨æ·ä¿¡æ¯åºé"); |
| | | } |
| | | Integer shopId = Integer.valueOf(shopInfo.replace(Constants.SHOP_PREFIX,"")); |
| | | Integer isDeleted = dao.queryForObject(" select COALESCE(ISDELETED,0) from shop where id = ?", Integer.class, shopId); |
| | | if(isDeleted== Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²å é¤,请è系管çå"); |
| | | } |
| | | Integer isForbidden = dao.queryForObject(" select COALESCE(STATUS,0) from shop where id = ?", Integer.class, shopId); |
| | | if(isForbidden== Constants.ONE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²ç¦ç¨,请è系管çå"); |
| | | } |
| | | Integer count = dao.queryForObject("select count(1) from shop where id = ?", Integer.class, shopId); |
| | | if (count != null && count > 0) { |
| | | request.setAttribute(JwtTokenUtil.ShopId_Name, shopId); |
| | | return true; |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"ç¨æ·ä¿¡æ¯åºé"); |
| | | } |
| | | } catch (IllegalArgumentException | JwtException e) { |
| | | throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"æªç»å½"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Bean |
| | | public RestTemplate getRestTemplate(){ |
| | | return new RestTemplate(); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.config.annotation; |
| | | |
| | | import java.lang.annotation.ElementType; |
| | | import java.lang.annotation.Retention; |
| | | import java.lang.annotation.RetentionPolicy; |
| | | import java.lang.annotation.Target; |
| | | |
| | | @Target({ElementType.METHOD,ElementType.TYPE}) |
| | | @Retention(RetentionPolicy.RUNTIME) |
| | | public @interface LoginShopRequired {} |
| | |
| | | public static final String ORDER_SET ="ORDER_SET" ; |
| | | public static final String INTEGRAL_SET ="INTEGRAL_SET" ; |
| | | |
| | | public static final String MEMBER_PREFIX = "member_"; |
| | | public static final String SHOP_PREFIX = "shop_"; |
| | | |
| | | /** |
| | | * mq tag |
| | | */ |
| | |
| | | |
| | | public static final String COFFEE_ARTICLE_BACKGROUND = "COFFEE_ARTICLE_BACKGROUND"; |
| | | |
| | | public static final String TRANSFER_FILE = "TRANSFER_FILE"; |
| | | |
| | | |
| | | public interface RedisKeys { |
| | | public static final String GOODSORDER_KEY = "ordercode_"; |
| | | public static final String ACTIVITY_SIGN_KEY = "actcode_"; |
| | | public static final String AFTERSALE_KEY = "salecode_"; |
| | | public static final String WITHDRAW_KEY = "withdraw_"; |
| | | } |
| | | /** |
| | | * ä¼ä¸æ°æ®æ¥æº 0平尿³¨å 1åå°å¯¼å
¥ |
| | |
| | | SHOP_PICTURE(7, "åå®¶å¾çå¤å¾", "åå®¶å¾çå¤å¾"), |
| | | AFTERSALE_APPLY(8, "ç³è¯·å®åè¡¥å
说æéä»¶", "ç³è¯·å®åè¡¥å
说æéä»¶"), |
| | | AFTERSALE_KD(9, "ç³è¯·å®åé®å¯è¯´æéä»¶", "ç³è¯·å®åé®å¯è¯´æéä»¶"), |
| | | TRANSFER_FILE(10, "ææ¬¾åè¯", "ææ¬¾åè¯"), |
| | | ; |
| | | // æååé |
| | | private String name; |
| | |
| | | ORDER_DONATE(15,"订åèµ é积å","订åèµ é积å",0), |
| | | ORDER_DONE_AMOUNT(16,"订åç»ç®éé¢","订åç»ç®éé¢",0), |
| | | |
| | | SHOP_ORDER_SETTLEMENT(16,"ä¸åç»ç®éé¢","ä¸åç»ç®éé¢",0), //ç»éåä¸åç»ç®éé¢ |
| | | WITHDRAW_APPLY(17,"ä½é¢æç°","ä½é¢æç°",0), //ç»éåä¸åç»ç®éé¢ |
| | | |
| | | |
| | | |
| | | |
| | | SHOP_ORDER_CANCEL_SETTLEMENT(17,"åæ¶è®¢åç»ç®éé¢è¿è¿","åæ¶è®¢åç»ç®éé¢è¿è¿",0), //åæ¶è®¢åç»ç®éé¢è¿è¿ |
| | | SHOP_YEAR_SETTLEMENT(18,"年度ç»ç®","年度ç»ç®",0) //年度ç»ç® |
| | | ; |
| | |
| | | IPage<MemberOrderResponse> goodsOrderPage(IPage<MemberOrderResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | @Select(" select g.CODE AS code , g.id as orderId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," + |
| | | @Select(" select g.CODE AS code , g.remark as remark , g.id as orderId , g.MEMBER_ID as memberId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," + |
| | | " g.COUPON_PRICE as couponPrice , g.price , g.LINKNAME as linkName , g.LINKPHONE as linkPhone , g.LINKADDR as linkAddress , " + |
| | | "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.INTEGRAL_PRICE as integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " + |
| | | " , g.MEMBER_INFO , g.RECEIVE_TYPE as receiveType, s.name as shopName ,s.id as shopId,g.exchange_code as exchangeCode " + |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.MemberBank; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | public interface MemberBankMapper extends BaseMapper<MemberBank> { |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.WithdrawRecord; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | public interface WithdrawRecordMapper extends BaseMapper<WithdrawRecord> { |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "çµè¯") |
| | | @TableField(exist = false) |
| | | private String phone; |
| | | @ApiModelProperty(value = "头åä¿¡æ¯") |
| | | @TableField(exist = false) |
| | | private String imgurl; |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§å°å") |
| | | @TableField(exist = false) |
| | |
| | | @TableField(exist = false) |
| | | private String everyDay; |
| | | |
| | | @ApiModelProperty(value = "订åç»ç®éé¢") |
| | | @TableField(exist = false) |
| | | private BigDecimal shopSettlement; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "ç»å®åéºä¸»é® shop:id åé人") |
| | | private Integer bindShopId; |
| | | |
| | | @ApiModelProperty(value = "ç»å®æ¶é´") |
| | | private Date bindShopDate; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°åå
¨è·¯å¾") |
| | | @TableField(exist = false) |
| | | private String imgFullUrl; |
| | |
| | | @TableField(exist = false) |
| | | private Date endtime; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * ç¨æ·æç°é¶è¡ä¿¡æ¯ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·æç°é¶è¡ä¿¡æ¯") |
| | | @TableName("`member_bank`") |
| | | public class MemberBank { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "é¶è¡åç§°") |
| | | @ExcelColumn(name="é¶è¡åç§°") |
| | | private String bankName; |
| | | |
| | | @ApiModelProperty(value = "é¶è¡è´¦æ·") |
| | | @ExcelColumn(name="é¶è¡è´¦æ·") |
| | | private String bankAccount; |
| | | |
| | | @ApiModelProperty(value = "弿·äººå§å") |
| | | @ExcelColumn(name="弿·äººå§å") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®ï¼å
³èmember表ï¼", example = "1") |
| | | @ExcelColumn(name="ç¨æ·ä¸»é®ï¼å
³èmember表ï¼") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦é»è®¤ 0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦é»è®¤ 0å¦ 1æ¯") |
| | | private Integer isDefault; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "æ³äººçµè¯") |
| | | @ExcelColumn(name="æ³äººçµè¯") |
| | | private String legalPersonPhone; |
| | | @ApiModelProperty(value = "微信openId") |
| | | @ExcelColumn(name="微信openId") |
| | | private String openId; |
| | | |
| | | @ApiModelProperty(value = "身份è¯åé¢ç
§") |
| | | @ExcelColumn(name="身份è¯åé¢ç
§") |
| | |
| | | @ExcelColumn(name="积å累计") |
| | | private BigDecimal totalIntegral; |
| | | |
| | | @ApiModelProperty(value = "坿æéé¢") |
| | | @ApiModelProperty(value = "坿ç°éé¢") |
| | | @ExcelColumn(name="坿æéé¢") |
| | | private BigDecimal amount; |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç¨æ·æç°è®°å½ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·æç°è®°å½") |
| | | @TableName("`withdraw_record`") |
| | | public class WithdrawRecord { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private Integer creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private Integer editor; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®ï¼å
³èmember表ï¼", example = "1") |
| | | @ExcelColumn(name="ç¨æ·ä¸»é®ï¼å
³èmember表ï¼") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "æµæ°´å·", example = "1") |
| | | @ExcelColumn(name="æµæ°´å·") |
| | | private Long code; |
| | | |
| | | @ApiModelProperty(value = "æç°éé¢", example = "1") |
| | | @ExcelColumn(name="æç°éé¢") |
| | | private BigDecimal amount; |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "é¶è¡ä¸»é®ï¼å
³è member_bank 表ï¼", example = "1") |
| | | @ExcelColumn(name="é¶è¡ä¸»é®ï¼å
³è member_bank 表ï¼") |
| | | private Integer bankId; |
| | | |
| | | @ApiModelProperty(value = "ç¶æï¼0=å¾
审æ¹ï¼1=审æ¹éè¿ï¼2=审æ¹é©³å", example = "1") |
| | | @ExcelColumn(name="ç¶æï¼0=å¾
审æ¹ï¼1=审æ¹éè¿ï¼2=审æ¹é©³å") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "审æ¹äººä¸»é®", example = "1") |
| | | @ExcelColumn(name="审æ¹äººä¸»é®") |
| | | private Integer auditUser; |
| | | |
| | | @ApiModelProperty(value = "å®¡æ¹æ¶é´") |
| | | @ExcelColumn(name="å®¡æ¹æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date auditTime; |
| | | |
| | | @ApiModelProperty(value = "审æ¹å¤æ³¨") |
| | | @ExcelColumn(name="审æ¹å¤æ³¨") |
| | | private String auditRemark; |
| | | |
| | | @ApiModelProperty(value = "ææ¬¾é¶è¡") |
| | | @ExcelColumn(name="ææ¬¾é¶è¡") |
| | | private String payBank; |
| | | |
| | | @ApiModelProperty(value = "æç°é¶è¡åç§°", example = "1") |
| | | @TableField(exist = false) |
| | | private String bankName; |
| | | |
| | | @ApiModelProperty(value = "ææ¬¾åè¯", example = "1") |
| | | @TableField(exist = false) |
| | | private List<Multifile> payFileList; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.dto; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel("积åæç»æ¥è¯¢è¯·æ±ç±»") |
| | | public class IntegralRecordDTO { |
| | | |
| | | @ApiModelProperty(value = "æ¶æ¯ç±»å 0æ¶å
¥ 1æ¯åº") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "æ°æ®ç±»åï¼0=æ¶è´¹è
积åï¼1=ç»éå积åï¼2=ç»éåç»ç®éé¢ï¼") |
| | | private Integer userType; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®æåæ·ä¸»é®") |
| | | private Integer memberId; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel("ç»éåç»å½è¯·æ±å¯¹è±¡") |
| | | public class ShopLoginDTO { |
| | | |
| | | @ApiModelProperty(value = "å
³èç¨æ·ä¸»é®") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·åç§°") |
| | | private String userName; |
| | | |
| | | @ApiModelProperty(value = "å¯ç ") |
| | | private String password; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.dto.shop; |
| | | |
| | | import com.doumee.dao.web.dto.MultiFileDTO; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | @ApiModel("å°ç¨åº éæ©åæ·è¯·æ±ç±»") |
| | | public class ShopListDTO { |
| | | |
| | | @ApiModelProperty(value = "åå¸ä¸»é®", example = "1") |
| | | private Integer cityId; |
| | | @ApiModelProperty(value = "å®ä½ç»´åº¦", example = "1") |
| | | private String lat; |
| | | @ApiModelProperty(value = "å®ä½ç»åº¦", example = "1") |
| | | private String lgt; |
| | | @ApiModelProperty(value = "åºéºåç§°", example = "1") |
| | | private String shopName; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * ç¨æ·æç°é¶è¡ä¿¡æ¯ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·æç°é¶è¡ä¿¡æ¯ä¿å请æ±ç±»") |
| | | public class MemberBankSaveRequest { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "é¶è¡åç§°") |
| | | private String bankName; |
| | | |
| | | @ApiModelProperty(value = "é¶è¡è´¦æ·") |
| | | private String bankAccount; |
| | | |
| | | @ApiModelProperty(value = "弿·äººå§å") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦é»è®¤ 0å¦ 1æ¯", example = "1") |
| | | private Integer isDefault; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®", example = "1") |
| | | private Integer memberId; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("æç客æ·è¯·æ±ç±»") |
| | | public class MyCustomerRequest { |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°ãææºå·") |
| | | private String memberIfo; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("æçé宿¥è¡¨è¯·æ±ç±»") |
| | | public class SaleReportRequest { |
| | | |
| | | @ApiModelProperty(value = "æ¥æç±»åï¼0=仿¥ï¼1=æ¬æï¼2=䏿ï¼3=åºå®æä»½ï¼4=èªå®ä¹æ¥æ") |
| | | private Integer dateType; |
| | | |
| | | @ApiModelProperty(value = "å¼å§æ¥æ yyyy-MM-dd dateType = 3 ã 4使ç¨") |
| | | private String startDate; |
| | | |
| | | @ApiModelProperty(value = "ç»ææ¥æ yyyy-MM-dd dateType = 4使ç¨") |
| | | private String endDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦æ¥è¯¢è¯¦æ
ï¼0=å¦ï¼1=æ¯ï¼") |
| | | private Integer queryType; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("æçé宿¥è¡¨è¯·æ±ç±»") |
| | | public class ShopOrderRequest { |
| | | |
| | | @ApiModelProperty(value = "订åç¶æï¼ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ç»éå主é®") |
| | | private Integer shopId; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.request; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * ç¨æ·æç°é¶è¡ä¿¡æ¯ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("ç¨æ·æç°è¯·æ±ç±»") |
| | | public class WithdrawApplyRequest { |
| | | |
| | | |
| | | @ApiModelProperty(value = "æç°é¶è¡ä¸»é®") |
| | | private Integer bankId; |
| | | |
| | | @ApiModelProperty(value = "æç°éé¢") |
| | | private BigDecimal amount; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®ï¼å
³èshop表主é®ï¼", example = "1") |
| | | private Integer memberId; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "sessionKey") |
| | | private String sessionKey; |
| | | |
| | | private Integer memberId; |
| | | @NotEmpty(message = "openid ä¸è½ä¸ºç©º") |
| | | @ApiModelProperty(value = "openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "é请ç ") |
| | | private Integer recId; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "ç¨æ·ä¿¡æ¯") |
| | | private Member member; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·openid") |
| | | private String openid; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("积åæ
åµè¿åç±»") |
| | | public class IntegralDataResponse { |
| | | |
| | | |
| | | @ApiModelProperty(value = "å©ä½å¯ç¨ç§¯å") |
| | | private BigDecimal surplusIntegral; |
| | | |
| | | @ApiModelProperty(value = "å³å°è¿æç§¯å") |
| | | private BigDecimal expiredIntegral; |
| | | |
| | | @ApiModelProperty(value = "积å说æ") |
| | | private String info; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("æç客æ·è¯·æ±ç±»") |
| | | public class MyCustomerResponse { |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·å¤´å") |
| | | private String imgFullUrl; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°") |
| | | private String nickName; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "ç»å®æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date bindShopDate; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.model.GoodsorderDetail; |
| | | import com.doumee.dao.business.model.PlanorderDetail; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("é宿¥è¡¨è®¢åæç»è¯·æ±è¿åä¿¡æ¯") |
| | | public class SaleReportOrderResponse { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "订åå®ä»ä»·æ ¼ï¼å
/åè±ï¼", example = "1") |
| | | private BigDecimal price; |
| | | |
| | | @ApiModelProperty(value = "é®è´¹éé¢", example = "1") |
| | | private BigDecimal mailPrice; |
| | | |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "订åç¼å·", example = "1") |
| | | private Long code; |
| | | |
| | | |
| | | @ApiModelProperty(value = "æ¶è´§ç±»åï¼0=å¿«éé
éï¼1=é¨åºèªæï¼", example = "1") |
| | | private Integer receiveType; |
| | | |
| | | @ApiModelProperty(value = "å®å已鿬¾éé¢", example = "1") |
| | | private BigDecimal aftersaleMoney; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§", example = "1") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "æµç§°") |
| | | private String nickName; |
| | | |
| | | @ApiModelProperty(value = "çµè¯") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "订åç»ç®éé¢") |
| | | private BigDecimal shopSettlement; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:50 |
| | | */ |
| | | @Data |
| | | @ApiModel("é宿¥è¡¨è¯·æ±è¿åä¿¡æ¯") |
| | | public class SaleReportResponse { |
| | | |
| | | @ApiModelProperty(value = "éå®é¢") |
| | | private BigDecimal saleTotal; |
| | | |
| | | @ApiModelProperty(value = "è®¢åæ°é") |
| | | private Integer orderNum; |
| | | |
| | | @ApiModelProperty(value = "ç»ç®å©æ¶¦é¢") |
| | | private BigDecimal profitTotal; |
| | | |
| | | |
| | | @ApiModelProperty(value ="订åå表") |
| | | private List<SaleReportOrderResponse> saleReportOrderResponseList; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 10:56 |
| | | */ |
| | | @Data |
| | | @ApiModel("åæ·ä¿¡æ¯æ¥è¯¢è¿åç±»") |
| | | public class ShopInfoResponse { |
| | | |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "é¨å¤´ç
§") |
| | | private String imgurl; |
| | | |
| | | @ApiModelProperty(value = "åºéºåç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "çå®å§å") |
| | | private String realname; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "è¥ä¸å¼å§æ¶é´") |
| | | private String startTime; |
| | | |
| | | @ApiModelProperty(value = "å°å") |
| | | private String addr; |
| | | |
| | | @ApiModelProperty(value = "åå®¶ç¼ç ") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "积åä½é¢") |
| | | private BigDecimal integral; |
| | | |
| | | @ApiModelProperty(value = "è¥ä¸æ§ç
§") |
| | | private String businessImg; |
| | | |
| | | @ApiModelProperty(value = "èº«ä»½è¯æ£é¢ç
§") |
| | | private String idcardImg; |
| | | |
| | | @ApiModelProperty(value = "身份è¯åé¢ç
§") |
| | | @ExcelColumn(name="身份è¯åé¢ç
§") |
| | | private String idcardImgBack; |
| | | |
| | | @ApiModelProperty(value = "é宿¨¡å¼ 0å¹³å°éºè´§ 1èªä¸»éè´") |
| | | private Integer saleType; |
| | | |
| | | @ApiModelProperty(value = "æ³äººå§å") |
| | | private String legalPersonName; |
| | | |
| | | @ApiModelProperty(value = "æ³äººçµè¯") |
| | | private String legalPersonPhone; |
| | | |
| | | } |
| | |
| | | package com.doumee.dao.web.response.goods; |
| | | |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | |
| | | @ApiModelProperty(value = "订å主é®", example = "1") |
| | | private Integer orderId; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®", example = "1") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "å计æ¶", example = "1") |
| | | private Long countdown; |
| | |
| | | private String linkAddress; |
| | | |
| | | @ApiModelProperty(value = "订å夿³¨", example = "1") |
| | | private String memberInfo; |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "订åå·", example = "1") |
| | | private String code; |
| | |
| | | @ApiModelProperty(value = "ç»éåä¿¡æ¯", example = "1") |
| | | private Shop shopInfo; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¿¡æ¯", example = "1") |
| | | private Member member; |
| | | |
| | | @ApiModelProperty(value = "伿 å¸ä¿¡æ¯", example = "1") |
| | | private MemberCoupon memberCoupon; |
| | | |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.request.OrderCancelRequest; |
| | | import com.doumee.dao.web.request.OrderPayRequest; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.request.ShopOrderPayRequest; |
| | | import com.doumee.dao.web.request.*; |
| | | import com.doumee.dao.web.request.goods.DealOrderRequest; |
| | | import com.doumee.dao.web.request.goods.MemberOrderRequest; |
| | | import com.doumee.dao.web.request.goods.OrderCommentRequest; |
| | |
| | | void orderSendOutGoods(Goodsorder goodsorder); |
| | | |
| | | void orderRemark(Goodsorder goodsorder); |
| | | IPage<Shop> getShopPage(PageWrap<Shop> pageWrap); |
| | | // IPage<Shop> getShopPage(PageWrap<Shop> pageWrap); |
| | | void coffeePlanCancelOrder(Goodsorder goodsorder); |
| | | void orderPlanCancelOrder(Goodsorder goodsorder); |
| | | |
| | |
| | | |
| | | OrderPayConfirmResponse orderPayConfirm(OrderPayConfirmRequest request, |
| | | MemberCouponServiceImpl memberCouponService); |
| | | |
| | | /** |
| | | * ç»éå订åå表 |
| | | * @param pageWrap |
| | | * @return |
| | | */ |
| | | PageData<Goodsorder> shopOrderPage(PageWrap<ShopOrderRequest> pageWrap); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.doumee.dao.web.dto.IntegralDTO; |
| | | import com.doumee.dao.web.dto.IntegralRecordDTO; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.dao.web.response.IntegralDataResponse; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | |
| | | * @return PageData<Integral> |
| | | */ |
| | | PageData<IntegralDTO> findIntegralDTOPage(PageWrap<IntegralDTO> pageWrap,Integer memberId); |
| | | |
| | | /** |
| | | * æ´æ°æ¶è´¹è
积å |
| | | * @param dealIntegralRequest å®ä½å¯¹è±¡ |
| | |
| | | * @return |
| | | */ |
| | | Integer dealShopAmount(DealIntegralRequest dealIntegralRequest); |
| | | |
| | | |
| | | /** |
| | | * è·åç¨æ·ç积åè®°å½ |
| | | * @param pageWrap |
| | | * @return |
| | | */ |
| | | PageData<Integral> findIntegralRecordPage(PageWrap<IntegralRecordDTO> pageWrap); |
| | | |
| | | /** |
| | | * è·åç¨æ·å©ä½ç§¯åä¸å¾
æ
åµç§¯åä¿¡æ¯ |
| | | * @param model |
| | | * @return |
| | | */ |
| | | IntegralDataResponse getIntegralData(IntegralRecordDTO model); |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.MemberBank; |
| | | import com.doumee.dao.web.request.MemberBankSaveRequest; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç¨æ·æç°é¶è¡ä¿¡æ¯Serviceå®ä¹ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | public interface MemberBankService { |
| | | |
| | | /** |
| | | * å建 |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | | Integer create(MemberBank memberBank); |
| | | |
| | | /** |
| | | * 主é®å é¤ |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | */ |
| | | void delete(MemberBank memberBank); |
| | | |
| | | /** |
| | | * æ¹é主é®å é¤ |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | */ |
| | | void updateById(MemberBank memberBank); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | | * @param memberBanks å®ä½é |
| | | */ |
| | | void updateByIdInBatch(List<MemberBank> memberBanks); |
| | | |
| | | /** |
| | | * 䏻鮿¥è¯¢ |
| | | * |
| | | * @param id ä¸»é® |
| | | * @return MemberBank |
| | | */ |
| | | MemberBank findById(Integer id); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | * @return MemberBank |
| | | */ |
| | | MemberBank findOne(MemberBank memberBank); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢ |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | * @return List<MemberBank> |
| | | */ |
| | | List<MemberBank> findList(MemberBank memberBank); |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param pageWrap å页对象 |
| | | * @return PageData<MemberBank> |
| | | */ |
| | | PageData<MemberBank> findPage(PageWrap<MemberBank> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | | * |
| | | * @param memberBank å®ä½å¯¹è±¡ |
| | | * @return long |
| | | */ |
| | | long count(MemberBank memberBank); |
| | | |
| | | void saveOrUpdate(MemberBankSaveRequest request); |
| | | |
| | | List<MemberBank> getMyBankList(Integer shopId); |
| | | } |
| | |
| | | * è·åç»å®å¾®ä¿¡ç¨æ·ææºå· |
| | | * @param wxPhoneRequest |
| | | */ |
| | | void wxPhone(WxPhoneRequest wxPhoneRequest); |
| | | AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest); |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.MemberDTO; |
| | | import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopDataStatisticsDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopFaceDetailDTO; |
| | | import com.doumee.dao.web.dto.shop.ShopSimpleDTO; |
| | | import com.doumee.dao.web.dto.ShopLoginDTO; |
| | | import com.doumee.dao.web.dto.shop.*; |
| | | import com.doumee.dao.web.request.MyCustomerRequest; |
| | | import com.doumee.dao.web.request.SaleReportRequest; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import com.doumee.dao.web.response.MyCustomerResponse; |
| | | import com.doumee.dao.web.response.SaleReportResponse; |
| | | import com.doumee.dao.web.response.ShopInfoResponse; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | ShopDataStatisticsDTO getShopDataStatisticsDTO(Integer shopId); |
| | | |
| | | void resetPwd(Shop dto); |
| | | /** |
| | | * ç¨æ·ä¸åæ¥è¯¢å¯éæ©çèªæç»éå |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | List<Shop> getShopList(ShopListDTO dto); |
| | | |
| | | /** |
| | | * ç»éåè´¦å·å¯ç ç»å½ |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | AccountResponse shopPasswordLogin(ShopLoginDTO dto); |
| | | |
| | | /** |
| | | * ç»éåéé»ç»å½ |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | AccountResponse shopOpenidLogin(ShopLoginDTO dto); |
| | | |
| | | /** |
| | | * ç»éååºéºè¯¦æ
|
| | | * @param shopId |
| | | * @return |
| | | */ |
| | | ShopInfoResponse getShopInfo(Integer shopId); |
| | | |
| | | |
| | | /** |
| | | * æç客æ·ä¿¡æ¯ |
| | | * @param request |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | | List<MyCustomerResponse> myCustomer(MyCustomerRequest request, Integer shopId); |
| | | |
| | | /** |
| | | * éå®æç» |
| | | * @param request |
| | | * @param shopId |
| | | * @return |
| | | */ |
| | | SaleReportResponse saleReport(SaleReportRequest request, String shopId); |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.WithdrawRecord; |
| | | import com.doumee.dao.web.request.WithdrawApplyRequest; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç¨æ·æç°è®°å½Serviceå®ä¹ |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | public interface WithdrawRecordService { |
| | | |
| | | /** |
| | | * å建 |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | * @return Integer |
| | | */ |
| | | Integer create(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * 主é®å é¤ |
| | | * |
| | | * @param id ä¸»é® |
| | | */ |
| | | void deleteById(Integer id); |
| | | |
| | | /** |
| | | * å é¤ |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | */ |
| | | void delete(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * æ¹é主é®å é¤ |
| | | * |
| | | * @param ids 主é®é |
| | | */ |
| | | void deleteByIdInBatch(List<Integer> ids); |
| | | |
| | | /** |
| | | * 䏻鮿´æ° |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | */ |
| | | void updateById(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | | * @param withdrawRecords å®ä½é |
| | | */ |
| | | void updateByIdInBatch(List<WithdrawRecord> withdrawRecords); |
| | | |
| | | /** |
| | | * 䏻鮿¥è¯¢ |
| | | * |
| | | * @param id ä¸»é® |
| | | * @return WithdrawRecord |
| | | */ |
| | | WithdrawRecord findById(Integer id); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | * @return WithdrawRecord |
| | | */ |
| | | WithdrawRecord findOne(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * æ¡ä»¶æ¥è¯¢ |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | * @return List<WithdrawRecord> |
| | | */ |
| | | List<WithdrawRecord> findList(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * å页æ¥è¯¢ |
| | | * |
| | | * @param pageWrap å页对象 |
| | | * @return PageData<WithdrawRecord> |
| | | */ |
| | | PageData<WithdrawRecord> findPage(PageWrap<WithdrawRecord> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | | * |
| | | * @param withdrawRecord å®ä½å¯¹è±¡ |
| | | * @return long |
| | | */ |
| | | long count(WithdrawRecord withdrawRecord); |
| | | |
| | | /** |
| | | * æç°ç³è¯· |
| | | * @param request |
| | | * @param integralService |
| | | */ |
| | | void withdrawApply(WithdrawApplyRequest request, IntegralService integralService); |
| | | } |
| | |
| | | goodsorderMapper.updateById(goodsorder); |
| | | } |
| | | |
| | | @Override |
| | | /*@Override |
| | | public IPage<Shop> getShopPage(PageWrap<Shop> pageWrap) { |
| | | IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | Shop model = pageWrap.getModel(); |
| | |
| | | .like(StringUtils.isNotBlank(model.getName()),Shop::getName,model.getName()) |
| | | .orderByAsc(" distance ") |
| | | ); |
| | | } |
| | | }*/ |
| | | |
| | | |
| | | /** |
| | |
| | | goodsorder.setDistributionShopId(shop.getId()); |
| | | if(Objects.isNull(member.getBindShopId())){ |
| | | member.setBindShopId(shop.getId()); |
| | | member.setBindShopDate(new Date()); |
| | | } |
| | | } |
| | | |
| | |
| | | if(Constants.equalsInteger(memberOrderResponse.getReceiveType(),Constants.ONE)){ |
| | | memberOrderResponse.setShopInfo(shopMapper.selectById(memberOrderResponse.getShopId())); |
| | | } |
| | | Member member = memberMapper.selectById(memberOrderResponse.getMemberId()); |
| | | if(Objects.nonNull(member)){ |
| | | String memberfullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode(); |
| | | member.setImgFullUrl(memberfullUrl + member.getImgurl()); |
| | | memberOrderResponse.setMember(member); |
| | | } |
| | | |
| | | return memberOrderResponse; |
| | | } |
| | | |
| | |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.GOODSORDER_KEY,0); |
| | | //å å
¥redisç¼åï¼å·æ°ä»å¤©å®åç¼å·0å¼å§ |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.AFTERSALE_KEY,0); |
| | | //å å
¥redisç¼åï¼å·æ°ä»å¤©å®åç¼å·0å¼å§ |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,0); |
| | | } |
| | | @Override |
| | | public void refreshOrderCodes(){ |
| | | long countOrder = 0,countSign=0,countSale=0; |
| | | long countOrder = 0,countSign=0,countSale=0,countWithdraw=0; |
| | | |
| | | QueryWrapper<Goodsorder> order = new QueryWrapper<>(); |
| | | order.apply(true, "TO_DAYS(NOW())=TO_DAYS(create_date)"); |
| | |
| | | } |
| | | //å å
¥redisç¼åï¼å·æ°ä»å¤©å®åç¼å·0å¼å§ |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.AFTERSALE_KEY,countSale); |
| | | |
| | | |
| | | |
| | | QueryWrapper<WithdrawRecord> withdraw = new QueryWrapper<>(); |
| | | withdraw.apply(true, "TO_DAYS(NOW())=TO_DAYS(create_date)"); |
| | | withdraw.orderByDesc(" CODE "); |
| | | withdraw.last(" limit 1 "); |
| | | Aftersale maxWithdrawOrder = aftersaleMapper.selectOne(sale); |
| | | if(!Objects.isNull(maxWithdrawOrder)){ |
| | | countWithdraw = Integer.valueOf(maxOrder.getCode().toString().substring(8,12)); |
| | | } |
| | | //å å
¥redisç¼åï¼å·æ°ä»å¤©å®åç¼å·0å¼å§ |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,countWithdraw); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | .eq(Goodsorder::getMemberId,member.getId()) |
| | | .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey())) |
| | | ); |
| | | |
| | | homeInfoResponse.setWaitPayNum( |
| | | goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Goodsorder::getMemberId,member.getId()) |
| | | .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey())) |
| | | ); |
| | | |
| | | homeInfoResponse.setCartTypeNum( |
| | | shopcartMapper.selectCount(new QueryWrapper<Shopcart>().lambda() |
| | | .eq(Shopcart::getIsdeleted,Constants.ZERO) |
| | |
| | | ); |
| | | |
| | | return homeInfoResponse; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<Goodsorder> shopOrderPage(PageWrap<ShopOrderRequest> pageWrap) { |
| | | Integer shopId = null; |
| | | Integer status = null; |
| | | IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | ShopOrderRequest model = pageWrap.getModel(); |
| | | queryWrapper.selectAll(Goodsorder.class); |
| | | // queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName); |
| | | // queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone); |
| | | // queryWrapper.selectAs(Member::getImgurl,Goodsorder::getImgurl); |
| | | queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(Objects.nonNull(model.getStatus()),Goodsorder::getStatus,model.getStatus()); |
| | | queryWrapper.eq(Objects.nonNull(model.getShopId()),Goodsorder::getDistributionShopId,model.getShopId()); |
| | | queryWrapper.orderByDesc(Goodsorder::getCreateDate); |
| | | |
| | | IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper); |
| | | |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode(); |
| | | |
| | | for(Goodsorder goodsorder:result.getRecords()){ |
| | | |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda() |
| | | .eq(GoodsorderDetail::getOrderId,goodsorder.getId())); |
| | | goodsorderDetailList.stream().forEach(s ->{ |
| | | if(StringUtils.isBlank(s.getImgurl())){ |
| | | s.setImgurl(path + s.getGoodsImgurl()); |
| | | } |
| | | }); |
| | | goodsorder.setGoodsorderDetailList(goodsorderDetailList); |
| | | } |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.dao.web.dto.IntegralDTO; |
| | | import com.doumee.dao.web.dto.IntegralRecordDTO; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.dao.web.response.IntegralDataResponse; |
| | | import com.doumee.service.business.AreasService; |
| | | import com.doumee.service.business.IntegralService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | integralDTOIPage.setCurrent(result.getCurrent()); |
| | | return PageData.from(integralDTOIPage); |
| | | } |
| | | |
| | | |
| | | |
| | | public List<Integral> getMyIntegralList(Integer memberId) { |
| | | |
| | | |
| | | |
| | | QueryWrapper<Integral> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.lambda().eq(Integral::getMemberId,memberId); |
| | | return integralMapper.selectList(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<Integral> findIntegralRecordPage(PageWrap<IntegralRecordDTO> pageWrap) { |
| | | IPage<Integral> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | IntegralRecordDTO model = pageWrap.getModel(); |
| | | |
| | | IPage<Integral> result = integralMapper.selectPage(page,new QueryWrapper<Integral>() |
| | | .lambda() |
| | | .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType()) |
| | | .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType()) |
| | | .eq(Integral::getMemberId,model.getMemberId()) |
| | | .orderByDesc(Integral::getCreateDate) |
| | | ); |
| | | |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(result.getRecords())){ |
| | | for (Integral integral:result.getRecords()) { |
| | | integral.setStrType(Constants.IntegralObjType.getName(integral.getObjType())); |
| | | } |
| | | } |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public IntegralDataResponse getIntegralData(IntegralRecordDTO model){ |
| | | IntegralDataResponse integralDataResponse = new IntegralDataResponse(); |
| | | integralDataResponse.setSurplusIntegral(BigDecimal.ZERO); |
| | | integralDataResponse.setExpiredIntegral(BigDecimal.ZERO); |
| | | List<Integral> list = integralMapper.selectList(new QueryWrapper<Integral>().lambda() |
| | | .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType()) |
| | | .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType()) |
| | | .eq(Integral::getMemberId,model.getMemberId()) |
| | | .orderByDesc(Integral::getCreateDate)); |
| | | |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){ |
| | | integralDataResponse.setSurplusIntegral( |
| | | list.stream().map(i->i.getNum().multiply(new BigDecimal(i.getType().toString())) |
| | | ).reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | ); |
| | | |
| | | //积åå¤±ææ¹å¼ 0é¿æææ 1æç§¯åäº§çæ¶é´å¤±æ |
| | | Integer type = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET, Constants.INTERALSET_INTEGRALINVALIDTYPE).getCode()); |
| | | //æ¶è´¹è
积å éè¦æ¥è¯¢å³å°è¿æç§¯å |
| | | if(Constants.equalsInteger(type,Constants.ZERO)){ |
| | | Integer validYear = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET, Constants.INTERALSET_INTEGRALINVALIDCIRCLE).getCode()); |
| | | if(validYear.compareTo(Constants.ZERO)>Constants.ZERO){ |
| | | list = integralMapper.selectList(new QueryWrapper<Integral>().lambda() |
| | | .eq(Objects.nonNull(model.getUserType()),Integral::getUserType,model.getUserType()) |
| | | .eq(Objects.nonNull(model.getType()),Integral::getType,model.getType()) |
| | | .eq(Integral::getMemberId,model.getMemberId()) |
| | | .apply(" CREATE_DATE >= DATE_SUB(DATE_FORMAT(CURDATE(), '%Y-%m-01'),INTERVAL "+(validYear*12)+1+" MONTH) ") |
| | | .orderByDesc(Integral::getCreateDate)); |
| | | BigDecimal newIntegral = list.stream().map(i->i.getNum().multiply(new BigDecimal(i.getType().toString())) |
| | | ).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | integralDataResponse.setExpiredIntegral( |
| | | integralDataResponse.getSurplusIntegral().compareTo(newIntegral)>Constants.ZERO?integralDataResponse.getSurplusIntegral().subtract(newIntegral):BigDecimal.ZERO |
| | | ); |
| | | } |
| | | } |
| | | |
| | | } |
| | | String info = systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET, Constants.INTERALSET_INTEGRALRULEINFO).getCode(); |
| | | integralDataResponse.setInfo(info); |
| | | |
| | | return integralDataResponse; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | 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.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.MemberBankMapper; |
| | | import com.doumee.dao.business.model.MemberBank; |
| | | import com.doumee.dao.web.request.MemberBankSaveRequest; |
| | | import com.doumee.service.business.MemberBankService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * ç¨æ·æç°é¶è¡ä¿¡æ¯Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Service |
| | | public class MemberBankServiceImpl implements MemberBankService { |
| | | |
| | | @Autowired |
| | | private MemberBankMapper memberBankMapper; |
| | | |
| | | @Override |
| | | public Integer create(MemberBank memberBank) { |
| | | memberBankMapper.insert(memberBank); |
| | | return memberBank.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | memberBankMapper.deleteById(id); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(MemberBank memberBank) { |
| | | UpdateWrapper<MemberBank> deleteWrapper = new UpdateWrapper<>(memberBank); |
| | | memberBankMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | memberBankMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(MemberBank memberBank) { |
| | | memberBankMapper.updateById(memberBank); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<MemberBank> memberBanks) { |
| | | if (CollectionUtils.isEmpty(memberBanks)) { |
| | | return; |
| | | } |
| | | for (MemberBank memberBank: memberBanks) { |
| | | this.updateById(memberBank); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public MemberBank findById(Integer id) { |
| | | return memberBankMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public MemberBank findOne(MemberBank memberBank) { |
| | | QueryWrapper<MemberBank> wrapper = new QueryWrapper<>(memberBank); |
| | | return memberBankMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<MemberBank> findList(MemberBank memberBank) { |
| | | QueryWrapper<MemberBank> wrapper = new QueryWrapper<>(memberBank); |
| | | return memberBankMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<MemberBank> findPage(PageWrap<MemberBank> pageWrap) { |
| | | IPage<MemberBank> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<MemberBank> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(MemberBank::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(MemberBank::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(MemberBank::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(MemberBank::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getBankName() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getBankName, pageWrap.getModel().getBankName()); |
| | | } |
| | | if (pageWrap.getModel().getBankAccount() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getBankAccount, pageWrap.getModel().getBankAccount()); |
| | | } |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getIsDefault() != null) { |
| | | queryWrapper.lambda().eq(MemberBank::getIsDefault, pageWrap.getModel().getIsDefault()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(memberBankMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | @Override |
| | | public long count(MemberBank memberBank) { |
| | | QueryWrapper<MemberBank> wrapper = new QueryWrapper<>(memberBank); |
| | | return memberBankMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void saveOrUpdate(MemberBankSaveRequest request) { |
| | | if(Objects.isNull(request) |
| | | ||Objects.isNull(request.getIsDefault()) |
| | | ||Objects.isNull(request.getMemberId()) |
| | | || StringUtils.isNotBlank(request.getBankName()) |
| | | || StringUtils.isNotBlank(request.getBankAccount()) |
| | | || StringUtils.isNotBlank(request.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | if (request.getIsDefault() == 1) { |
| | | List<MemberBank> memberBanks = memberBankMapper.selectList(new QueryWrapper<MemberBank>().lambda() |
| | | .eq(MemberBank::getMemberId, request.getMemberId()) |
| | | .eq(MemberBank::getIsDefault, Constants.ONE)); |
| | | for (MemberBank memberBank: memberBanks) { |
| | | memberBank.setIsDefault(Constants.ZERO); |
| | | this.updateById(memberBank); |
| | | } |
| | | } |
| | | if (request.getId() == null) { |
| | | MemberBank memberBank = new MemberBank(); |
| | | BeanUtils.copyProperties(request,memberBank); |
| | | memberBank.setCreateDate(new Date()); |
| | | memberBank.setEditDate(new Date()); |
| | | memberBankMapper.insert(memberBank); |
| | | } else { |
| | | MemberBank memberBank = memberBankMapper.selectById(request.getId()); |
| | | if(Objects.isNull(memberBank)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | BeanUtils.copyProperties(request,memberBank); |
| | | memberBank.setEditDate(new Date()); |
| | | this.updateById(memberBank); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<MemberBank> getMyBankList(Integer shopId) { |
| | | List<MemberBank> memberBanks = memberBankMapper.selectList(new QueryWrapper<MemberBank>() |
| | | .lambda() |
| | | .eq(MemberBank::getIsdeleted, Constants.ZERO) |
| | | .eq(MemberBank::getMemberId,shopId) |
| | | .orderByDesc(MemberBank::getIsDefault,MemberBank::getId) |
| | | ); |
| | | return memberBanks; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 计ç®å½å已鿩伿 叿¯ä¸ªååå æ¯éé¢ |
| | | * @param coupon 伿 å¸ä¿¡æ¯ |
| | |
| | | response.setUseCoupon(idList.contains(Constants.equalsInteger(vaildType,Constants.ZERO)?response.getId().toString():response.getCategoryId().toString())?true:false); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // public Set<Integer> isVaildUse(List<String> idList,List<OrderGoodsCalculateResponse> goodsList,Integer vaildType){ |
| | | // List<OrderGoodsCalculateResponse> resultList = new ArrayList<>(); |
| | | // for (String id:idList) { |
| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.dao.business.SmsrecordMapper; |
| | | import com.doumee.dao.business.join.MemberJoinMapper; |
| | | import com.doumee.dao.business.model.Areas; |
| | | import com.doumee.dao.business.model.Goodsorder; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Smsrecord; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.dto.MemberRechargeDTO; |
| | | import com.doumee.dao.web.dto.MemberOwnDTO; |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import io.swagger.util.Yaml; |
| | | import lombok.extern.log4j.Log4j; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import okhttp3.OkHttpClient; |
| | |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | |
| | | @Autowired |
| | | private SmsrecordMapper smsrecordMapper; |
| | |
| | | if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"è·åopenid失败ï¼è¯·è系管çå"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPEN_ID", openId)); |
| | | if (member == null) { |
| | | member = new Member(); |
| | | member.setImgurl("20230410/4010b821-2137-4e6d-86e4-5ab9c06184a4.png"); |
| | | member.setNickname("å¾®ä¿¡ç¨æ·"+ CodeVerifyUtils.createVerificationCode(4)); |
| | | member.setCreateDate(new Date()); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setType(Constants.ZERO); |
| | | member.setOrigin(Constants.ZERO); |
| | | member.setRecId(recId); |
| | | member.setOpenId(openId); |
| | | memberMapper.insert(member); |
| | | } |
| | | member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl()); |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, openId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .last(" limit 1")); |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(member.getId()); |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setSessionKey(session.getSessionKey()); |
| | | accountResponse.setMember(member); |
| | | if(Objects.nonNull(member)){ |
| | | if(Objects.isNull(member.getRecId())){ |
| | | member.setRecId(recId); |
| | | } |
| | | memberMapper.updateById(member); |
| | | member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl()); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setMember(member); |
| | | }else{ |
| | | accountResponse.setOpenid(openId); |
| | | } |
| | | return accountResponse; |
| | | } catch (WxErrorException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信ç»å½å¼å¸¸ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse wxLoginTest( Integer memberId){ |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(memberId); |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+memberId); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ®openidè·åæ¯å¦ç»å®äºåæ· |
| | | * @param openid |
| | | * @param memberId |
| | | * @return |
| | | */ |
| | | public AccountResponse shopOpenidLogin(String openid, Integer memberId){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOpenId, openid) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1") |
| | | ); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setOpenid(openid); |
| | | if(Objects.nonNull(shop)){ |
| | | if(Objects.isNull(memberId) |
| | | && ( Objects.isNull(shop.getMemberId()) |
| | | || !Constants.equalsInteger(shop.getMemberId(),memberId))){ |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getMemberId,memberId) |
| | | .eq(Shop::getId,shop.getId()) |
| | | ); |
| | | } |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | accountResponse.setToken(token); |
| | | } |
| | | return accountResponse; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * åæ·è´¦å·å¯ç ç»å½ |
| | | * @param userName |
| | | * @param password |
| | | * @param openid |
| | | * @param memberId |
| | | * @return |
| | | */ |
| | | public AccountResponse shopPasswordLogin(String userName,String password,String openid,String memberId){ |
| | | if(StringUtils.isBlank(userName) |
| | | || StringUtils.isBlank(password)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·åæå¯ç ä¸è½ä¸ºç©º"); |
| | | } |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getUsername, userName) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1") |
| | | ); |
| | | if(shop==null){ |
| | | throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | //å å¯å¯ç |
| | | String pwd = Utils.Secure.encryptPassword(password, shop.getSalt()); |
| | | if(!pwd.equals(shop.getPassword())){ |
| | | throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getOpenId,openid) |
| | | .set(Shop::getMemberId,memberId) |
| | | .eq(Shop::getId,shop.getId()) |
| | | ); |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getOpenId,null) |
| | | .eq(Shop::getOpenId,openid) |
| | | .ne(Shop::getId,shop.getId()) |
| | | ); |
| | | return accountResponse; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void wxPhone(WxPhoneRequest wxPhoneRequest){ |
| | | public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest){ |
| | | try { |
| | | WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo( |
| | | wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv()); |
| | |
| | | if(Objects.isNull(phone)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªè·åå°ææºå·"); |
| | | } |
| | | Member member = memberMapper.selectById(wxPhoneRequest.getMemberId()); |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, wxPhoneRequest.getOpenid()) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .last(" limit 1")); |
| | | if (member == null) { |
| | | member = new Member(); |
| | | member.setImgurl("20230410/4010b821-2137-4e6d-86e4-5ab9c06184a4.png"); |
| | | member.setNickname("å¾®ä¿¡ç¨æ·"+ CodeVerifyUtils.createVerificationCode(4)); |
| | | member.setCreateDate(new Date()); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setType(Constants.ZERO); |
| | | member.setOrigin(Constants.ZERO); |
| | | member.setRecId(wxPhoneRequest.getRecId()); |
| | | member.setOpenId(wxPhoneRequest.getOpenid()); |
| | | } |
| | | member.setPhone(phone); |
| | | member.setEditDate(new Date()); |
| | | member.setEditor(wxPhoneRequest.getMemberId()); |
| | | member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl()); |
| | | //çæå享ç |
| | | String accessToken = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ACCESS_TOKEN).getCode(); |
| | | if(StringUtils.isBlank(member.getSharingCode())){ |
| | | //çæå¾çä¸ä¼ OSS |
| | | Map<String,Object> body = new HashMap<>(); |
| | | // åºæ¯ç ï¼ä¸å端约å®ï¼æç»æ¯éè¦å端解æ |
| | | body.put("scene", member.getId()); |
| | | // æ£å¼ç为 "release"ï¼ä½éªç为 "trial"ï¼å¼åç为 "develop"ãé»è®¤æ¯æ£å¼çã |
| | | body.put("env_version", "release"); |
| | | // éæï¼æ ¹æ®ä½ çåºæ¯èªè¡è®¾ç½®bodyåæ° |
| | | body.put("is_hyaline", true); |
| | | OkHttpClient client = new OkHttpClient().newBuilder().build(); |
| | | okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json"); |
| | | okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(mediaType, JSONObject.toJSONString(body)); |
| | | Request request = new Request.Builder().url("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken) |
| | | .method("POST", requestBody).build(); |
| | | try { |
| | | Response response = client.newCall(request).execute(); |
| | | if (response.isSuccessful()) { |
| | | InputStream inputStream = new ByteArrayInputStream(response.body().bytes()); |
| | | FileModel fileModel = uploadFileService.uploadWxCode(inputStream,member.getId().toString()); |
| | | member.setSharingCode(fileModel.getFileUrl()); |
| | | inputStream.close(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | if(Objects.isNull(member.getId())){ |
| | | memberMapper.insert(member); |
| | | member.setSharingCode(this.createShareCode(member.getId())); |
| | | memberMapper.updateById(member); |
| | | }else{ |
| | | if(StringUtils.isBlank(member.getSharingCode())){ |
| | | member.setSharingCode(this.createShareCode(member.getId())); |
| | | } |
| | | memberMapper.updateById(member); |
| | | } |
| | | memberMapper.updateById(member); |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setMember(member); |
| | | return accountResponse; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æ´æ°ææºå·å¤±è´¥"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public String createShareCode(Integer memberId){ |
| | | //çæå享ç |
| | | String accessToken = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ACCESS_TOKEN).getCode(); |
| | | //çæå¾çä¸ä¼ OSS |
| | | Map<String,Object> body = new HashMap<>(); |
| | | // åºæ¯ç ï¼ä¸å端约å®ï¼æç»æ¯éè¦å端解æ |
| | | body.put("scene", memberId); |
| | | // æ£å¼ç为 "release"ï¼ä½éªç为 "trial"ï¼å¼åç为 "develop"ãé»è®¤æ¯æ£å¼çã |
| | | body.put("env_version", "release"); |
| | | // éæï¼æ ¹æ®ä½ çåºæ¯èªè¡è®¾ç½®bodyåæ° |
| | | body.put("is_hyaline", true); |
| | | OkHttpClient client = new OkHttpClient().newBuilder().build(); |
| | | okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/json"); |
| | | okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(mediaType, JSONObject.toJSONString(body)); |
| | | Request request = new Request.Builder().url("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken) |
| | | .method("POST", requestBody).build(); |
| | | try { |
| | | Response response = client.newCall(request).execute(); |
| | | if (response.isSuccessful()) { |
| | | InputStream inputStream = new ByteArrayInputStream(response.body().bytes()); |
| | | FileModel fileModel = uploadFileService.uploadWxCode(inputStream,memberId.toString()); |
| | | inputStream.close(); |
| | | return fileModel.getFileUrl(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public Member updateMember(UpdateMemberRequest updateMemberRequest){ |
| | |
| | | Integer integer = integralService.dealIntegral(dealIntegralRequest); |
| | | return integer; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.config.listener.event.VisitEvent; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.LabelsMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopJoinMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.join.GoodsorderJoinMapper; |
| | | import com.doumee.dao.business.join.MemberJoinMapper; |
| | | import com.doumee.dao.business.join.ProductLabelJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.model.Labels; |
| | |
| | | import com.doumee.dao.business.model.ShopScan; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.dto.MemberDTO; |
| | | import com.doumee.dao.web.dto.MultiFileDTO; |
| | | import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.dao.web.dto.*; |
| | | import com.doumee.dao.web.dto.shop.*; |
| | | import com.doumee.dao.web.request.MyCustomerRequest; |
| | | import com.doumee.dao.web.request.SaleReportRequest; |
| | | import com.doumee.dao.web.response.*; |
| | | import com.doumee.service.business.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | import org.apache.shiro.SecurityUtils; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.xpath.operations.Bool; |
| | | import org.checkerframework.checker.units.qual.C; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | private MemberJoinMapper memberJoinMapper; |
| | | |
| | | @Autowired |
| | | private SystemUserMapper systemUserMapper; |
| | | |
| | | @Autowired |
| | | private GoodsorderJoinMapper goodsorderJoinMapper; |
| | | |
| | | @Autowired |
| | | private ProductLabelJoinMapper productLabelJoinMapper; |
| | |
| | | |
| | | @Autowired |
| | | private MultifileService multifileService; |
| | | |
| | | @Autowired |
| | | private IntegralMapper integralMapper; |
| | | |
| | | |
| | | @Override |
| | |
| | | updateUserDto.setPassword(Utils.Secure.encryptPassword( shop.getCode()+"@123456", shop.getSalt())); |
| | | shopMapper.updateById(updateUserDto); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·ä¸åæ¥è¯¢å¯éæ©çèªæç»éå |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Shop> getShopList(ShopListDTO dto){ |
| | | Boolean isArea = false; |
| | | if(Objects.nonNull(dto)&&StringUtils.isNotBlank(dto.getLat()) |
| | | && StringUtils.isNotBlank(dto.getLgt())){ |
| | | isArea = true; |
| | | } |
| | | |
| | | List<Shop> shopList = shopJoinMapper.selectList(new MPJLambdaWrapper<Shop>() |
| | | .selectAll(Shop.class) |
| | | .select(" CONVERT( ST_Distance_Sphere ( POINT ( LONGITUDE, LATITUDE ), POINT ( "+dto.getLgt()+", "+dto.getLat()+" )) /1000,DECIMAL(15,2))",Shop::getDistance) |
| | | .leftJoin(Areas.class,Areas::getId,Shop::getAreaId) |
| | | .eq(Objects.nonNull(dto.getCityId()),Areas::getParentId,dto.getCityId()) |
| | | .like(Objects.nonNull(dto.getShopName()),Shop::getName,dto.getShopName()) |
| | | .orderByDesc(!isArea,Shop::getId) |
| | | .orderByAsc(isArea,Shop::getDistance) |
| | | ); |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode(); |
| | | for(Shop model:shopList){ |
| | | model.setImgFullUrl(path+model.getImgurl()); |
| | | |
| | | } |
| | | return shopList; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ®openidè·åæ¯å¦ç»å®äºåæ· |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AccountResponse shopOpenidLogin(ShopLoginDTO dto){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOpenId, dto.getOpenid()) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1") |
| | | ); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setOpenid(dto.getOpenid()); |
| | | if(Objects.nonNull(shop)){ |
| | | if(Objects.isNull(dto.getMemberId()) |
| | | && ( Objects.isNull(shop.getMemberId()) |
| | | || !Constants.equalsInteger(shop.getMemberId(),dto.getMemberId()))){ |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getMemberId,dto.getMemberId()) |
| | | .eq(Shop::getId,shop.getId()) |
| | | ); |
| | | } |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | accountResponse.setToken(token); |
| | | } |
| | | return accountResponse; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * åæ·è´¦å·å¯ç ç»å½ |
| | | * @param dto |
| | | * @return |
| | | */ |
| | | @Override |
| | | public AccountResponse shopPasswordLogin(ShopLoginDTO dto){ |
| | | if(StringUtils.isBlank(dto.getUserName()) |
| | | || StringUtils.isBlank(dto.getPassword()) |
| | | || StringUtils.isBlank(dto.getOpenid()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·åæå¯ç ä¸è½ä¸ºç©º"); |
| | | } |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getUsername, dto.getUserName()) |
| | | .eq(Shop::getIsdeleted,Constants.ZERO) |
| | | .last("limit 1") |
| | | ); |
| | | if(shop==null){ |
| | | throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | //å å¯å¯ç |
| | | String pwd = Utils.Secure.encryptPassword( dto.getPassword(), shop.getSalt()); |
| | | if(!pwd.equals(shop.getPassword())){ |
| | | throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); |
| | | } |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(Constants.SHOP_PREFIX+shop.getId()); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getOpenId,dto.getOpenid()) |
| | | .set(Shop::getMemberId,dto.getMemberId()) |
| | | .eq(Shop::getId,shop.getId()) |
| | | ); |
| | | shopMapper.update(null,new UpdateWrapper<Shop>().lambda() |
| | | .set(Shop::getOpenId,null) |
| | | .eq(Shop::getOpenId,dto.getOpenid()) |
| | | .ne(Shop::getId,shop.getId()) |
| | | ); |
| | | return accountResponse; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public ShopInfoResponse getShopInfo(Integer shopId){ |
| | | ShopInfoResponse response = new ShopInfoResponse(); |
| | | Shop shop = shopMapper.selectById(shopId); |
| | | if(Objects.isNull(shop)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode(); |
| | | BeanUtils.copyProperties(shop,response); |
| | | response.setImgurl(path + shop.getImgurl()); |
| | | response.setIdcardImg(path + shop.getIdcardImg()); |
| | | response.setIdcardImgBack(path + shop.getIdcardImgBack()); |
| | | response.setBusinessImg(path + shop.getBusinessImg()); |
| | | |
| | | return response; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<MyCustomerResponse> myCustomer(MyCustomerRequest request, Integer shopId){ |
| | | List<Member> memberList = memberJoinMapper.selectJoinList(Member.class, |
| | | new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getBindShopId,shopId) |
| | | .and(StringUtils.isNotBlank(request.getMemberIfo()),i->i.like(Member::getPhone,request.getMemberIfo()).or().like(Member::getNickname,request.getMemberIfo())) |
| | | ); |
| | | List<MyCustomerResponse> responseList = new ArrayList<>(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILE).getCode(); |
| | | memberList.forEach(member -> { |
| | | MyCustomerResponse response = new MyCustomerResponse(); |
| | | response.setNickName(member.getNickname()); |
| | | response.setPhone(member.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2")); |
| | | response.setBindShopDate(member.getBindShopDate()); |
| | | response.setImgFullUrl(StringUtils.isNotBlank(member.getImgurl())?path + member.getImgurl():""); |
| | | responseList.add(response); |
| | | }); |
| | | } |
| | | return responseList; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public SaleReportResponse saleReport(SaleReportRequest request,String shopId){ |
| | | SaleReportResponse saleReportResponse = new SaleReportResponse(); |
| | | saleReportResponse.setSaleTotal(BigDecimal.ZERO); |
| | | saleReportResponse.setOrderNum(Constants.ZERO); |
| | | saleReportResponse.setProfitTotal(BigDecimal.ZERO); |
| | | |
| | | List<Goodsorder> goodsorderList = goodsorderJoinMapper.selectJoinList(Goodsorder.class, |
| | | new MPJLambdaWrapper<Goodsorder>() |
| | | .selectAll(Goodsorder.class) |
| | | .selectAs(Member::getPhone,Goodsorder::getPhone) |
| | | .selectAs(Member::getNickname,Goodsorder::getNickName) |
| | | .select(" select ifnull(sum(g.SHOP_SETTLEMENT),0) from goodsorder_detail g where t.id = g.ORDER_ID ",Goodsorder::getShopSettlement) |
| | | .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId) |
| | | .eq(Goodsorder::getIsdeleted,Constants.ZERO) |
| | | .eq(Goodsorder::getDistributionShopId,shopId) |
| | | //仿¥ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(t.CREATE_DATE) = DATE(NOW()) ") |
| | | //彿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(t.CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')") |
| | | //䏿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(t.CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //åºå®æä»½ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(t.CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //èªå®ä¹æ¥æ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " t.CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " t.CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | .ne(Goodsorder::getStatus,Constants.OrderStatus.CLOSE.getKey()) |
| | | .orderByDesc(Goodsorder::getId) |
| | | ); |
| | | if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(goodsorderList)) { |
| | | saleReportResponse.setSaleTotal(goodsorderList.stream().map(i->i.getPrice().subtract(i.getMailPrice())).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | saleReportResponse.setOrderNum(goodsorderList.size()); |
| | | if(Constants.equalsInteger(request.getQueryType(),Constants.ONE)){ |
| | | List<SaleReportOrderResponse> list = new ArrayList<>(); |
| | | goodsorderList.stream().forEach(goodsorder -> { |
| | | SaleReportOrderResponse response = new SaleReportOrderResponse(); |
| | | response.setId(goodsorder.getId()); |
| | | response.setCode(goodsorder.getCode()); |
| | | response.setPrice(goodsorder.getPrice()); |
| | | response.setMailPrice(goodsorder.getMailPrice()); |
| | | response.setCreateDate(goodsorder.getCreateDate()); |
| | | response.setNickName(goodsorder.getNickName()); |
| | | response.setPhone(goodsorder.getPhone().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")); |
| | | response.setShopSettlement(goodsorder.getShopSettlement()); |
| | | list.add(response); |
| | | }); |
| | | |
| | | saleReportResponse.setSaleReportOrderResponseList(list); |
| | | } |
| | | } |
| | | List<Integral> integralList = integralMapper.selectList(new QueryWrapper<Integral>().lambda() |
| | | .eq(Integral::getIsdeleted,Constants.ZERO) |
| | | .eq(Integral::getMemberId,shopId) |
| | | .eq(Integral::getUserType,Constants.TWO) |
| | | .eq(Integral::getType,Constants.ZERO) |
| | | .eq(Integral::getObjType,Constants.IntegralObjType.ORDER_DONE_AMOUNT.getKey()) |
| | | //仿¥ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ZERO), " DATE(CREATE_DATE) = DATE(NOW()) ") |
| | | //彿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.ONE), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')") |
| | | //䏿 |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.TWO), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //åºå®æä»½ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.THREE)&&StringUtils.isNotBlank(request.getStartDate()), " DATE_FORMAT(CREATE_DATE, '%Y-%m') = DATE_FORMAT(DATE_SUB('"+request.getStartDate()+"', INTERVAL 1 MONTH), '%Y-%m') ") |
| | | //èªå®ä¹æ¥æ |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getStartDate()), " CREATE_DATE >= '"+request.getStartDate()+" 00:00:00'") |
| | | .apply(Constants.equalsInteger(request.getDateType(),Constants.FOUR)&&StringUtils.isNotBlank(request.getEndDate()), " CREATE_DATE <= '"+request.getEndDate()+" 23:59:59'") |
| | | ); |
| | | if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(integralList)) { |
| | | saleReportResponse.setProfitTotal(integralList.stream().map(i->i.getNum()).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | } |
| | | return saleReportResponse; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | 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.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.RedisUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.web.dto.MultiFileDTO; |
| | | import com.doumee.dao.web.request.DealIntegralRequest; |
| | | import com.doumee.dao.web.request.WithdrawApplyRequest; |
| | | import com.doumee.service.business.IntegralService; |
| | | import com.doumee.service.business.WithdrawRecordService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.bouncycastle.cert.dane.DANEEntry; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * ç¨æ·æç°è®°å½Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2026/01/16 11:50 |
| | | */ |
| | | @Service |
| | | public class WithdrawRecordServiceImpl implements WithdrawRecordService { |
| | | |
| | | @Autowired |
| | | private WithdrawRecordMapper withdrawRecordMapper; |
| | | |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | |
| | | @Autowired |
| | | private IntegralMapper integralMapper; |
| | | |
| | | @Autowired |
| | | private MemberBankMapper memberBankMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | @Override |
| | | public Integer create(WithdrawRecord withdrawRecord) { |
| | | withdrawRecordMapper.insert(withdrawRecord); |
| | | return withdrawRecord.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | withdrawRecordMapper.deleteById(id); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(WithdrawRecord withdrawRecord) { |
| | | UpdateWrapper<WithdrawRecord> deleteWrapper = new UpdateWrapper<>(withdrawRecord); |
| | | withdrawRecordMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByIdInBatch(List<Integer> ids) { |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | withdrawRecordMapper.deleteBatchIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public void updateById(WithdrawRecord withdrawRecord) { |
| | | withdrawRecordMapper.updateById(withdrawRecord); |
| | | } |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<WithdrawRecord> withdrawRecords) { |
| | | if (CollectionUtils.isEmpty(withdrawRecords)) { |
| | | return; |
| | | } |
| | | for (WithdrawRecord withdrawRecord: withdrawRecords) { |
| | | this.updateById(withdrawRecord); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public WithdrawRecord findById(Integer id) { |
| | | WithdrawRecord withdrawRecord = withdrawRecordMapper.selectById(id); |
| | | if (Objects.isNull(withdrawRecord)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | MemberBank memberBank = memberBankMapper.selectById(withdrawRecord.getBankId()); |
| | | if(Objects.nonNull(memberBank)){ |
| | | withdrawRecord.setBankName(memberBank.getBankName()); |
| | | } |
| | | if(!Constants.equalsInteger(withdrawRecord.getStatus(), Constants.ZERO)){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.OSS, Constants.TRANSFER_FILE).getCode(); |
| | | Multifile queryfile = new Multifile(); |
| | | queryfile.setObjId(withdrawRecord.getId()); |
| | | queryfile.setObjType( Constants.MultiFile.TRANSFER_FILE.getKey()); |
| | | queryfile.setIsdeleted(Constants.ZERO); |
| | | List<Multifile> filelist = multifileMapper.selectList(new QueryWrapper<>(queryfile)); |
| | | if(filelist !=null && filelist.size()>0){ |
| | | for (Multifile multifile:filelist) { |
| | | multifile.setFileFullUrl(path + multifile.getFileurl()); |
| | | } |
| | | withdrawRecord.setPayFileList(filelist); |
| | | } |
| | | } |
| | | return withdrawRecord; |
| | | } |
| | | |
| | | @Override |
| | | public WithdrawRecord findOne(WithdrawRecord withdrawRecord) { |
| | | QueryWrapper<WithdrawRecord> wrapper = new QueryWrapper<>(withdrawRecord); |
| | | return withdrawRecordMapper.selectOne(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<WithdrawRecord> findList(WithdrawRecord withdrawRecord) { |
| | | QueryWrapper<WithdrawRecord> wrapper = new QueryWrapper<>(withdrawRecord); |
| | | return withdrawRecordMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<WithdrawRecord> findPage(PageWrap<WithdrawRecord> pageWrap) { |
| | | IPage<WithdrawRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<WithdrawRecord> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(WithdrawRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(WithdrawRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(WithdrawRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(WithdrawRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getBankId() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getBankId, pageWrap.getModel().getBankId()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getAuditUser() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getAuditUser, pageWrap.getModel().getAuditUser()); |
| | | } |
| | | if (pageWrap.getModel().getAuditTime() != null) { |
| | | queryWrapper.lambda().ge(WithdrawRecord::getAuditTime, Utils.Date.getStart(pageWrap.getModel().getAuditTime())); |
| | | queryWrapper.lambda().le(WithdrawRecord::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime())); |
| | | } |
| | | if (pageWrap.getModel().getAuditRemark() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getAuditRemark, pageWrap.getModel().getAuditRemark()); |
| | | } |
| | | if (pageWrap.getModel().getPayBank() != null) { |
| | | queryWrapper.lambda().eq(WithdrawRecord::getPayBank, pageWrap.getModel().getPayBank()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(withdrawRecordMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public long count(WithdrawRecord withdrawRecord) { |
| | | QueryWrapper<WithdrawRecord> wrapper = new QueryWrapper<>(withdrawRecord); |
| | | return withdrawRecordMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void withdrawApply(WithdrawApplyRequest request, IntegralService integralService){ |
| | | if (Objects.isNull( request) |
| | | || request.getMemberId() == null |
| | | || request.getBankId() == null |
| | | || request.getAmount() == null) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | //æ¥è¯¢åæ·å©ä½ä½é¢ |
| | | Shop shop = shopMapper.selectById(request.getMemberId()); |
| | | if(Objects.isNull(shop)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°åæ·ä¿¡æ¯"); |
| | | } |
| | | if(shop.getAmount().compareTo(request.getAmount()) < 0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"åæ·ä½é¢ä¸è¶³"); |
| | | } |
| | | |
| | | WithdrawRecord withdrawRecord = new WithdrawRecord(); |
| | | withdrawRecord.setCreateDate(new Date()); |
| | | withdrawRecord.setIsdeleted(Constants.ZERO); |
| | | withdrawRecord.setEditDate(new Date()); |
| | | withdrawRecord.setBankId(request.getBankId()); |
| | | withdrawRecord.setAmount(request.getAmount()); |
| | | withdrawRecord.setMemberId(request.getMemberId()); |
| | | withdrawRecord.setCode(this.getNextInCode()); |
| | | withdrawRecord.setStatus(Constants.ZERO); |
| | | withdrawRecordMapper.insert(withdrawRecord); |
| | | |
| | | DealIntegralRequest dealIntegralRequest = new DealIntegralRequest(); |
| | | dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.WITHDRAW_APPLY); |
| | | dealIntegralRequest.setIntegralNum(request.getAmount()); |
| | | dealIntegralRequest.setObjId(withdrawRecord.getId()); |
| | | dealIntegralRequest.setOrderCode(withdrawRecord.getCode().toString()); |
| | | dealIntegralRequest.setMemberId(request.getMemberId()); |
| | | dealIntegralRequest.setDealType(Constants.ONE); |
| | | integralService.dealShopAmount(dealIntegralRequest); |
| | | } |
| | | |
| | | |
| | | |
| | | public synchronized Long getNextInCode(){ |
| | | String prefix = DateUtil.getDate(new Date(),"yyyyMMdd") ; |
| | | Integer countNum = RedisUtil.getObject(redisTemplate, Constants.RedisKeys.WITHDRAW_KEY,Integer.class); |
| | | countNum = Constants.formatIntegerNum(countNum)+1; |
| | | //æ´æ°ç¼å |
| | | RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,countNum); |
| | | String nextIndex =Long.toString( countNum); |
| | | return Long.parseLong(prefix + StringUtils.leftPad(nextIndex,4,"0")); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | return ApiResponse.success(memberService.wxLogin(code,recId)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "ç»å®ææºå·", notes = "å°ç¨åºç«¯") |
| | | @PostMapping("/wxPhone") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<AccountResponse> wxPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) { |
| | | return ApiResponse.success(memberService.wxPhone(wxPhoneRequest)); |
| | | } |
| | | |
| | | @ApiOperation(value = "æµè¯ç»éæ¥å£", notes = "å°ç¨åºç«¯") |
| | | @GetMapping("/testLogin") |
| | | @ApiImplicitParams({ |
| | |
| | | return ApiResponse.success(memberService.wxLoginTest(memberId)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "ç»å®ææºå·", notes = "å°ç¨åºç«¯") |
| | | @PostMapping("/wxPhone") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse wxLogin(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) { |
| | | wxPhoneRequest.setMemberId(getMemberId()); |
| | | memberService.wxPhone(wxPhoneRequest); |
| | | return ApiResponse.success("ç»å®æå"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "æ´æ°ç¨æ·ä¿¡æ¯", notes = "å°ç¨åºç«¯") |
| | |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.dao.web.response.goods.CartGoodsResponse; |
| | | import com.doumee.service.business.*; |
| | | import com.doumee.service.business.impl.MemberCouponServiceImpl; |
| | | import com.doumee.service.system.SystemDictDataService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.SecurityUtils; |
| | |
| | | @Autowired |
| | | public ShopService shopService; |
| | | |
| | | @Autowired |
| | | public WithdrawRecordService withdrawRecordService; |
| | | |
| | | @Autowired |
| | | public MemberBankService memberBankService; |
| | | |
| | | @Autowired |
| | | public MemberCouponServiceImpl memberCouponServiceImpl; |
| | | |
| | | @Autowired |
| | | public GoodsorderDetailService goodsorderDetailService; |
| | |
| | | return obj != null ? (Integer) obj : null; |
| | | } |
| | | |
| | | protected Integer getShopId() { |
| | | Object obj = this.getRequest().getAttribute(JwtTokenUtil.ShopId_Name); |
| | | return obj != null ? (Integer) obj : null; |
| | | } |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.LoginShopRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.MemberBank; |
| | | import com.doumee.dao.web.dto.shop.*; |
| | | import com.doumee.dao.web.request.MemberBankSaveRequest; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 17:33 |
| | | */ |
| | | @Api(tags = "åæ·æç°é¶è¡å¡") |
| | | @Trace(exclude = true) |
| | | @RestController |
| | | @RequestMapping("/web/bank") |
| | | @Slf4j |
| | | public class MemberBankApi extends ApiController{ |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation(value = "æç°é¶è¡æ°å¢ä¿®æ¹", notes = "å°ç¨åºç«¯") |
| | | @PostMapping("/saveBank") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse saveBank(@RequestBody MemberBankSaveRequest request){ |
| | | request.setMemberId(getShopId()); |
| | | memberBankService.saveOrUpdate(request); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation(value = "è·åæçæç°é¶è¡å¡", notes = "å°ç¨åºç«¯") |
| | | @GetMapping("/getBankList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<List<MemberBank>> getBankList(){ |
| | | return ApiResponse.success(memberBankService.getMyBankList(getShopId())); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.LoginShopRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.business.model.WithdrawRecord; |
| | | import com.doumee.dao.web.dto.shop.*; |
| | | import com.doumee.dao.web.request.WithdrawApplyRequest; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | shopService.update(shopDTO,memberId); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "ç¨æ·ä¸åæ¥è¯¢å¯éæ©çèªæç»éå", notes = "å°ç¨åºç«¯") |
| | | @PostMapping("/getShopList") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse getShopList(@RequestBody ShopListDTO dto){ |
| | | return ApiResponse.success(shopService.getShopList(dto)); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation(value = "æç°ç³è¯· - ç»éå", notes = "å°ç¨åºç«¯") |
| | | @PostMapping("/withdrawApply") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse withdrawApply(@RequestBody WithdrawApplyRequest request){ |
| | | request.setMemberId(getShopId()); |
| | | withdrawRecordService.withdrawApply(request,integralService); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation("æ¥è¯¢æç°ç³è¯·è¯¦æ
") |
| | | @GetMapping("/withdrawDetail") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<WithdrawRecord> withdrawDetail(@RequestParam Integer id) { |
| | | return ApiResponse.success(withdrawRecordService.findById(id)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.api.web.mall; |
| | | |
| | | import com.doumee.api.web.ApiController; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Integral; |
| | | import com.doumee.dao.web.dto.IntegralRecordDTO; |
| | | import com.doumee.dao.web.response.IntegralDataResponse; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2026/1/14 16:53 |
| | | */ |
| | | @Api(tags = "积åä¿¡æ¯ä¸å¡") |
| | | @Trace(exclude = true) |
| | | @RestController |
| | | @RequestMapping("/web/integral") |
| | | @Slf4j |
| | | public class IntegralApi extends ApiController { |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è·åç¨æ·ç积åè®°å½") |
| | | @PostMapping("/findIntegralRecordPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<PageData<Integral>> findIntegralRecordPage (@RequestBody PageWrap<IntegralRecordDTO> pageWrap) { |
| | | return ApiResponse.success(integralService.findIntegralRecordPage(pageWrap)); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è·åç¨æ·å©ä½ç§¯åä¸å¾
æ
åµç§¯åä¿¡æ¯") |
| | | @PostMapping("/getIntegralData") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<IntegralDataResponse> getIntegralData (@RequestBody IntegralRecordDTO dto) { |
| | | return ApiResponse.success(integralService.getIntegralData(dto)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.doumee.api.web.ApiController; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.config.annotation.LoginShopRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.kuaidi100.DeliveryDTO; |
| | | import com.doumee.core.utils.kuaidi100.ExpressUtils; |
| | |
| | | import com.doumee.dao.business.model.MemberCoupon; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.request.OrderPayRequest; |
| | | import com.doumee.dao.web.request.PageRequest; |
| | | import com.doumee.dao.web.request.PayDetailRequest; |
| | | import com.doumee.dao.web.request.ShopOrderPayRequest; |
| | | import com.doumee.dao.web.request.*; |
| | | import com.doumee.dao.web.request.goods.DealOrderRequest; |
| | | import com.doumee.dao.web.request.goods.MemberOrderRequest; |
| | | import com.doumee.dao.web.request.goods.OrderCommentRequest; |
| | |
| | | return ApiResponse.success("æ¥è¯¢æå", memberCouponService.getApplyCoupon(requestList,getMemberId())); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("ç»éåå表") |
| | | @PostMapping("/shopPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<IPage<Shop>> shopPage(@RequestBody PageWrap<Shop> pageWrap) { |
| | | IPage<Shop> page = goodsorderService.getShopPage(pageWrap); |
| | | return ApiResponse.success("æ¥è¯¢æå",page); |
| | | } |
| | | |
| | | @Autowired |
| | | public MemberCouponServiceImpl memberCouponServiceImpl; |
| | | // @LoginRequired |
| | | // @ApiOperation("ç»éåå表") |
| | | // @PostMapping("/shopPage") |
| | | // @ApiImplicitParams({ |
| | | // @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | // }) |
| | | // public ApiResponse<IPage<Shop>> shopPage(@RequestBody PageWrap<Shop> pageWrap) { |
| | | // IPage<Shop> page = goodsorderService.getShopPage(pageWrap); |
| | | // return ApiResponse.success("æ¥è¯¢æå",page); |
| | | // } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation("è®¢åæ¯ä»") |
| | |
| | | return ApiResponse.success("æä½æå",deliveryDTO); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation("ç»éå订åå表") |
| | | @PostMapping("/shopOrderPage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | }) |
| | | public ApiResponse<PageData<Goodsorder>> shopOrderPage(@RequestBody PageWrap<ShopOrderRequest> pageWrap) { |
| | | pageWrap.getModel().setShopId(getShopId()); |
| | | PageData<Goodsorder> page = goodsorderService.shopOrderPage(pageWrap); |
| | | return ApiResponse.success("æ¥è¯¢æå",page); |
| | | } |
| | | |
| | | |
| | | @LoginShopRequired |
| | | @ApiOperation("订å详æ
- ç»éå") |
| | | @GetMapping("/shopOrderDetail") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "orderId", value = "订å主é®", required = true), |
| | | }) |
| | | public ApiResponse<MemberOrderResponse> shopOrderDetail(@RequestParam Integer orderId) { |
| | | return ApiResponse.success("æ¥è¯¢æå", goodsorderService.getGoodsOrderDetail(orderId)); |
| | | } |
| | | |
| | | } |