ADD admin log interface
Showing
9 changed files
with
225 additions
and
3 deletions
| @@ -2,7 +2,7 @@ git pull | @@ -2,7 +2,7 @@ git pull | ||
| 2 | git add --all src/main/java/* | 2 | git add --all src/main/java/* |
| 3 | git add push.sh | 3 | git add push.sh |
| 4 | git add pom.xml | 4 | git add pom.xml |
| 5 | -git commit -m "MOD add role_id limit" | 5 | +git commit -m "ADD admin log interface" |
| 6 | #git push origin master | 6 | #git push origin master |
| 7 | git push origin zhaoyue-dev4 | 7 | git push origin zhaoyue-dev4 |
| 8 | git status | 8 | git status |
| @@ -77,6 +77,13 @@ public interface Constants { | @@ -77,6 +77,13 @@ public interface Constants { | ||
| 77 | */ | 77 | */ |
| 78 | String ADMIN_TOKEN_PREFIX = "ADMINTOKENPREFIX"; | 78 | String ADMIN_TOKEN_PREFIX = "ADMINTOKENPREFIX"; |
| 79 | 79 | ||
| 80 | + /** | ||
| 81 | + * 操作员操作类型 | ||
| 82 | + */ | ||
| 83 | + public static final int OP_NEWUSER_REGISTER = 0; | ||
| 84 | + public static final int OP_HELTH_EXAM = 1; | ||
| 85 | + public static final int OP_OLDUSER_GUIDE = 2; | ||
| 86 | + public static final int OP_NEWUSER_DIAGNOSE = 3; | ||
| 80 | 87 | ||
| 81 | public static final int MALE = 0; | 88 | public static final int MALE = 0; |
| 82 | public static final int FEMALE = 1; | 89 | public static final int FEMALE = 1; |
| @@ -35,7 +35,10 @@ public enum ResultStatus { | @@ -35,7 +35,10 @@ public enum ResultStatus { | ||
| 35 | COMPANY_ERROR(-11170,"用户所属公司信息有误/Company information error"), | 35 | COMPANY_ERROR(-11170,"用户所属公司信息有误/Company information error"), |
| 36 | 36 | ||
| 37 | // 112开头的与QR Code有关 | 37 | // 112开头的与QR Code有关 |
| 38 | - INVALID_QR_CODE(-11201,"无效QR码/Invalid QR code"); | 38 | + INVALID_QR_CODE(-11201,"无效QR码/Invalid QR code"), |
| 39 | + | ||
| 40 | + // 113开头的与操作统计有关 | ||
| 41 | + INVALID_OPERATION_CODE(-11301,"无效操作/Invalid operation"); | ||
| 39 | 42 | ||
| 40 | 43 | ||
| 41 | 44 |
| 1 | +package com.xkl.controller; | ||
| 2 | + | ||
| 3 | +import com.wordnik.swagger.annotations.ApiImplicitParam; | ||
| 4 | +import com.wordnik.swagger.annotations.ApiImplicitParams; | ||
| 5 | +import com.wordnik.swagger.annotations.ApiOperation; | ||
| 6 | +import com.xkl.authorization.annotation.*; | ||
| 7 | +import com.xkl.config.Constants; | ||
| 8 | +import com.xkl.config.ResultStatus; | ||
| 9 | +import com.xkl.domain.User; | ||
| 10 | +import com.xkl.domain.XklAdminEntity; | ||
| 11 | +import com.xkl.domain.XklMemberEntity; | ||
| 12 | +import com.xkl.domain.XklMemberOpenidEntity; | ||
| 13 | +import com.xkl.model.QrCodeModel; | ||
| 14 | +import com.xkl.model.ResultModel; | ||
| 15 | +import com.xkl.model.UsrInfoModel; | ||
| 16 | +import com.xkl.repository.UserRepository; | ||
| 17 | +import com.xkl.repository.XklMemberOpenidRespository; | ||
| 18 | +import com.xkl.repository.XklMemberRespository; | ||
| 19 | +import com.xkl.security.AntiXSS; | ||
| 20 | +import com.xkl.service.IAdminOpsService; | ||
| 21 | +import com.xkl.service.ILoginService; | ||
| 22 | +import com.xkl.service.IQRCodeService; | ||
| 23 | +import com.xkl.service.QRCodeServiceImpl; | ||
| 24 | +import com.xkl.tools.DESTools; | ||
| 25 | +import com.xkl.tools.DatetimeTools; | ||
| 26 | +import com.xkl.tools.HttpTools; | ||
| 27 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 28 | +import org.springframework.http.HttpStatus; | ||
| 29 | +import org.springframework.http.ResponseEntity; | ||
| 30 | +import org.springframework.util.Assert; | ||
| 31 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 32 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
| 33 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 34 | +import org.springframework.web.bind.annotation.RestController; | ||
| 35 | + | ||
| 36 | +import javax.servlet.http.HttpServletRequest; | ||
| 37 | +import java.net.URLEncoder; | ||
| 38 | +import java.text.SimpleDateFormat; | ||
| 39 | +import java.util.Date; | ||
| 40 | + | ||
| 41 | +/** | ||
| 42 | + * Created by zhaoyue on 2017/04/04. | ||
| 43 | + */ | ||
| 44 | +@RestController | ||
| 45 | +@RequestMapping("/adminOpLog") | ||
| 46 | +public class AdminOpsLogController { | ||
| 47 | + @Autowired | ||
| 48 | + private IAdminOpsService adminOpsService; | ||
| 49 | + | ||
| 50 | + @Autowired | ||
| 51 | + private UserRepository userRepository; | ||
| 52 | + | ||
| 53 | + @LogAnnotation | ||
| 54 | + @AntiXSS | ||
| 55 | + @Authorization | ||
| 56 | + @Sign | ||
| 57 | + @RequestMapping(method = RequestMethod.POST) | ||
| 58 | + @ApiOperation(value = "admin 操作日志接口") | ||
| 59 | + public ResponseEntity<ResultModel> register(HttpServletRequest request, @CurrentAdmin XklAdminEntity admin, @RequestParam String username, | ||
| 60 | + @RequestParam int operation, @RequestParam String sign, @RequestParam long t, @RequestParam int type) { | ||
| 61 | + if (!(boolean) request.getAttribute("signAspect")) | ||
| 62 | + return new ResponseEntity<>(ResultModel.error(ResultStatus.SIGN_ERROR), HttpStatus.OK); | ||
| 63 | + User user = userRepository.findByLoginAccountAndStatus(username, Constants.STATUS_OK2); | ||
| 64 | + if (user == null) { //用户不存在 | ||
| 65 | + return new ResponseEntity<>(ResultModel.error(ResultStatus.USER_NOT_FOUND), HttpStatus.OK); | ||
| 66 | + } | ||
| 67 | + // 0 新用户注册;1 体检; 2 老用户引导; 3 问诊; | ||
| 68 | + if (operation < 0 || operation > 3) { | ||
| 69 | + return new ResponseEntity<>(ResultModel.error(ResultStatus.INVALID_OPERATION_CODE), HttpStatus.OK); | ||
| 70 | + } | ||
| 71 | + adminOpsService.addOperation(admin.getId(), user.getMemberId(), operation); | ||
| 72 | + return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK); | ||
| 73 | + } | ||
| 74 | +} |
| @@ -21,6 +21,7 @@ import com.xkl.repository.UserRepository; | @@ -21,6 +21,7 @@ import com.xkl.repository.UserRepository; | ||
| 21 | import com.xkl.repository.XklMemberOpenidRespository; | 21 | import com.xkl.repository.XklMemberOpenidRespository; |
| 22 | import com.xkl.repository.XklMemberRespository; | 22 | import com.xkl.repository.XklMemberRespository; |
| 23 | import com.xkl.security.AntiXSS; | 23 | import com.xkl.security.AntiXSS; |
| 24 | +import com.xkl.service.IAdminOpsService; | ||
| 24 | import com.xkl.service.ILoginService; | 25 | import com.xkl.service.ILoginService; |
| 25 | import com.xkl.service.IQRCodeService; | 26 | import com.xkl.service.IQRCodeService; |
| 26 | import com.xkl.service.QRCodeServiceImpl; | 27 | import com.xkl.service.QRCodeServiceImpl; |
| @@ -58,6 +59,7 @@ public class QRCodeController { | @@ -58,6 +59,7 @@ public class QRCodeController { | ||
| 58 | @Autowired | 59 | @Autowired |
| 59 | private XklMemberRespository xklMemberRespository; | 60 | private XklMemberRespository xklMemberRespository; |
| 60 | 61 | ||
| 62 | + | ||
| 61 | private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 | 63 | private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 |
| 62 | 64 | ||
| 63 | @LogAnnotation | 65 | @LogAnnotation |
| @@ -72,7 +74,7 @@ public class QRCodeController { | @@ -72,7 +74,7 @@ public class QRCodeController { | ||
| 72 | if (user == null) {//用户,密码错误 | 74 | if (user == null) {//用户,密码错误 |
| 73 | return new ResponseEntity<>(ResultModel.error(ResultStatus.USERNAME_OR_PASSWORD_ERROR), HttpStatus.OK); | 75 | return new ResponseEntity<>(ResultModel.error(ResultStatus.USERNAME_OR_PASSWORD_ERROR), HttpStatus.OK); |
| 74 | } else { | 76 | } else { |
| 75 | - String qrCode = qrCodeService.getQRCodeWithAccount(user.getLoginAccount()); | 77 | + String qrCode = qrCodeService.getQRCodeWithAccount(user.getLoginAccount()); |
| 76 | QrCodeModel qrModel = new QrCodeModel(qrCode); | 78 | QrCodeModel qrModel = new QrCodeModel(qrCode); |
| 77 | return new ResponseEntity<>(ResultModel.ok(qrModel), HttpStatus.OK); | 79 | return new ResponseEntity<>(ResultModel.ok(qrModel), HttpStatus.OK); |
| 78 | } | 80 | } |
| 1 | +package com.xkl.domain; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +import javax.persistence.*; | ||
| 6 | +import java.sql.Timestamp; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * @author zhaoyue | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +@Entity | ||
| 13 | +@Table(name = "xkl_admin_ops") | ||
| 14 | +public class XklAdminOpsEntity { | ||
| 15 | + @Id | ||
| 16 | + @Column(name = "id") | ||
| 17 | + @GeneratedValue(strategy = GenerationType.IDENTITY) | ||
| 18 | + private long id; | ||
| 19 | + @Basic | ||
| 20 | + @Column(name = "admin_id") | ||
| 21 | + private long adminId; | ||
| 22 | + @Basic | ||
| 23 | + @Column(name = "member_id") | ||
| 24 | + private long memberId; | ||
| 25 | + @Basic | ||
| 26 | + @Column(name = "time") | ||
| 27 | + private Timestamp time;// 操作时间 | ||
| 28 | + @Basic | ||
| 29 | + @Column(name = "operation") | ||
| 30 | + private int operation;// 操作。0 新用户注册;1 体检; 2 老用户引导; 3 问诊; | ||
| 31 | + | ||
| 32 | + public XklAdminOpsEntity(long adminId, long memberId, int operation) { | ||
| 33 | + this.adminId = adminId; | ||
| 34 | + this.memberId = memberId; | ||
| 35 | + this.operation = operation; | ||
| 36 | + this.time = new Timestamp(System.currentTimeMillis()); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + public long getId() { | ||
| 40 | + return id; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + public void setId(long id) { | ||
| 44 | + this.id = id; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public long getAdminId() { | ||
| 48 | + return adminId; | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + public void setAdminId(long adminId) { | ||
| 52 | + this.adminId = adminId; | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + public long getMemberId() { | ||
| 56 | + return memberId; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + public void setMemberId(long memberId) { | ||
| 60 | + this.memberId = memberId; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + public Timestamp getTime() { | ||
| 64 | + return time; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + public void setTime(Timestamp time) { | ||
| 68 | + this.time = time; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + public int getOperation() { | ||
| 72 | + return operation; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + public void setOperation(int operation) { | ||
| 76 | + this.operation = operation; | ||
| 77 | + } | ||
| 78 | +} |
| 1 | +package com.xkl.repository; | ||
| 2 | + | ||
| 3 | +import com.xkl.domain.XklAdminOpsEntity; | ||
| 4 | +import com.xkl.domain.XklAmpReportDetailEntity; | ||
| 5 | +import org.springframework.data.repository.CrudRepository; | ||
| 6 | + | ||
| 7 | +import java.util.List; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * XklAdminOpsEntity 类的CRUD操作 | ||
| 11 | + * | ||
| 12 | + * @see XklAdminOpsEntity | ||
| 13 | + */ | ||
| 14 | +public interface AdminOpsRepository extends CrudRepository<XklAdminOpsEntity, Long> { | ||
| 15 | +} |
| 1 | +package com.xkl.service; | ||
| 2 | + | ||
| 3 | +import com.xkl.config.Constants; | ||
| 4 | +import com.xkl.domain.XklAdminOpsEntity; | ||
| 5 | +import com.xkl.repository.AdminOpsRepository; | ||
| 6 | +import com.xkl.repository.ReportDetailRepository; | ||
| 7 | +import com.xkl.tools.DESTools; | ||
| 8 | +import lombok.extern.apachecommons.CommonsLog; | ||
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 10 | +import org.springframework.data.redis.core.RedisTemplate; | ||
| 11 | +import org.springframework.stereotype.Service; | ||
| 12 | + | ||
| 13 | +import java.text.SimpleDateFormat; | ||
| 14 | +import java.util.Date; | ||
| 15 | +import java.util.concurrent.TimeUnit; | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * create by zhaoyue | ||
| 19 | + * 2017-03-11 | ||
| 20 | + */ | ||
| 21 | + | ||
| 22 | +@Service | ||
| 23 | +@CommonsLog | ||
| 24 | +public class AdminOpsServiceImpl implements IAdminOpsService, Constants { | ||
| 25 | + @Autowired | ||
| 26 | + private AdminOpsRepository adminOpsRepository; | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + public void addOperation(long adminId, long memberId, int operation) { | ||
| 30 | + XklAdminOpsEntity xklAdminOpsEntity = new XklAdminOpsEntity(adminId, memberId, operation); | ||
| 31 | + adminOpsRepository.save(xklAdminOpsEntity); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + | ||
| 35 | +} |
-
Please register or login to post a comment